From aa5e05000bf838ee08c43ebf9bbe91887ead6656 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Tue, 8 Nov 2022 06:05:33 +0000 Subject: [PATCH] CodeGen from PR 21467 in Azure/azure-rest-api-specs Merge 00f3dcc9120875a0e9ee5bccfda69059848be085 into 4903b1ed79e30f689d7c469cfa06734cfcd106d6 --- swaggerci/appplatform/.gitattributes | 1 + swaggerci/appplatform/.gitignore | 5 + swaggerci/appplatform/Az.AppPlatform.csproj | 44 + .../appplatform/Az.AppPlatform.format.ps1xml | 8195 ++++ swaggerci/appplatform/Az.AppPlatform.nuspec | 32 + swaggerci/appplatform/Az.AppPlatform.psd1 | 24 + swaggerci/appplatform/Az.AppPlatform.psm1 | 107 + swaggerci/appplatform/MSSharedLibKey.snk | Bin 0 -> 160 bytes swaggerci/appplatform/README.md | 27 + swaggerci/appplatform/build-module.ps1 | 153 + swaggerci/appplatform/check-dependencies.ps1 | 57 + .../appplatform/create-model-cmdlets.ps1 | 163 + .../custom/Az.AppPlatform.custom.psm1 | 17 + swaggerci/appplatform/custom/README.md | 41 + swaggerci/appplatform/docs/Az.AppPlatform.md | 337 + ...-AzAppPlatformDeploymentRemoteDebugging.md | 278 + ...able-AzAppPlatformPredefinedAccelerator.md | 293 + ...isable-AzAppPlatformServiceTestEndpoint.md | 232 + ...-AzAppPlatformDeploymentRemoteDebugging.md | 329 + ...able-AzAppPlatformPredefinedAccelerator.md | 293 + ...Enable-AzAppPlatformServiceTestEndpoint.md | 217 + .../docs/Get-AzAppPlatformApiPortal.md | 207 + .../Get-AzAppPlatformApiPortalCustomDomain.md | 223 + .../appplatform/docs/Get-AzAppPlatformApp.md | 222 + .../Get-AzAppPlatformAppResourceUploadUrl.md | 232 + ...Get-AzAppPlatformApplicationAccelerator.md | 207 + .../Get-AzAppPlatformApplicationLiveView.md | 207 + .../docs/Get-AzAppPlatformBinding.md | 221 + .../docs/Get-AzAppPlatformBuildService.md | 207 + .../Get-AzAppPlatformBuildServiceAgentPool.md | 223 + .../Get-AzAppPlatformBuildServiceBuild.md | 222 + ...et-AzAppPlatformBuildServiceBuildResult.md | 239 + ...AzAppPlatformBuildServiceBuildResultLog.md | 263 + .../Get-AzAppPlatformBuildServiceBuilder.md | 223 + ...ppPlatformBuildServiceBuilderDeployment.md | 187 + ...ppPlatformBuildServiceResourceUploadUrl.md | 233 + ...pPlatformBuildServiceSupportedBuildpack.md | 225 + ...AzAppPlatformBuildServiceSupportedStack.md | 225 + .../docs/Get-AzAppPlatformBuildpackBinding.md | 238 + .../docs/Get-AzAppPlatformCertificate.md | 207 + .../docs/Get-AzAppPlatformConfigServer.md | 186 + .../Get-AzAppPlatformConfigurationService.md | 207 + .../docs/Get-AzAppPlatformCustomDomain.md | 222 + .../Get-AzAppPlatformCustomizedAccelerator.md | 223 + .../docs/Get-AzAppPlatformDeployment.md | 243 + .../Get-AzAppPlatformDeploymentLogFileUrl.md | 263 + ...PlatformDeploymentRemoteDebuggingConfig.md | 248 + .../docs/Get-AzAppPlatformDevToolPortal.md | 207 + .../docs/Get-AzAppPlatformGateway.md | 206 + .../Get-AzAppPlatformGatewayCustomDomain.md | 222 + .../docs/Get-AzAppPlatformGatewayEnvSecret.md | 171 + .../Get-AzAppPlatformGatewayRouteConfig.md | 223 + .../Get-AzAppPlatformMonitoringSetting.md | 186 + .../Get-AzAppPlatformPredefinedAccelerator.md | 223 + .../docs/Get-AzAppPlatformRuntimeVersion.md | 77 + .../docs/Get-AzAppPlatformService.md | 196 + .../docs/Get-AzAppPlatformServiceRegistry.md | 207 + .../docs/Get-AzAppPlatformServiceTestKey.md | 156 + .../appplatform/docs/Get-AzAppPlatformSku.md | 93 + .../docs/Get-AzAppPlatformStorage.md | 206 + .../docs/New-AzAppPlatformApiPortal.md | 369 + .../New-AzAppPlatformApiPortalCustomDomain.md | 232 + .../appplatform/docs/New-AzAppPlatformApp.md | 557 + ...New-AzAppPlatformApplicationAccelerator.md | 247 + .../New-AzAppPlatformApplicationLiveView.md | 202 + .../docs/New-AzAppPlatformBinding.md | 262 + .../New-AzAppPlatformBuildServiceBuild.md | 282 + .../New-AzAppPlatformBuildServiceBuilder.md | 274 + .../docs/New-AzAppPlatformBuildpackBinding.md | 278 + .../docs/New-AzAppPlatformCertificate.md | 217 + .../New-AzAppPlatformConfigurationService.md | 236 + .../docs/New-AzAppPlatformCustomDomain.md | 247 + .../New-AzAppPlatformCustomizedAccelerator.md | 416 + .../docs/New-AzAppPlatformDeployment.md | 360 + .../New-AzAppPlatformDeploymentHeapDump.md | 378 + .../New-AzAppPlatformDeploymentThreadDump.md | 378 + .../docs/New-AzAppPlatformDevToolPortal.md | 309 + .../docs/New-AzAppPlatformGateway.md | 590 + .../New-AzAppPlatformGatewayCustomDomain.md | 232 + .../New-AzAppPlatformGatewayRouteConfig.md | 343 + .../docs/New-AzAppPlatformService.md | 448 + .../docs/New-AzAppPlatformServiceTestKey.md | 267 + .../docs/New-AzAppPlatformStorage.md | 202 + swaggerci/appplatform/docs/README.md | 11 + .../docs/Remove-AzAppPlatformApiPortal.md | 278 + ...move-AzAppPlatformApiPortalCustomDomain.md | 293 + .../docs/Remove-AzAppPlatformApp.md | 278 + ...ove-AzAppPlatformApplicationAccelerator.md | 278 + ...Remove-AzAppPlatformApplicationLiveView.md | 278 + .../docs/Remove-AzAppPlatformBinding.md | 293 + ...Remove-AzAppPlatformBuildServiceBuilder.md | 293 + .../Remove-AzAppPlatformBuildpackBinding.md | 308 + .../docs/Remove-AzAppPlatformCertificate.md | 278 + ...emove-AzAppPlatformConfigurationService.md | 278 + .../docs/Remove-AzAppPlatformCustomDomain.md | 293 + ...move-AzAppPlatformCustomizedAccelerator.md | 293 + .../docs/Remove-AzAppPlatformDeployment.md | 293 + .../docs/Remove-AzAppPlatformDevToolPortal.md | 278 + .../docs/Remove-AzAppPlatformGateway.md | 278 + ...Remove-AzAppPlatformGatewayCustomDomain.md | 293 + .../Remove-AzAppPlatformGatewayRouteConfig.md | 293 + .../docs/Remove-AzAppPlatformService.md | 262 + .../Remove-AzAppPlatformServiceRegistry.md | 278 + .../docs/Remove-AzAppPlatformStorage.md | 278 + .../docs/Restart-AzAppPlatformDeployment.md | 293 + .../docs/Start-AzAppPlatformDeployment.md | 293 + .../docs/Start-AzAppPlatformDeploymentJfr.md | 378 + .../docs/Start-AzAppPlatformService.md | 262 + .../docs/Stop-AzAppPlatformDeployment.md | 293 + .../docs/Stop-AzAppPlatformService.md | 262 + .../docs/Test-AzAppPlatformApiPortalDomain.md | 283 + .../docs/Test-AzAppPlatformAppDomain.md | 282 + .../docs/Test-AzAppPlatformConfigServer.md | 474 + .../Test-AzAppPlatformConfigurationService.md | 339 + ...Test-AzAppPlatformCustomizedAccelerator.md | 463 + .../docs/Test-AzAppPlatformGatewayDomain.md | 283 + ...st-AzAppPlatformServiceNameAvailability.md | 267 + .../docs/Update-AzAppPlatformApp.md | 621 + .../docs/Update-AzAppPlatformBinding.md | 324 + .../Update-AzAppPlatformConfigServerPatch.md | 450 + .../docs/Update-AzAppPlatformCustomDomain.md | 309 + .../docs/Update-AzAppPlatformDeployment.md | 419 + ...ate-AzAppPlatformMonitoringSettingPatch.md | 327 + .../docs/Update-AzAppPlatformService.md | 515 + ...-AzAppPlatformDeploymentRemoteDebugging.md | 22 + ...able-AzAppPlatformPredefinedAccelerator.md | 22 + ...isable-AzAppPlatformServiceTestEndpoint.md | 22 + ...-AzAppPlatformDeploymentRemoteDebugging.md | 22 + ...able-AzAppPlatformPredefinedAccelerator.md | 22 + ...Enable-AzAppPlatformServiceTestEndpoint.md | 22 + .../examples/Get-AzAppPlatformApiPortal.md | 22 + .../Get-AzAppPlatformApiPortalCustomDomain.md | 22 + .../examples/Get-AzAppPlatformApp.md | 22 + .../Get-AzAppPlatformAppResourceUploadUrl.md | 22 + ...Get-AzAppPlatformApplicationAccelerator.md | 22 + .../Get-AzAppPlatformApplicationLiveView.md | 22 + .../examples/Get-AzAppPlatformBinding.md | 22 + .../examples/Get-AzAppPlatformBuildService.md | 22 + .../Get-AzAppPlatformBuildServiceAgentPool.md | 22 + .../Get-AzAppPlatformBuildServiceBuild.md | 22 + ...et-AzAppPlatformBuildServiceBuildResult.md | 22 + ...AzAppPlatformBuildServiceBuildResultLog.md | 22 + .../Get-AzAppPlatformBuildServiceBuilder.md | 22 + ...ppPlatformBuildServiceBuilderDeployment.md | 22 + ...ppPlatformBuildServiceResourceUploadUrl.md | 22 + ...pPlatformBuildServiceSupportedBuildpack.md | 22 + ...AzAppPlatformBuildServiceSupportedStack.md | 22 + .../Get-AzAppPlatformBuildpackBinding.md | 22 + .../examples/Get-AzAppPlatformCertificate.md | 22 + .../examples/Get-AzAppPlatformConfigServer.md | 22 + .../Get-AzAppPlatformConfigurationService.md | 22 + .../examples/Get-AzAppPlatformCustomDomain.md | 22 + .../Get-AzAppPlatformCustomizedAccelerator.md | 22 + .../examples/Get-AzAppPlatformDeployment.md | 22 + .../Get-AzAppPlatformDeploymentLogFileUrl.md | 22 + ...PlatformDeploymentRemoteDebuggingConfig.md | 22 + .../Get-AzAppPlatformDevToolPortal.md | 22 + .../examples/Get-AzAppPlatformGateway.md | 22 + .../Get-AzAppPlatformGatewayCustomDomain.md | 22 + .../Get-AzAppPlatformGatewayEnvSecret.md | 22 + .../Get-AzAppPlatformGatewayRouteConfig.md | 22 + .../Get-AzAppPlatformMonitoringSetting.md | 22 + .../Get-AzAppPlatformPredefinedAccelerator.md | 22 + .../Get-AzAppPlatformRuntimeVersion.md | 22 + .../examples/Get-AzAppPlatformService.md | 22 + .../Get-AzAppPlatformServiceRegistry.md | 22 + .../Get-AzAppPlatformServiceTestKey.md | 22 + .../examples/Get-AzAppPlatformSku.md | 22 + .../examples/Get-AzAppPlatformStorage.md | 22 + .../examples/New-AzAppPlatformApiPortal.md | 22 + .../New-AzAppPlatformApiPortalCustomDomain.md | 22 + .../examples/New-AzAppPlatformApp.md | 22 + ...New-AzAppPlatformApplicationAccelerator.md | 22 + .../New-AzAppPlatformApplicationLiveView.md | 22 + .../examples/New-AzAppPlatformBinding.md | 22 + .../New-AzAppPlatformBuildServiceBuild.md | 22 + .../New-AzAppPlatformBuildServiceBuilder.md | 22 + .../New-AzAppPlatformBuildpackBinding.md | 22 + .../examples/New-AzAppPlatformCertificate.md | 22 + .../New-AzAppPlatformConfigurationService.md | 22 + .../examples/New-AzAppPlatformCustomDomain.md | 22 + .../New-AzAppPlatformCustomizedAccelerator.md | 22 + .../examples/New-AzAppPlatformDeployment.md | 22 + .../New-AzAppPlatformDeploymentHeapDump.md | 22 + .../New-AzAppPlatformDeploymentThreadDump.md | 22 + .../New-AzAppPlatformDevToolPortal.md | 22 + .../examples/New-AzAppPlatformGateway.md | 22 + .../New-AzAppPlatformGatewayCustomDomain.md | 22 + .../New-AzAppPlatformGatewayRouteConfig.md | 22 + .../examples/New-AzAppPlatformService.md | 22 + .../New-AzAppPlatformServiceTestKey.md | 22 + .../examples/New-AzAppPlatformStorage.md | 22 + .../examples/Remove-AzAppPlatformApiPortal.md | 22 + ...move-AzAppPlatformApiPortalCustomDomain.md | 22 + .../examples/Remove-AzAppPlatformApp.md | 22 + ...ove-AzAppPlatformApplicationAccelerator.md | 22 + ...Remove-AzAppPlatformApplicationLiveView.md | 22 + .../examples/Remove-AzAppPlatformBinding.md | 22 + ...Remove-AzAppPlatformBuildServiceBuilder.md | 22 + .../Remove-AzAppPlatformBuildpackBinding.md | 22 + .../Remove-AzAppPlatformCertificate.md | 22 + ...emove-AzAppPlatformConfigurationService.md | 22 + .../Remove-AzAppPlatformCustomDomain.md | 22 + ...move-AzAppPlatformCustomizedAccelerator.md | 22 + .../Remove-AzAppPlatformDeployment.md | 22 + .../Remove-AzAppPlatformDevToolPortal.md | 22 + .../examples/Remove-AzAppPlatformGateway.md | 22 + ...Remove-AzAppPlatformGatewayCustomDomain.md | 22 + .../Remove-AzAppPlatformGatewayRouteConfig.md | 22 + .../examples/Remove-AzAppPlatformService.md | 22 + .../Remove-AzAppPlatformServiceRegistry.md | 22 + .../examples/Remove-AzAppPlatformStorage.md | 22 + .../Restart-AzAppPlatformDeployment.md | 22 + .../examples/Start-AzAppPlatformDeployment.md | 22 + .../Start-AzAppPlatformDeploymentJfr.md | 22 + .../examples/Start-AzAppPlatformService.md | 22 + .../examples/Stop-AzAppPlatformDeployment.md | 22 + .../examples/Stop-AzAppPlatformService.md | 22 + .../Test-AzAppPlatformApiPortalDomain.md | 22 + .../examples/Test-AzAppPlatformAppDomain.md | 22 + .../Test-AzAppPlatformConfigServer.md | 22 + .../Test-AzAppPlatformConfigurationService.md | 22 + ...Test-AzAppPlatformCustomizedAccelerator.md | 22 + .../Test-AzAppPlatformGatewayDomain.md | 22 + ...st-AzAppPlatformServiceNameAvailability.md | 22 + .../examples/Update-AzAppPlatformApp.md | 22 + .../examples/Update-AzAppPlatformBinding.md | 22 + .../Update-AzAppPlatformConfigServerPatch.md | 22 + .../Update-AzAppPlatformCustomDomain.md | 22 + .../Update-AzAppPlatformDeployment.md | 22 + ...ate-AzAppPlatformMonitoringSettingPatch.md | 22 + .../examples/Update-AzAppPlatformService.md | 22 + swaggerci/appplatform/export-surface.ps1 | 33 + ...AzAppPlatformDeploymentRemoteDebugging.ps1 | 241 + ...ble-AzAppPlatformPredefinedAccelerator.ps1 | 248 + ...sable-AzAppPlatformServiceTestEndpoint.ps1 | 223 + ...AzAppPlatformDeploymentRemoteDebugging.ps1 | 269 + ...ble-AzAppPlatformPredefinedAccelerator.ps1 | 248 + ...nable-AzAppPlatformServiceTestEndpoint.ps1 | 217 + .../exports/Get-AzAppPlatformApiPortal.ps1 | 228 + ...Get-AzAppPlatformApiPortalCustomDomain.ps1 | 234 + .../exports/Get-AzAppPlatformApp.ps1 | 235 + .../Get-AzAppPlatformAppResourceUploadUrl.ps1 | 223 + ...et-AzAppPlatformApplicationAccelerator.ps1 | 228 + .../Get-AzAppPlatformApplicationLiveView.ps1 | 228 + .../exports/Get-AzAppPlatformBinding.ps1 | 235 + .../exports/Get-AzAppPlatformBuildService.ps1 | 228 + ...Get-AzAppPlatformBuildServiceAgentPool.ps1 | 234 + .../Get-AzAppPlatformBuildServiceBuild.ps1 | 234 + ...t-AzAppPlatformBuildServiceBuildResult.ps1 | 241 + ...zAppPlatformBuildServiceBuildResultLog.ps1 | 235 + .../Get-AzAppPlatformBuildServiceBuilder.ps1 | 234 + ...pPlatformBuildServiceBuilderDeployment.ps1 | 184 + ...pPlatformBuildServiceResourceUploadUrl.ps1 | 223 + ...PlatformBuildServiceSupportedBuildpack.ps1 | 236 + ...zAppPlatformBuildServiceSupportedStack.ps1 | 236 + .../Get-AzAppPlatformBuildpackBinding.ps1 | 242 + .../exports/Get-AzAppPlatformCertificate.ps1 | 228 + .../exports/Get-AzAppPlatformConfigServer.ps1 | 217 + .../Get-AzAppPlatformConfigurationService.ps1 | 228 + .../exports/Get-AzAppPlatformCustomDomain.ps1 | 234 + ...Get-AzAppPlatformCustomizedAccelerator.ps1 | 235 + .../exports/Get-AzAppPlatformDeployment.ps1 | 247 + .../Get-AzAppPlatformDeploymentLogFileUrl.ps1 | 235 + ...latformDeploymentRemoteDebuggingConfig.ps1 | 229 + .../Get-AzAppPlatformDevToolPortal.ps1 | 228 + .../exports/Get-AzAppPlatformGateway.ps1 | 228 + .../Get-AzAppPlatformGatewayCustomDomain.ps1 | 234 + .../Get-AzAppPlatformGatewayEnvSecret.ps1 | 178 + .../Get-AzAppPlatformGatewayRouteConfig.ps1 | 234 + .../Get-AzAppPlatformMonitoringSetting.ps1 | 217 + ...Get-AzAppPlatformPredefinedAccelerator.ps1 | 235 + .../Get-AzAppPlatformRuntimeVersion.ps1 | 148 + .../exports/Get-AzAppPlatformService.ps1 | 223 + .../Get-AzAppPlatformServiceRegistry.ps1 | 228 + .../Get-AzAppPlatformServiceTestKey.ps1 | 172 + .../exports/Get-AzAppPlatformSku.ps1 | 159 + .../exports/Get-AzAppPlatformStorage.ps1 | 228 + .../exports/New-AzAppPlatformApiPortal.ps1 | 260 + ...New-AzAppPlatformApiPortalCustomDomain.ps1 | 202 + .../exports/New-AzAppPlatformApp.ps1 | 347 + ...ew-AzAppPlatformApplicationAccelerator.ps1 | 209 + .../New-AzAppPlatformApplicationLiveView.ps1 | 191 + .../exports/New-AzAppPlatformBinding.ps1 | 216 + .../New-AzAppPlatformBuildServiceBuild.ps1 | 225 + .../New-AzAppPlatformBuildServiceBuilder.ps1 | 225 + .../New-AzAppPlatformBuildpackBinding.ps1 | 224 + .../exports/New-AzAppPlatformCertificate.ps1 | 197 + .../New-AzAppPlatformConfigurationService.ps1 | 216 + .../exports/New-AzAppPlatformCustomDomain.ps1 | 208 + ...New-AzAppPlatformCustomizedAccelerator.ps1 | 276 + .../exports/New-AzAppPlatformDeployment.ps1 | 275 + .../New-AzAppPlatformDeploymentHeapDump.ps1 | 292 + .../New-AzAppPlatformDeploymentThreadDump.ps1 | 292 + .../New-AzAppPlatformDevToolPortal.ps1 | 236 + .../exports/New-AzAppPlatformGateway.ps1 | 355 + .../New-AzAppPlatformGatewayCustomDomain.ps1 | 202 + .../New-AzAppPlatformGatewayRouteConfig.ps1 | 260 + .../exports/New-AzAppPlatformService.ps1 | 288 + .../New-AzAppPlatformServiceTestKey.ps1 | 244 + .../exports/New-AzAppPlatformStorage.ps1 | 191 + .../exports/ProxyCmdletDefinitions.ps1 | 25529 ++++++++++++ swaggerci/appplatform/exports/README.md | 20 + .../exports/Remove-AzAppPlatformApiPortal.ps1 | 242 + ...ove-AzAppPlatformApiPortalCustomDomain.ps1 | 247 + .../exports/Remove-AzAppPlatformApp.ps1 | 242 + ...ve-AzAppPlatformApplicationAccelerator.ps1 | 242 + ...emove-AzAppPlatformApplicationLiveView.ps1 | 242 + .../exports/Remove-AzAppPlatformBinding.ps1 | 248 + ...emove-AzAppPlatformBuildServiceBuilder.ps1 | 247 + .../Remove-AzAppPlatformBuildpackBinding.ps1 | 254 + .../Remove-AzAppPlatformCertificate.ps1 | 242 + ...move-AzAppPlatformConfigurationService.ps1 | 242 + .../Remove-AzAppPlatformCustomDomain.ps1 | 247 + ...ove-AzAppPlatformCustomizedAccelerator.ps1 | 248 + .../Remove-AzAppPlatformDeployment.ps1 | 248 + .../Remove-AzAppPlatformDevToolPortal.ps1 | 242 + .../exports/Remove-AzAppPlatformGateway.ps1 | 242 + ...emove-AzAppPlatformGatewayCustomDomain.ps1 | 247 + ...Remove-AzAppPlatformGatewayRouteConfig.ps1 | 247 + .../exports/Remove-AzAppPlatformService.ps1 | 236 + .../Remove-AzAppPlatformServiceRegistry.ps1 | 242 + .../exports/Remove-AzAppPlatformStorage.ps1 | 242 + .../Restart-AzAppPlatformDeployment.ps1 | 248 + .../exports/Start-AzAppPlatformDeployment.ps1 | 248 + .../Start-AzAppPlatformDeploymentJfr.ps1 | 292 + .../exports/Start-AzAppPlatformService.ps1 | 236 + .../exports/Stop-AzAppPlatformDeployment.ps1 | 248 + .../exports/Stop-AzAppPlatformService.ps1 | 236 + .../Test-AzAppPlatformApiPortalDomain.ps1 | 250 + .../exports/Test-AzAppPlatformAppDomain.ps1 | 250 + .../Test-AzAppPlatformConfigServer.ps1 | 354 + ...Test-AzAppPlatformConfigurationService.ps1 | 289 + ...est-AzAppPlatformCustomizedAccelerator.ps1 | 337 + .../Test-AzAppPlatformGatewayDomain.ps1 | 250 + ...t-AzAppPlatformServiceNameAvailability.ps1 | 243 + .../exports/Update-AzAppPlatformApp.ps1 | 388 + .../exports/Update-AzAppPlatformBinding.ps1 | 261 + .../Update-AzAppPlatformConfigServerPatch.ps1 | 317 + .../Update-AzAppPlatformCustomDomain.ps1 | 253 + .../Update-AzAppPlatformDeployment.ps1 | 316 + ...te-AzAppPlatformMonitoringSettingPatch.ps1 | 260 + .../exports/Update-AzAppPlatformService.ps1 | 333 + swaggerci/appplatform/generate-help.ps1 | 66 + swaggerci/appplatform/generated/Module.cs | 181 + .../api/AppPlatformManagementClient.cs | 33009 ++++++++++++++++ .../generated/api/Models/Any.PowerShell.cs | 136 + .../generated/api/Models/Any.TypeConverter.cs | 146 + .../appplatform/generated/api/Models/Any.cs | 34 + .../generated/api/Models/Any.json.cs | 104 + .../AcceleratorAuthSetting.PowerShell.cs | 146 + .../AcceleratorAuthSetting.TypeConverter.cs | 147 + .../AcceleratorAuthSetting.cs | 51 + .../AcceleratorAuthSetting.json.cs | 131 + .../AcceleratorBasicAuthSetting.PowerShell.cs | 162 + ...celeratorBasicAuthSetting.TypeConverter.cs | 147 + .../AcceleratorBasicAuthSetting.cs | 91 + .../AcceleratorBasicAuthSetting.json.cs | 112 + .../AcceleratorGitRepository.PowerShell.cs | 192 + .../AcceleratorGitRepository.TypeConverter.cs | 147 + .../AcceleratorGitRepository.cs | 142 + .../AcceleratorGitRepository.json.cs | 117 + .../AcceleratorPublicSetting.PowerShell.cs | 146 + .../AcceleratorPublicSetting.TypeConverter.cs | 147 + .../AcceleratorPublicSetting.cs | 57 + .../AcceleratorPublicSetting.json.cs | 108 + .../AcceleratorSshSetting.PowerShell.cs | 170 + .../AcceleratorSshSetting.TypeConverter.cs | 147 + .../AcceleratorSshSetting.cs | 108 + .../AcceleratorSshSetting.json.cs | 114 + .../ActiveDeploymentCollection.PowerShell.cs | 148 + ...ctiveDeploymentCollection.TypeConverter.cs | 147 + .../ActiveDeploymentCollection.cs | 53 + .../ActiveDeploymentCollection.json.cs | 118 + ...PortalCustomDomainProperties.PowerShell.cs | 146 + ...talCustomDomainProperties.TypeConverter.cs | 148 + .../ApiPortalCustomDomainProperties.cs | 51 + .../ApiPortalCustomDomainProperties.json.cs | 108 + ...piPortalCustomDomainResource.PowerShell.cs | 234 + ...ortalCustomDomainResource.TypeConverter.cs | 147 + .../ApiPortalCustomDomainResource.cs | 131 + .../ApiPortalCustomDomainResource.json.cs | 110 + ...stomDomainResourceCollection.PowerShell.cs | 159 + ...mDomainResourceCollection.TypeConverter.cs | 151 + ...ApiPortalCustomDomainResourceCollection.cs | 80 + ...rtalCustomDomainResourceCollection.json.cs | 122 + .../ApiPortalInstance.PowerShell.cs | 154 + .../ApiPortalInstance.TypeConverter.cs | 147 + .../Api20221101Preview/ApiPortalInstance.cs | 74 + .../ApiPortalInstance.json.cs | 116 + .../ApiPortalProperties.PowerShell.cs | 258 + .../ApiPortalProperties.TypeConverter.cs | 147 + .../Api20221101Preview/ApiPortalProperties.cs | 282 + .../ApiPortalProperties.json.cs | 160 + .../ApiPortalResource.PowerShell.cs | 378 + .../ApiPortalResource.TypeConverter.cs | 147 + .../Api20221101Preview/ApiPortalResource.cs | 384 + .../ApiPortalResource.json.cs | 112 + .../ApiPortalResourceCollection.PowerShell.cs | 156 + ...iPortalResourceCollection.TypeConverter.cs | 147 + .../ApiPortalResourceCollection.cs | 80 + .../ApiPortalResourceCollection.json.cs | 120 + .../ApiPortalResourceRequests.PowerShell.cs | 154 + ...ApiPortalResourceRequests.TypeConverter.cs | 147 + .../ApiPortalResourceRequests.cs | 74 + .../ApiPortalResourceRequests.json.cs | 116 + .../AppResource.PowerShell.cs | 488 + .../AppResource.TypeConverter.cs | 147 + .../Models/Api20221101Preview/AppResource.cs | 556 + .../Api20221101Preview/AppResource.json.cs | 114 + .../AppResourceCollection.PowerShell.cs | 154 + .../AppResourceCollection.TypeConverter.cs | 147 + .../AppResourceCollection.cs | 78 + .../AppResourceCollection.json.cs | 118 + .../AppResourceProperties.PowerShell.cs | 354 + .../AppResourceProperties.TypeConverter.cs | 147 + .../AppResourceProperties.cs | 443 + .../AppResourceProperties.json.cs | 157 + ...sourcePropertiesAddonConfigs.PowerShell.cs | 144 + ...rcePropertiesAddonConfigs.TypeConverter.cs | 148 + .../AppResourcePropertiesAddonConfigs.cs | 35 + ...sourcePropertiesAddonConfigs.dictionary.cs | 75 + .../AppResourcePropertiesAddonConfigs.json.cs | 109 + .../AppVNetAddons.PowerShell.cs | 152 + .../AppVNetAddons.TypeConverter.cs | 147 + .../Api20221101Preview/AppVNetAddons.cs | 77 + .../Api20221101Preview/AppVNetAddons.json.cs | 113 + ...licationAcceleratorComponent.PowerShell.cs | 184 + ...ationAcceleratorComponent.TypeConverter.cs | 148 + .../ApplicationAcceleratorComponent.cs | 141 + .../ApplicationAcceleratorComponent.json.cs | 125 + ...plicationAcceleratorInstance.PowerShell.cs | 152 + ...cationAcceleratorInstance.TypeConverter.cs | 148 + .../ApplicationAcceleratorInstance.cs | 77 + .../ApplicationAcceleratorInstance.json.cs | 115 + ...icationAcceleratorProperties.PowerShell.cs | 154 + ...tionAcceleratorProperties.TypeConverter.cs | 148 + .../ApplicationAcceleratorProperties.cs | 74 + .../ApplicationAcceleratorProperties.json.cs | 124 + ...plicationAcceleratorResource.PowerShell.cs | 274 + ...cationAcceleratorResource.TypeConverter.cs | 148 + .../ApplicationAcceleratorResource.cs | 205 + .../ApplicationAcceleratorResource.json.cs | 112 + ...cceleratorResourceCollection.PowerShell.cs | 159 + ...leratorResourceCollection.TypeConverter.cs | 151 + ...pplicationAcceleratorResourceCollection.cs | 82 + ...ationAcceleratorResourceCollection.json.cs | 122 + ...nAcceleratorResourceRequests.PowerShell.cs | 163 + ...celeratorResourceRequests.TypeConverter.cs | 151 + .../ApplicationAcceleratorResourceRequests.cs | 103 + ...icationAcceleratorResourceRequests.json.cs | 121 + ...icationInsightsAgentVersions.PowerShell.cs | 146 + ...tionInsightsAgentVersions.TypeConverter.cs | 148 + .../ApplicationInsightsAgentVersions.cs | 54 + .../ApplicationInsightsAgentVersions.json.cs | 111 + ...ApplicationLiveViewComponent.PowerShell.cs | 186 + ...licationLiveViewComponent.TypeConverter.cs | 147 + .../ApplicationLiveViewComponent.cs | 149 + .../ApplicationLiveViewComponent.json.cs | 129 + .../ApplicationLiveViewInstance.PowerShell.cs | 154 + ...plicationLiveViewInstance.TypeConverter.cs | 147 + .../ApplicationLiveViewInstance.cs | 80 + .../ApplicationLiveViewInstance.json.cs | 116 + ...pplicationLiveViewProperties.PowerShell.cs | 154 + ...icationLiveViewProperties.TypeConverter.cs | 147 + .../ApplicationLiveViewProperties.cs | 74 + .../ApplicationLiveViewProperties.json.cs | 124 + .../ApplicationLiveViewResource.PowerShell.cs | 242 + ...plicationLiveViewResource.TypeConverter.cs | 147 + .../ApplicationLiveViewResource.cs | 151 + .../ApplicationLiveViewResource.json.cs | 110 + ...onLiveViewResourceCollection.PowerShell.cs | 159 + ...iveViewResourceCollection.TypeConverter.cs | 150 + .../ApplicationLiveViewResourceCollection.cs | 80 + ...licationLiveViewResourceCollection.json.cs | 121 + ...tionLiveViewResourceRequests.PowerShell.cs | 166 + ...nLiveViewResourceRequests.TypeConverter.cs | 149 + .../ApplicationLiveViewResourceRequests.cs | 108 + ...pplicationLiveViewResourceRequests.json.cs | 124 + .../AvailableOperations.PowerShell.cs | 154 + .../AvailableOperations.TypeConverter.cs | 147 + .../Api20221101Preview/AvailableOperations.cs | 78 + .../AvailableOperations.json.cs | 118 + .../AvailableRuntimeVersions.PowerShell.cs | 144 + .../AvailableRuntimeVersions.TypeConverter.cs | 147 + .../AvailableRuntimeVersions.cs | 51 + .../AvailableRuntimeVersions.json.cs | 118 + .../AzureFileVolume.PowerShell.cs | 178 + .../AzureFileVolume.TypeConverter.cs | 147 + .../Api20221101Preview/AzureFileVolume.cs | 91 + .../AzureFileVolume.json.cs | 112 + .../BindingResource.PowerShell.cs | 288 + .../BindingResource.TypeConverter.cs | 147 + .../Api20221101Preview/BindingResource.cs | 250 + .../BindingResource.json.cs | 110 + .../BindingResourceCollection.PowerShell.cs | 156 + ...BindingResourceCollection.TypeConverter.cs | 147 + .../BindingResourceCollection.cs | 80 + .../BindingResourceCollection.json.cs | 120 + .../BindingResourceProperties.PowerShell.cs | 202 + ...BindingResourceProperties.TypeConverter.cs | 147 + .../BindingResourceProperties.cs | 191 + .../BindingResourceProperties.json.cs | 137 + ...ePropertiesBindingParameters.PowerShell.cs | 145 + ...opertiesBindingParameters.TypeConverter.cs | 151 + ...dingResourcePropertiesBindingParameters.cs | 37 + ...ePropertiesBindingParameters.dictionary.cs | 75 + ...esourcePropertiesBindingParameters.json.cs | 111 + .../Api20221101Preview/Build.PowerShell.cs | 304 + .../Api20221101Preview/Build.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Build.cs | 262 + .../Models/Api20221101Preview/Build.json.cs | 110 + .../BuildCollection.PowerShell.cs | 154 + .../BuildCollection.TypeConverter.cs | 147 + .../Api20221101Preview/BuildCollection.cs | 80 + .../BuildCollection.json.cs | 120 + .../BuildProperties.PowerShell.cs | 216 + .../BuildProperties.TypeConverter.cs | 147 + .../Api20221101Preview/BuildProperties.cs | 208 + .../BuildProperties.json.cs | 126 + .../BuildPropertiesEnv.PowerShell.cs | 142 + .../BuildPropertiesEnv.TypeConverter.cs | 147 + .../Api20221101Preview/BuildPropertiesEnv.cs | 35 + .../BuildPropertiesEnv.dictionary.cs | 75 + .../BuildPropertiesEnv.json.cs | 109 + .../BuildResourceRequests.PowerShell.cs | 154 + .../BuildResourceRequests.TypeConverter.cs | 147 + .../BuildResourceRequests.cs | 88 + .../BuildResourceRequests.json.cs | 110 + .../BuildResult.PowerShell.cs | 280 + .../BuildResult.TypeConverter.cs | 147 + .../Models/Api20221101Preview/BuildResult.cs | 212 + .../Api20221101Preview/BuildResult.json.cs | 110 + .../BuildResultCollection.PowerShell.cs | 156 + .../BuildResultCollection.TypeConverter.cs | 147 + .../BuildResultCollection.cs | 80 + .../BuildResultCollection.json.cs | 120 + .../BuildResultLog.PowerShell.cs | 144 + .../BuildResultLog.TypeConverter.cs | 147 + .../Api20221101Preview/BuildResultLog.cs | 51 + .../Api20221101Preview/BuildResultLog.json.cs | 108 + .../BuildResultProperties.PowerShell.cs | 194 + .../BuildResultProperties.TypeConverter.cs | 147 + .../BuildResultProperties.cs | 148 + .../BuildResultProperties.json.cs | 130 + .../BuildResultUserSourceInfo.PowerShell.cs | 162 + ...BuildResultUserSourceInfo.TypeConverter.cs | 147 + .../BuildResultUserSourceInfo.cs | 84 + .../BuildResultUserSourceInfo.json.cs | 110 + .../BuildService.PowerShell.cs | 264 + .../BuildService.TypeConverter.cs | 147 + .../Models/Api20221101Preview/BuildService.cs | 187 + .../Api20221101Preview/BuildService.json.cs | 110 + ...ldServiceAgentPoolProperties.PowerShell.cs | 178 + ...erviceAgentPoolProperties.TypeConverter.cs | 148 + .../BuildServiceAgentPoolProperties.cs | 114 + .../BuildServiceAgentPoolProperties.json.cs | 113 + ...uildServiceAgentPoolResource.PowerShell.cs | 266 + ...dServiceAgentPoolResource.TypeConverter.cs | 147 + .../BuildServiceAgentPoolResource.cs | 187 + .../BuildServiceAgentPoolResource.json.cs | 110 + ...eAgentPoolResourceCollection.PowerShell.cs | 159 + ...entPoolResourceCollection.TypeConverter.cs | 151 + ...BuildServiceAgentPoolResourceCollection.cs | 80 + ...ServiceAgentPoolResourceCollection.json.cs | 122 + ...rviceAgentPoolSizeProperties.PowerShell.cs | 164 + ...ceAgentPoolSizeProperties.TypeConverter.cs | 149 + .../BuildServiceAgentPoolSizeProperties.cs | 91 + ...uildServiceAgentPoolSizeProperties.json.cs | 119 + .../BuildServiceCollection.PowerShell.cs | 156 + .../BuildServiceCollection.TypeConverter.cs | 147 + .../BuildServiceCollection.cs | 80 + .../BuildServiceCollection.json.cs | 120 + .../BuildServiceProperties.PowerShell.cs | 178 + .../BuildServiceProperties.TypeConverter.cs | 147 + .../BuildServiceProperties.cs | 117 + .../BuildServiceProperties.json.cs | 115 + ...cePropertiesResourceRequests.PowerShell.cs | 157 + ...ropertiesResourceRequests.TypeConverter.cs | 151 + .../BuildServicePropertiesResourceRequests.cs | 74 + ...dServicePropertiesResourceRequests.json.cs | 117 + .../BuildStageProperties.PowerShell.cs | 170 + .../BuildStageProperties.TypeConverter.cs | 147 + .../BuildStageProperties.cs | 114 + .../BuildStageProperties.json.cs | 126 + .../BuilderProperties.PowerShell.cs | 178 + .../BuilderProperties.TypeConverter.cs | 147 + .../Api20221101Preview/BuilderProperties.cs | 111 + .../BuilderProperties.json.cs | 123 + .../BuilderResource.PowerShell.cs | 264 + .../BuilderResource.TypeConverter.cs | 147 + .../Api20221101Preview/BuilderResource.cs | 181 + .../BuilderResource.json.cs | 110 + .../BuilderResourceCollection.PowerShell.cs | 156 + ...BuilderResourceCollection.TypeConverter.cs | 147 + .../BuilderResourceCollection.cs | 80 + .../BuilderResourceCollection.json.cs | 120 + ...dpackBindingLaunchProperties.PowerShell.cs | 142 + ...ckBindingLaunchProperties.TypeConverter.cs | 148 + .../BuildpackBindingLaunchProperties.cs | 35 + ...dpackBindingLaunchProperties.dictionary.cs | 75 + .../BuildpackBindingLaunchProperties.json.cs | 109 + ...packBindingLaunchProperties1.PowerShell.cs | 156 + ...kBindingLaunchProperties1.TypeConverter.cs | 148 + .../BuildpackBindingLaunchProperties1.cs | 68 + .../BuildpackBindingLaunchProperties1.json.cs | 110 + ...ndingLaunchPropertiesSecrets.PowerShell.cs | 145 + ...ngLaunchPropertiesSecrets.TypeConverter.cs | 151 + ...BuildpackBindingLaunchPropertiesSecrets.cs | 35 + ...ndingLaunchPropertiesSecrets.dictionary.cs | 75 + ...packBindingLaunchPropertiesSecrets.json.cs | 111 + .../BuildpackBindingProperties.PowerShell.cs | 178 + ...uildpackBindingProperties.TypeConverter.cs | 147 + .../BuildpackBindingProperties.cs | 111 + .../BuildpackBindingProperties.json.cs | 115 + .../BuildpackBindingResource.PowerShell.cs | 266 + .../BuildpackBindingResource.TypeConverter.cs | 147 + .../BuildpackBindingResource.cs | 181 + .../BuildpackBindingResource.json.cs | 110 + ...ackBindingResourceCollection.PowerShell.cs | 158 + ...BindingResourceCollection.TypeConverter.cs | 149 + .../BuildpackBindingResourceCollection.cs | 80 + ...BuildpackBindingResourceCollection.json.cs | 121 + .../BuildpackProperties.PowerShell.cs | 146 + .../BuildpackProperties.TypeConverter.cs | 147 + .../Api20221101Preview/BuildpackProperties.cs | 51 + .../BuildpackProperties.json.cs | 108 + .../BuildpacksGroupProperties.PowerShell.cs | 154 + ...BuildpacksGroupProperties.TypeConverter.cs | 147 + .../BuildpacksGroupProperties.cs | 68 + .../BuildpacksGroupProperties.json.cs | 118 + .../CertificateProperties.PowerShell.cs | 210 + .../CertificateProperties.TypeConverter.cs | 147 + .../CertificateProperties.cs | 211 + .../CertificateProperties.json.cs | 175 + .../CertificateResource.PowerShell.cs | 298 + .../CertificateResource.TypeConverter.cs | 147 + .../Api20221101Preview/CertificateResource.cs | 267 + .../CertificateResource.json.cs | 110 + ...ertificateResourceCollection.PowerShell.cs | 156 + ...ificateResourceCollection.TypeConverter.cs | 147 + .../CertificateResourceCollection.cs | 70 + .../CertificateResourceCollection.json.cs | 120 + .../CloudError.PowerShell.cs | 176 + .../CloudError.TypeConverter.cs | 146 + .../Models/Api20221101Preview/CloudError.cs | 120 + .../Api20221101Preview/CloudError.json.cs | 108 + .../CloudErrorBody.PowerShell.cs | 168 + .../CloudErrorBody.TypeConverter.cs | 147 + .../Api20221101Preview/CloudErrorBody.cs | 120 + .../Api20221101Preview/CloudErrorBody.json.cs | 122 + .../ClusterResourceProperties.PowerShell.cs | 330 + ...ClusterResourceProperties.TypeConverter.cs | 147 + .../ClusterResourceProperties.cs | 414 + .../ClusterResourceProperties.json.cs | 139 + .../ConfigServerGitProperty.PowerShell.cs | 218 + .../ConfigServerGitProperty.TypeConverter.cs | 147 + .../ConfigServerGitProperty.cs | 204 + .../ConfigServerGitProperty.json.cs | 142 + .../ConfigServerProperties.PowerShell.cs | 266 + .../ConfigServerProperties.TypeConverter.cs | 147 + .../ConfigServerProperties.cs | 251 + .../ConfigServerProperties.json.cs | 115 + .../ConfigServerResource.PowerShell.cs | 354 + .../ConfigServerResource.TypeConverter.cs | 147 + .../ConfigServerResource.cs | 317 + .../ConfigServerResource.json.cs | 110 + .../ConfigServerSettings.PowerShell.cs | 226 + .../ConfigServerSettings.TypeConverter.cs | 147 + .../ConfigServerSettings.cs | 186 + .../ConfigServerSettings.json.cs | 108 + ...figServerSettingsErrorRecord.PowerShell.cs | 162 + ...ServerSettingsErrorRecord.TypeConverter.cs | 148 + .../ConfigServerSettingsErrorRecord.cs | 85 + .../ConfigServerSettingsErrorRecord.json.cs | 120 + ...ServerSettingsValidateResult.PowerShell.cs | 156 + ...verSettingsValidateResult.TypeConverter.cs | 149 + .../ConfigServerSettingsValidateResult.cs | 68 + ...ConfigServerSettingsValidateResult.json.cs | 119 + ...figurationServiceGitProperty.PowerShell.cs | 146 + ...urationServiceGitProperty.TypeConverter.cs | 148 + .../ConfigurationServiceGitProperty.cs | 51 + .../ConfigurationServiceGitProperty.json.cs | 116 + ...iceGitPropertyValidateResult.PowerShell.cs | 157 + ...GitPropertyValidateResult.TypeConverter.cs | 151 + ...urationServiceGitPropertyValidateResult.cs | 70 + ...onServiceGitPropertyValidateResult.json.cs | 121 + ...gurationServiceGitRepository.PowerShell.cs | 228 + ...ationServiceGitRepository.TypeConverter.cs | 148 + .../ConfigurationServiceGitRepository.cs | 221 + .../ConfigurationServiceGitRepository.json.cs | 144 + ...ConfigurationServiceInstance.PowerShell.cs | 154 + ...figurationServiceInstance.TypeConverter.cs | 147 + .../ConfigurationServiceInstance.cs | 74 + .../ConfigurationServiceInstance.json.cs | 116 + ...nfigurationServiceProperties.PowerShell.cs | 210 + ...gurationServiceProperties.TypeConverter.cs | 148 + .../ConfigurationServiceProperties.cs | 168 + .../ConfigurationServiceProperties.json.cs | 131 + ...ConfigurationServiceResource.PowerShell.cs | 298 + ...figurationServiceResource.TypeConverter.cs | 147 + .../ConfigurationServiceResource.cs | 231 + .../ConfigurationServiceResource.json.cs | 110 + ...ionServiceResourceCollection.PowerShell.cs | 159 + ...ServiceResourceCollection.TypeConverter.cs | 151 + .../ConfigurationServiceResourceCollection.cs | 80 + ...igurationServiceResourceCollection.json.cs | 121 + ...ationServiceResourceRequests.PowerShell.cs | 164 + ...onServiceResourceRequests.TypeConverter.cs | 150 + .../ConfigurationServiceResourceRequests.cs | 94 + ...nfigurationServiceResourceRequests.json.cs | 122 + ...ConfigurationServiceSettings.PowerShell.cs | 154 + ...figurationServiceSettings.TypeConverter.cs | 147 + .../ConfigurationServiceSettings.cs | 60 + .../ConfigurationServiceSettings.json.cs | 108 + ...erviceSettingsValidateResult.PowerShell.cs | 165 + ...iceSettingsValidateResult.TypeConverter.cs | 151 + ...figurationServiceSettingsValidateResult.cs | 76 + ...ationServiceSettingsValidateResult.json.cs | 110 + .../ContainerProbeSettings.PowerShell.cs | 146 + .../ContainerProbeSettings.TypeConverter.cs | 147 + .../ContainerProbeSettings.cs | 51 + .../ContainerProbeSettings.json.cs | 108 + ...ContentCertificateProperties.PowerShell.cs | 218 + ...tentCertificateProperties.TypeConverter.cs | 147 + .../ContentCertificateProperties.cs | 130 + .../ContentCertificateProperties.json.cs | 110 + .../CustomContainer.PowerShell.cs | 200 + .../CustomContainer.TypeConverter.cs | 147 + .../Api20221101Preview/CustomContainer.cs | 180 + .../CustomContainer.json.cs | 134 + ...ustomContainerUserSourceInfo.PowerShell.cs | 226 + ...omContainerUserSourceInfo.TypeConverter.cs | 147 + .../CustomContainerUserSourceInfo.cs | 197 + .../CustomContainerUserSourceInfo.json.cs | 110 + .../CustomDomainProperties.PowerShell.cs | 170 + .../CustomDomainProperties.TypeConverter.cs | 147 + .../CustomDomainProperties.cs | 108 + .../CustomDomainProperties.json.cs | 120 + .../CustomDomainResource.PowerShell.cs | 258 + .../CustomDomainResource.TypeConverter.cs | 147 + .../CustomDomainResource.cs | 179 + .../CustomDomainResource.json.cs | 110 + ...stomDomainResourceCollection.PowerShell.cs | 156 + ...mDomainResourceCollection.TypeConverter.cs | 148 + .../CustomDomainResourceCollection.cs | 70 + .../CustomDomainResourceCollection.json.cs | 120 + .../CustomDomainValidatePayload.PowerShell.cs | 146 + ...stomDomainValidatePayload.TypeConverter.cs | 147 + .../CustomDomainValidatePayload.cs | 51 + .../CustomDomainValidatePayload.json.cs | 108 + .../CustomDomainValidateResult.PowerShell.cs | 154 + ...ustomDomainValidateResult.TypeConverter.cs | 147 + .../CustomDomainValidateResult.cs | 68 + .../CustomDomainValidateResult.json.cs | 110 + ...stomPersistentDiskProperties.PowerShell.cs | 170 + ...mPersistentDiskProperties.TypeConverter.cs | 148 + .../CustomPersistentDiskProperties.cs | 105 + .../CustomPersistentDiskProperties.json.cs | 137 + ...CustomPersistentDiskResource.PowerShell.cs | 186 + ...tomPersistentDiskResource.TypeConverter.cs | 147 + .../CustomPersistentDiskResource.cs | 122 + .../CustomPersistentDiskResource.json.cs | 110 + ...tomizedAcceleratorProperties.PowerShell.cs | 242 + ...izedAcceleratorProperties.TypeConverter.cs | 148 + .../CustomizedAcceleratorProperties.cs | 216 + .../CustomizedAcceleratorProperties.json.cs | 129 + ...ustomizedAcceleratorResource.PowerShell.cs | 362 + ...omizedAcceleratorResource.TypeConverter.cs | 147 + .../CustomizedAcceleratorResource.cs | 332 + .../CustomizedAcceleratorResource.json.cs | 112 + ...cceleratorResourceCollection.PowerShell.cs | 155 + ...leratorResourceCollection.TypeConverter.cs | 151 + ...CustomizedAcceleratorResourceCollection.cs | 61 + ...mizedAcceleratorResourceCollection.json.cs | 119 + ...zedAcceleratorValidateResult.PowerShell.cs | 156 + ...AcceleratorValidateResult.TypeConverter.cs | 149 + .../CustomizedAcceleratorValidateResult.cs | 68 + ...ustomizedAcceleratorValidateResult.json.cs | 111 + .../DeploymentInstance.PowerShell.cs | 186 + .../DeploymentInstance.TypeConverter.cs | 147 + .../Api20221101Preview/DeploymentInstance.cs | 154 + .../DeploymentInstance.json.cs | 136 + .../DeploymentList.PowerShell.cs | 144 + .../DeploymentList.TypeConverter.cs | 147 + .../Api20221101Preview/DeploymentList.cs | 51 + .../Api20221101Preview/DeploymentList.json.cs | 116 + .../DeploymentResource.PowerShell.cs | 322 + .../DeploymentResource.TypeConverter.cs | 147 + .../Api20221101Preview/DeploymentResource.cs | 283 + .../DeploymentResource.json.cs | 112 + ...DeploymentResourceCollection.PowerShell.cs | 154 + ...loymentResourceCollection.TypeConverter.cs | 147 + .../DeploymentResourceCollection.cs | 78 + .../DeploymentResourceCollection.json.cs | 118 + ...DeploymentResourceProperties.PowerShell.cs | 202 + ...loymentResourceProperties.TypeConverter.cs | 147 + .../DeploymentResourceProperties.cs | 168 + .../DeploymentResourceProperties.json.cs | 135 + .../DeploymentSettings.PowerShell.cs | 418 + .../DeploymentSettings.TypeConverter.cs | 147 + .../Api20221101Preview/DeploymentSettings.cs | 621 + .../DeploymentSettings.json.cs | 122 + ...ploymentSettingsAddonConfigs.PowerShell.cs | 142 + ...ymentSettingsAddonConfigs.TypeConverter.cs | 148 + .../DeploymentSettingsAddonConfigs.cs | 35 + ...ploymentSettingsAddonConfigs.dictionary.cs | 75 + .../DeploymentSettingsAddonConfigs.json.cs | 109 + ...SettingsEnvironmentVariables.PowerShell.cs | 145 + ...tingsEnvironmentVariables.TypeConverter.cs | 151 + .../DeploymentSettingsEnvironmentVariables.cs | 35 + ...SettingsEnvironmentVariables.dictionary.cs | 75 + ...oymentSettingsEnvironmentVariables.json.cs | 110 + .../DevToolPortalFeatureDetail.PowerShell.cs | 154 + ...evToolPortalFeatureDetail.TypeConverter.cs | 147 + .../DevToolPortalFeatureDetail.cs | 71 + .../DevToolPortalFeatureDetail.json.cs | 113 + ...DevToolPortalFeatureSettings.PowerShell.cs | 186 + ...ToolPortalFeatureSettings.TypeConverter.cs | 147 + .../DevToolPortalFeatureSettings.cs | 120 + .../DevToolPortalFeatureSettings.json.cs | 110 + .../DevToolPortalInstance.PowerShell.cs | 154 + .../DevToolPortalInstance.TypeConverter.cs | 147 + .../DevToolPortalInstance.cs | 80 + .../DevToolPortalInstance.json.cs | 116 + .../DevToolPortalProperties.PowerShell.cs | 298 + .../DevToolPortalProperties.TypeConverter.cs | 147 + .../DevToolPortalProperties.cs | 344 + .../DevToolPortalProperties.json.cs | 140 + .../DevToolPortalResource.PowerShell.cs | 386 + .../DevToolPortalResource.TypeConverter.cs | 147 + .../DevToolPortalResource.cs | 394 + .../DevToolPortalResource.json.cs | 110 + ...ToolPortalResourceCollection.PowerShell.cs | 156 + ...lPortalResourceCollection.TypeConverter.cs | 148 + .../DevToolPortalResourceCollection.cs | 80 + .../DevToolPortalResourceCollection.json.cs | 120 + ...evToolPortalResourceRequests.PowerShell.cs | 162 + ...oolPortalResourceRequests.TypeConverter.cs | 147 + .../DevToolPortalResourceRequests.cs | 106 + .../DevToolPortalResourceRequests.json.cs | 121 + .../DevToolPortalSsoProperties.PowerShell.cs | 170 + ...evToolPortalSsoProperties.TypeConverter.cs | 147 + .../DevToolPortalSsoProperties.cs | 108 + .../DevToolPortalSsoProperties.json.cs | 122 + .../DiagnosticParameters.PowerShell.cs | 162 + .../DiagnosticParameters.TypeConverter.cs | 147 + .../DiagnosticParameters.cs | 85 + .../DiagnosticParameters.json.cs | 112 + .../Api20221101Preview/Error.PowerShell.cs | 152 + .../Api20221101Preview/Error.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Error.cs | 68 + .../Models/Api20221101Preview/Error.json.cs | 110 + .../ExecAction.PowerShell.cs | 152 + .../ExecAction.TypeConverter.cs | 146 + .../Models/Api20221101Preview/ExecAction.cs | 89 + .../Api20221101Preview/ExecAction.json.cs | 118 + ...GatewayApiMetadataProperties.PowerShell.cs | 178 + ...ewayApiMetadataProperties.TypeConverter.cs | 147 + .../GatewayApiMetadataProperties.cs | 140 + .../GatewayApiMetadataProperties.json.cs | 116 + .../GatewayApiRoute.PowerShell.cs | 208 + .../GatewayApiRoute.TypeConverter.cs | 147 + .../Api20221101Preview/GatewayApiRoute.cs | 223 + .../GatewayApiRoute.json.cs | 148 + .../GatewayCorsProperties.PowerShell.cs | 186 + .../GatewayCorsProperties.TypeConverter.cs | 147 + .../GatewayCorsProperties.cs | 169 + .../GatewayCorsProperties.json.cs | 150 + ...atewayCustomDomainProperties.PowerShell.cs | 146 + ...wayCustomDomainProperties.TypeConverter.cs | 147 + .../GatewayCustomDomainProperties.cs | 51 + .../GatewayCustomDomainProperties.json.cs | 108 + .../GatewayCustomDomainResource.PowerShell.cs | 234 + ...tewayCustomDomainResource.TypeConverter.cs | 147 + .../GatewayCustomDomainResource.cs | 131 + .../GatewayCustomDomainResource.json.cs | 110 + ...stomDomainResourceCollection.PowerShell.cs | 159 + ...mDomainResourceCollection.TypeConverter.cs | 150 + .../GatewayCustomDomainResourceCollection.cs | 80 + ...ewayCustomDomainResourceCollection.json.cs | 121 + .../GatewayEnvSecrets.PowerShell.cs | 142 + .../GatewayEnvSecrets.TypeConverter.cs | 147 + .../Api20221101Preview/GatewayEnvSecrets.cs | 35 + .../GatewayEnvSecrets.dictionary.cs | 75 + .../GatewayEnvSecrets.json.cs | 109 + .../GatewayInstance.PowerShell.cs | 152 + .../GatewayInstance.TypeConverter.cs | 147 + .../Api20221101Preview/GatewayInstance.cs | 74 + .../GatewayInstance.json.cs | 116 + .../GatewayOperatorProperties.PowerShell.cs | 178 + ...GatewayOperatorProperties.TypeConverter.cs | 147 + .../GatewayOperatorProperties.cs | 117 + .../GatewayOperatorProperties.json.cs | 124 + ...ewayOperatorResourceRequests.PowerShell.cs | 162 + ...yOperatorResourceRequests.TypeConverter.cs | 148 + .../GatewayOperatorResourceRequests.cs | 94 + .../GatewayOperatorResourceRequests.json.cs | 121 + .../GatewayProperties.PowerShell.cs | 426 + .../GatewayProperties.TypeConverter.cs | 147 + .../Api20221101Preview/GatewayProperties.cs | 616 + .../GatewayProperties.json.cs | 158 + ...opertiesEnvironmentVariables.PowerShell.cs | 157 + ...rtiesEnvironmentVariables.TypeConverter.cs | 150 + .../GatewayPropertiesEnvironmentVariables.cs | 68 + ...ewayPropertiesEnvironmentVariables.json.cs | 111 + ...vironmentVariablesProperties.PowerShell.cs | 145 + ...onmentVariablesProperties.TypeConverter.cs | 153 + ...ropertiesEnvironmentVariablesProperties.cs | 37 + ...vironmentVariablesProperties.dictionary.cs | 75 + ...tiesEnvironmentVariablesProperties.json.cs | 112 + ...sEnvironmentVariablesSecrets.PowerShell.cs | 145 + ...vironmentVariablesSecrets.TypeConverter.cs | 151 + ...ayPropertiesEnvironmentVariablesSecrets.cs | 37 + ...sEnvironmentVariablesSecrets.dictionary.cs | 75 + ...pertiesEnvironmentVariablesSecrets.json.cs | 112 + .../GatewayResource.PowerShell.cs | 544 + .../GatewayResource.TypeConverter.cs | 147 + .../Api20221101Preview/GatewayResource.cs | 693 + .../GatewayResource.json.cs | 112 + .../GatewayResourceCollection.PowerShell.cs | 156 + ...GatewayResourceCollection.TypeConverter.cs | 147 + .../GatewayResourceCollection.cs | 80 + .../GatewayResourceCollection.json.cs | 120 + .../GatewayResourceRequests.PowerShell.cs | 154 + .../GatewayResourceRequests.TypeConverter.cs | 147 + .../GatewayResourceRequests.cs | 68 + .../GatewayResourceRequests.json.cs | 110 + ...RouteConfigOpenApiProperties.PowerShell.cs | 148 + ...teConfigOpenApiProperties.TypeConverter.cs | 149 + .../GatewayRouteConfigOpenApiProperties.cs | 51 + ...atewayRouteConfigOpenApiProperties.json.cs | 109 + ...GatewayRouteConfigProperties.PowerShell.cs | 210 + ...ewayRouteConfigProperties.TypeConverter.cs | 147 + .../GatewayRouteConfigProperties.cs | 212 + .../GatewayRouteConfigProperties.json.cs | 149 + .../GatewayRouteConfigResource.PowerShell.cs | 298 + ...atewayRouteConfigResource.TypeConverter.cs | 147 + .../GatewayRouteConfigResource.cs | 267 + .../GatewayRouteConfigResource.json.cs | 110 + ...outeConfigResourceCollection.PowerShell.cs | 158 + ...eConfigResourceCollection.TypeConverter.cs | 150 + .../GatewayRouteConfigResourceCollection.cs | 80 + ...tewayRouteConfigResourceCollection.json.cs | 121 + .../GitPatternRepository.PowerShell.cs | 226 + .../GitPatternRepository.TypeConverter.cs | 147 + .../GitPatternRepository.cs | 221 + .../GitPatternRepository.json.cs | 144 + .../HttpGetAction.PowerShell.cs | 160 + .../HttpGetAction.TypeConverter.cs | 147 + .../Api20221101Preview/HttpGetAction.cs | 110 + .../Api20221101Preview/HttpGetAction.json.cs | 112 + .../ImageRegistryCredential.PowerShell.cs | 154 + .../ImageRegistryCredential.TypeConverter.cs | 147 + .../ImageRegistryCredential.cs | 68 + .../ImageRegistryCredential.json.cs | 110 + .../IngressConfig.PowerShell.cs | 144 + .../IngressConfig.TypeConverter.cs | 147 + .../Api20221101Preview/IngressConfig.cs | 51 + .../Api20221101Preview/IngressConfig.json.cs | 108 + .../IngressSettings.PowerShell.cs | 192 + .../IngressSettings.TypeConverter.cs | 147 + .../Api20221101Preview/IngressSettings.cs | 145 + .../IngressSettings.json.cs | 118 + .../IngressSettingsClientAuth.PowerShell.cs | 146 + ...IngressSettingsClientAuth.TypeConverter.cs | 147 + .../IngressSettingsClientAuth.cs | 51 + .../IngressSettingsClientAuth.json.cs | 116 + .../JarUploadedUserSourceInfo.PowerShell.cs | 178 + ...JarUploadedUserSourceInfo.TypeConverter.cs | 147 + .../JarUploadedUserSourceInfo.cs | 99 + .../JarUploadedUserSourceInfo.json.cs | 112 + ...eyVaultCertificateProperties.PowerShell.cs | 242 + ...aultCertificateProperties.TypeConverter.cs | 147 + .../KeyVaultCertificateProperties.cs | 181 + .../KeyVaultCertificateProperties.json.cs | 116 + .../LoadedCertificate.PowerShell.cs | 154 + .../LoadedCertificate.TypeConverter.cs | 147 + .../Api20221101Preview/LoadedCertificate.cs | 74 + .../LoadedCertificate.json.cs | 110 + .../LogFileUrlResponse.PowerShell.cs | 146 + .../LogFileUrlResponse.TypeConverter.cs | 147 + .../Api20221101Preview/LogFileUrlResponse.cs | 51 + .../LogFileUrlResponse.json.cs | 108 + .../LogSpecification.PowerShell.cs | 162 + .../LogSpecification.TypeConverter.cs | 147 + .../Api20221101Preview/LogSpecification.cs | 85 + .../LogSpecification.json.cs | 112 + .../ManagedIdentityProperties.PowerShell.cs | 170 + ...ManagedIdentityProperties.TypeConverter.cs | 147 + .../ManagedIdentityProperties.cs | 102 + .../ManagedIdentityProperties.json.cs | 114 + .../MarketplaceResource.PowerShell.cs | 162 + .../MarketplaceResource.TypeConverter.cs | 147 + .../Api20221101Preview/MarketplaceResource.cs | 85 + .../MarketplaceResource.json.cs | 112 + .../MetricDimension.PowerShell.cs | 160 + .../MetricDimension.TypeConverter.cs | 147 + .../Api20221101Preview/MetricDimension.cs | 85 + .../MetricDimension.json.cs | 112 + .../MetricSpecification.PowerShell.cs | 226 + .../MetricSpecification.TypeConverter.cs | 147 + .../Api20221101Preview/MetricSpecification.cs | 239 + .../MetricSpecification.json.cs | 152 + .../MonitoringSettingProperties.PowerShell.cs | 210 + ...nitoringSettingProperties.TypeConverter.cs | 147 + .../MonitoringSettingProperties.cs | 195 + .../MonitoringSettingProperties.json.cs | 121 + .../MonitoringSettingResource.PowerShell.cs | 298 + ...MonitoringSettingResource.TypeConverter.cs | 147 + .../MonitoringSettingResource.cs | 252 + .../MonitoringSettingResource.json.cs | 110 + .../NameAvailability.PowerShell.cs | 162 + .../NameAvailability.TypeConverter.cs | 147 + .../Api20221101Preview/NameAvailability.cs | 85 + .../NameAvailability.json.cs | 112 + .../NameAvailabilityParameters.PowerShell.cs | 154 + ...ameAvailabilityParameters.TypeConverter.cs | 147 + .../NameAvailabilityParameters.cs | 68 + .../NameAvailabilityParameters.json.cs | 110 + ...oreZipUploadedUserSourceInfo.PowerShell.cs | 178 + ...ZipUploadedUserSourceInfo.TypeConverter.cs | 148 + .../NetCoreZipUploadedUserSourceInfo.cs | 99 + .../NetCoreZipUploadedUserSourceInfo.json.cs | 112 + .../NetworkProfile.PowerShell.cs | 224 + .../NetworkProfile.TypeConverter.cs | 147 + .../Api20221101Preview/NetworkProfile.cs | 235 + .../Api20221101Preview/NetworkProfile.json.cs | 138 + .../NetworkProfileOutboundIPs.PowerShell.cs | 146 + ...NetworkProfileOutboundIPs.TypeConverter.cs | 147 + .../NetworkProfileOutboundIPs.cs | 54 + .../NetworkProfileOutboundIPs.json.cs | 119 + .../OperationDetail.PowerShell.cs | 240 + .../OperationDetail.TypeConverter.cs | 147 + .../Api20221101Preview/OperationDetail.cs | 224 + .../OperationDetail.json.cs | 121 + .../OperationDisplay.PowerShell.cs | 170 + .../OperationDisplay.TypeConverter.cs | 147 + .../Api20221101Preview/OperationDisplay.cs | 102 + .../OperationDisplay.json.cs | 114 + .../OperationProperties.PowerShell.cs | 162 + .../OperationProperties.TypeConverter.cs | 147 + .../Api20221101Preview/OperationProperties.cs | 74 + .../OperationProperties.json.cs | 108 + .../PersistentDisk.PowerShell.cs | 160 + .../PersistentDisk.TypeConverter.cs | 147 + .../Api20221101Preview/PersistentDisk.cs | 88 + .../Api20221101Preview/PersistentDisk.json.cs | 115 + ...definedAcceleratorProperties.PowerShell.cs | 186 + ...inedAcceleratorProperties.TypeConverter.cs | 148 + .../PredefinedAcceleratorProperties.cs | 145 + .../PredefinedAcceleratorProperties.json.cs | 141 + ...redefinedAcceleratorResource.PowerShell.cs | 306 + ...efinedAcceleratorResource.TypeConverter.cs | 147 + .../PredefinedAcceleratorResource.cs | 264 + .../PredefinedAcceleratorResource.json.cs | 112 + ...cceleratorResourceCollection.PowerShell.cs | 155 + ...leratorResourceCollection.TypeConverter.cs | 151 + ...PredefinedAcceleratorResourceCollection.cs | 61 + ...finedAcceleratorResourceCollection.json.cs | 119 + .../Api20221101Preview/Probe.PowerShell.cs | 204 + .../Api20221101Preview/Probe.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Probe.cs | 188 + .../Models/Api20221101Preview/Probe.json.cs | 123 + .../ProbeAction.PowerShell.cs | 144 + .../ProbeAction.TypeConverter.cs | 147 + .../Models/Api20221101Preview/ProbeAction.cs | 51 + .../Api20221101Preview/ProbeAction.json.cs | 131 + .../ProxyResource.PowerShell.cs | 218 + .../ProxyResource.TypeConverter.cs | 147 + .../Api20221101Preview/ProxyResource.cs | 107 + .../Api20221101Preview/ProxyResource.json.cs | 110 + ...enerateTestKeyRequestPayload.PowerShell.cs | 146 + ...rateTestKeyRequestPayload.TypeConverter.cs | 148 + .../RegenerateTestKeyRequestPayload.cs | 51 + .../RegenerateTestKeyRequestPayload.json.cs | 108 + .../RemoteDebugging.PowerShell.cs | 152 + .../RemoteDebugging.TypeConverter.cs | 147 + .../Api20221101Preview/RemoteDebugging.cs | 68 + .../RemoteDebugging.json.cs | 110 + .../RemoteDebuggingPayload.PowerShell.cs | 146 + .../RemoteDebuggingPayload.TypeConverter.cs | 147 + .../RemoteDebuggingPayload.cs | 51 + .../RemoteDebuggingPayload.json.cs | 108 + .../RequiredTraffic.PowerShell.cs | 176 + .../RequiredTraffic.TypeConverter.cs | 147 + .../Api20221101Preview/RequiredTraffic.cs | 134 + .../RequiredTraffic.json.cs | 147 + .../Api20221101Preview/Resource.PowerShell.cs | 216 + .../Resource.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Resource.cs | 190 + .../Api20221101Preview/Resource.json.cs | 126 + .../ResourceRequests.PowerShell.cs | 154 + .../ResourceRequests.TypeConverter.cs | 147 + .../Api20221101Preview/ResourceRequests.cs | 86 + .../ResourceRequests.json.cs | 110 + .../ResourceSku.PowerShell.cs | 224 + .../ResourceSku.TypeConverter.cs | 147 + .../Models/Api20221101Preview/ResourceSku.cs | 220 + .../Api20221101Preview/ResourceSku.json.cs | 144 + .../ResourceSkuCapabilities.PowerShell.cs | 152 + .../ResourceSkuCapabilities.TypeConverter.cs | 147 + .../ResourceSkuCapabilities.cs | 65 + .../ResourceSkuCapabilities.json.cs | 109 + .../ResourceSkuCollection.PowerShell.cs | 156 + .../ResourceSkuCollection.TypeConverter.cs | 147 + .../ResourceSkuCollection.cs | 80 + .../ResourceSkuCollection.json.cs | 120 + .../ResourceSkuLocationInfo.PowerShell.cs | 162 + .../ResourceSkuLocationInfo.TypeConverter.cs | 147 + .../ResourceSkuLocationInfo.cs | 85 + .../ResourceSkuLocationInfo.json.cs | 128 + .../ResourceSkuRestrictionInfo.PowerShell.cs | 154 + ...esourceSkuRestrictionInfo.TypeConverter.cs | 147 + .../ResourceSkuRestrictionInfo.cs | 68 + .../ResourceSkuRestrictionInfo.json.cs | 126 + .../ResourceSkuRestrictions.PowerShell.cs | 186 + .../ResourceSkuRestrictions.TypeConverter.cs | 147 + .../ResourceSkuRestrictions.cs | 141 + .../ResourceSkuRestrictions.json.cs | 122 + .../ResourceSkuZoneDetails.PowerShell.cs | 154 + .../ResourceSkuZoneDetails.TypeConverter.cs | 147 + .../ResourceSkuZoneDetails.cs | 88 + .../ResourceSkuZoneDetails.json.cs | 126 + .../ResourceUploadDefinition.PowerShell.cs | 154 + .../ResourceUploadDefinition.TypeConverter.cs | 147 + .../ResourceUploadDefinition.cs | 68 + .../ResourceUploadDefinition.json.cs | 110 + .../ServiceRegistryInstance.PowerShell.cs | 154 + .../ServiceRegistryInstance.TypeConverter.cs | 147 + .../ServiceRegistryInstance.cs | 74 + .../ServiceRegistryInstance.json.cs | 116 + .../ServiceRegistryProperties.PowerShell.cs | 186 + ...ServiceRegistryProperties.TypeConverter.cs | 147 + .../ServiceRegistryProperties.cs | 137 + .../ServiceRegistryProperties.json.cs | 129 + .../ServiceRegistryResource.PowerShell.cs | 274 + .../ServiceRegistryResource.TypeConverter.cs | 147 + .../ServiceRegistryResource.cs | 207 + .../ServiceRegistryResource.json.cs | 110 + ...ceRegistryResourceCollection.PowerShell.cs | 158 + ...egistryResourceCollection.TypeConverter.cs | 148 + .../ServiceRegistryResourceCollection.cs | 80 + .../ServiceRegistryResourceCollection.json.cs | 120 + ...viceRegistryResourceRequests.PowerShell.cs | 162 + ...eRegistryResourceRequests.TypeConverter.cs | 148 + .../ServiceRegistryResourceRequests.cs | 94 + .../ServiceRegistryResourceRequests.json.cs | 121 + .../ServiceResource.PowerShell.cs | 464 + .../ServiceResource.TypeConverter.cs | 147 + .../Api20221101Preview/ServiceResource.cs | 522 + .../ServiceResource.json.cs | 112 + .../ServiceResourceList.PowerShell.cs | 156 + .../ServiceResourceList.TypeConverter.cs | 147 + .../Api20221101Preview/ServiceResourceList.cs | 80 + .../ServiceResourceList.json.cs | 120 + .../ServiceSpecification.PowerShell.cs | 154 + .../ServiceSpecification.TypeConverter.cs | 147 + .../ServiceSpecification.cs | 68 + .../ServiceSpecification.json.cs | 126 + .../ServiceVNetAddons.PowerShell.cs | 146 + .../ServiceVNetAddons.TypeConverter.cs | 147 + .../Api20221101Preview/ServiceVNetAddons.cs | 57 + .../ServiceVNetAddons.json.cs | 108 + .../Api20221101Preview/Sku.PowerShell.cs | 160 + .../Api20221101Preview/Sku.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/Sku.cs | 85 + .../api/Models/Api20221101Preview/Sku.json.cs | 112 + .../SkuCapacity.PowerShell.cs | 168 + .../SkuCapacity.TypeConverter.cs | 147 + .../Models/Api20221101Preview/SkuCapacity.cs | 102 + .../Api20221101Preview/SkuCapacity.json.cs | 114 + ...SourceUploadedUserSourceInfo.PowerShell.cs | 178 + ...rceUploadedUserSourceInfo.TypeConverter.cs | 147 + .../SourceUploadedUserSourceInfo.cs | 109 + .../SourceUploadedUserSourceInfo.json.cs | 112 + .../SsoProperties.PowerShell.cs | 168 + .../SsoProperties.TypeConverter.cs | 147 + .../Api20221101Preview/SsoProperties.cs | 108 + .../Api20221101Preview/SsoProperties.json.cs | 122 + .../StackProperties.PowerShell.cs | 152 + .../StackProperties.TypeConverter.cs | 147 + .../Api20221101Preview/StackProperties.cs | 68 + .../StackProperties.json.cs | 110 + .../StorageAccount.PowerShell.cs | 160 + .../StorageAccount.TypeConverter.cs | 147 + .../Api20221101Preview/StorageAccount.cs | 94 + .../Api20221101Preview/StorageAccount.json.cs | 112 + .../StorageProperties.PowerShell.cs | 146 + .../StorageProperties.TypeConverter.cs | 147 + .../Api20221101Preview/StorageProperties.cs | 54 + .../StorageProperties.json.cs | 123 + .../StorageResource.PowerShell.cs | 232 + .../StorageResource.TypeConverter.cs | 147 + .../Api20221101Preview/StorageResource.cs | 134 + .../StorageResource.json.cs | 110 + .../StorageResourceCollection.PowerShell.cs | 154 + ...StorageResourceCollection.TypeConverter.cs | 147 + .../StorageResourceCollection.cs | 68 + .../StorageResourceCollection.json.cs | 118 + .../SupportedBuildpackResource.PowerShell.cs | 234 + ...upportedBuildpackResource.TypeConverter.cs | 147 + .../SupportedBuildpackResource.cs | 131 + .../SupportedBuildpackResource.json.cs | 110 + ...dBuildpackResourceProperties.PowerShell.cs | 148 + ...ildpackResourceProperties.TypeConverter.cs | 150 + .../SupportedBuildpackResourceProperties.cs | 51 + ...pportedBuildpackResourceProperties.json.cs | 109 + ...upportedBuildpacksCollection.PowerShell.cs | 156 + ...ortedBuildpacksCollection.TypeConverter.cs | 147 + .../SupportedBuildpacksCollection.cs | 80 + .../SupportedBuildpacksCollection.json.cs | 120 + .../SupportedRuntimeVersion.PowerShell.cs | 162 + .../SupportedRuntimeVersion.TypeConverter.cs | 147 + .../SupportedRuntimeVersion.cs | 85 + .../SupportedRuntimeVersion.json.cs | 112 + .../SupportedStackResource.PowerShell.cs | 242 + .../SupportedStackResource.TypeConverter.cs | 147 + .../SupportedStackResource.cs | 145 + .../SupportedStackResource.json.cs | 110 + ...ortedStackResourceProperties.PowerShell.cs | 154 + ...edStackResourceProperties.TypeConverter.cs | 148 + .../SupportedStackResourceProperties.cs | 68 + .../SupportedStackResourceProperties.json.cs | 110 + .../SupportedStacksCollection.PowerShell.cs | 156 + ...SupportedStacksCollection.TypeConverter.cs | 147 + .../SupportedStacksCollection.cs | 80 + .../SupportedStacksCollection.json.cs | 120 + .../SystemData.PowerShell.cs | 184 + .../SystemData.TypeConverter.cs | 146 + .../Models/Api20221101Preview/SystemData.cs | 136 + .../Api20221101Preview/SystemData.json.cs | 118 + .../TcpSocketAction.PowerShell.cs | 144 + .../TcpSocketAction.TypeConverter.cs | 147 + .../Api20221101Preview/TcpSocketAction.cs | 57 + .../TcpSocketAction.json.cs | 108 + .../TemporaryDisk.PowerShell.cs | 152 + .../TemporaryDisk.TypeConverter.cs | 147 + .../Api20221101Preview/TemporaryDisk.cs | 68 + .../Api20221101Preview/TemporaryDisk.json.cs | 110 + .../Api20221101Preview/TestKeys.PowerShell.cs | 176 + .../TestKeys.TypeConverter.cs | 146 + .../api/Models/Api20221101Preview/TestKeys.cs | 119 + .../Api20221101Preview/TestKeys.json.cs | 116 + .../TrackedResource.PowerShell.cs | 232 + .../TrackedResource.TypeConverter.cs | 147 + .../Api20221101Preview/TrackedResource.cs | 145 + .../TrackedResource.json.cs | 112 + .../TrackedResourceTags.PowerShell.cs | 144 + .../TrackedResourceTags.TypeConverter.cs | 147 + .../Api20221101Preview/TrackedResourceTags.cs | 37 + .../TrackedResourceTags.dictionary.cs | 75 + .../TrackedResourceTags.json.cs | 111 + .../TriggeredBuildResult.PowerShell.cs | 146 + .../TriggeredBuildResult.TypeConverter.cs | 147 + .../TriggeredBuildResult.cs | 51 + .../TriggeredBuildResult.json.cs | 108 + .../UploadedUserSourceInfo.PowerShell.cs | 162 + .../UploadedUserSourceInfo.TypeConverter.cs | 147 + .../UploadedUserSourceInfo.cs | 78 + .../UploadedUserSourceInfo.json.cs | 133 + ...serAssignedManagedIdentities.PowerShell.cs | 144 + ...AssignedManagedIdentities.TypeConverter.cs | 147 + .../UserAssignedManagedIdentities.cs | 37 + ...serAssignedManagedIdentities.dictionary.cs | 75 + .../UserAssignedManagedIdentities.json.cs | 111 + .../UserAssignedManagedIdentity.PowerShell.cs | 154 + ...erAssignedManagedIdentity.TypeConverter.cs | 147 + .../UserAssignedManagedIdentity.cs | 74 + .../UserAssignedManagedIdentity.json.cs | 116 + .../UserSourceInfo.PowerShell.cs | 152 + .../UserSourceInfo.TypeConverter.cs | 147 + .../Api20221101Preview/UserSourceInfo.cs | 68 + .../Api20221101Preview/UserSourceInfo.json.cs | 145 + .../ValidationMessages.PowerShell.cs | 154 + .../ValidationMessages.TypeConverter.cs | 147 + .../Api20221101Preview/ValidationMessages.cs | 68 + .../ValidationMessages.json.cs | 118 + .../Models/AppPlatformIdentity.PowerShell.cs | 366 + .../AppPlatformIdentity.TypeConverter.cs | 157 + .../api/Models/AppPlatformIdentity.cs | 542 + .../api/Models/AppPlatformIdentity.json.cs | 163 + .../api/Support/ActionType.Completer.cs | 37 + .../api/Support/ActionType.TypeConverter.cs | 61 + .../generated/api/Support/ActionType.cs | 98 + .../ApiPortalProvisioningState.Completer.cs | 51 + ...piPortalProvisioningState.TypeConverter.cs | 59 + .../api/Support/ApiPortalProvisioningState.cs | 106 + .../api/Support/ApmType.Completer.cs | 51 + .../api/Support/ApmType.TypeConverter.cs | 59 + .../generated/api/Support/ApmType.cs | 104 + .../AppResourceProvisioningState.Completer.cs | 51 + ...ResourceProvisioningState.TypeConverter.cs | 59 + .../Support/AppResourceProvisioningState.cs | 108 + ...nAcceleratorProvisioningState.Completer.cs | 51 + ...eleratorProvisioningState.TypeConverter.cs | 59 + ...ApplicationAcceleratorProvisioningState.cs | 110 + ...tionLiveViewProvisioningState.Completer.cs | 55 + ...LiveViewProvisioningState.TypeConverter.cs | 59 + .../ApplicationLiveViewProvisioningState.cs | 112 + .../api/Support/BackendProtocol.Completer.cs | 39 + .../Support/BackendProtocol.TypeConverter.cs | 59 + .../generated/api/Support/BackendProtocol.cs | 98 + .../api/Support/BindingType.Completer.cs | 59 + .../api/Support/BindingType.TypeConverter.cs | 59 + .../generated/api/Support/BindingType.cs | 108 + .../BuildProvisioningState.Completer.cs | 51 + .../BuildProvisioningState.TypeConverter.cs | 59 + .../api/Support/BuildProvisioningState.cs | 104 + .../BuildResultProvisioningState.Completer.cs | 51 + ...ldResultProvisioningState.TypeConverter.cs | 59 + .../Support/BuildResultProvisioningState.cs | 108 + ...BuildServiceProvisioningState.Completer.cs | 51 + ...dServiceProvisioningState.TypeConverter.cs | 59 + .../Support/BuildServiceProvisioningState.cs | 110 + .../BuilderProvisioningState.Completer.cs | 51 + .../BuilderProvisioningState.TypeConverter.cs | 59 + .../api/Support/BuilderProvisioningState.cs | 104 + ...dpackBindingProvisioningState.Completer.cs | 51 + ...kBindingProvisioningState.TypeConverter.cs | 59 + .../BuildpackBindingProvisioningState.cs | 110 + ...cateResourceProvisioningState.Completer.cs | 51 + ...ResourceProvisioningState.TypeConverter.cs | 59 + .../CertificateResourceProvisioningState.cs | 110 + .../Support/ConfigServerState.Completer.cs | 51 + .../ConfigServerState.TypeConverter.cs | 59 + .../api/Support/ConfigServerState.cs | 104 + ...ationServiceProvisioningState.Completer.cs | 51 + ...nServiceProvisioningState.TypeConverter.cs | 59 + .../ConfigurationServiceProvisioningState.cs | 110 + .../api/Support/CreatedByType.Completer.cs | 47 + .../Support/CreatedByType.TypeConverter.cs | 59 + .../generated/api/Support/CreatedByType.cs | 102 + ...mainResourceProvisioningState.Completer.cs | 51 + ...ResourceProvisioningState.TypeConverter.cs | 59 + .../CustomDomainResourceProvisioningState.cs | 110 + ...dAcceleratorProvisioningState.Completer.cs | 51 + ...eleratorProvisioningState.TypeConverter.cs | 59 + .../CustomizedAcceleratorProvisioningState.cs | 110 + ...cceleratorValidateResultState.Completer.cs | 39 + ...eratorValidateResultState.TypeConverter.cs | 59 + ...ustomizedAcceleratorValidateResultState.cs | 106 + ...mentResourceProvisioningState.Completer.cs | 47 + ...ResourceProvisioningState.TypeConverter.cs | 59 + .../DeploymentResourceProvisioningState.cs | 108 + .../DeploymentResourceStatus.Completer.cs | 39 + .../DeploymentResourceStatus.TypeConverter.cs | 59 + .../api/Support/DeploymentResourceStatus.cs | 98 + .../DevToolPortalFeatureState.Completer.cs | 39 + ...DevToolPortalFeatureState.TypeConverter.cs | 59 + .../api/Support/DevToolPortalFeatureState.cs | 100 + ...evToolPortalProvisioningState.Completer.cs | 55 + ...olPortalProvisioningState.TypeConverter.cs | 59 + .../Support/DevToolPortalProvisioningState.cs | 112 + .../GatewayProvisioningState.Completer.cs | 51 + .../GatewayProvisioningState.TypeConverter.cs | 59 + .../api/Support/GatewayProvisioningState.cs | 104 + .../GatewayRouteConfigProtocol.Completer.cs | 39 + ...atewayRouteConfigProtocol.TypeConverter.cs | 59 + .../api/Support/GatewayRouteConfigProtocol.cs | 100 + .../api/Support/HttpSchemeType.Completer.cs | 44 + .../Support/HttpSchemeType.TypeConverter.cs | 64 + .../generated/api/Support/HttpSchemeType.cs | 103 + ...ckBuildStageProvisioningState.Completer.cs | 47 + ...ildStageProvisioningState.TypeConverter.cs | 59 + .../KPackBuildStageProvisioningState.cs | 108 + .../Support/LastModifiedByType.Completer.cs | 47 + .../LastModifiedByType.TypeConverter.cs | 59 + .../api/Support/LastModifiedByType.cs | 102 + .../Support/ManagedIdentityType.Completer.cs | 47 + .../ManagedIdentityType.TypeConverter.cs | 59 + .../api/Support/ManagedIdentityType.cs | 102 + .../MonitoringSettingState.Completer.cs | 47 + .../MonitoringSettingState.TypeConverter.cs | 59 + .../api/Support/MonitoringSettingState.cs | 102 + .../api/Support/PowerState.Completer.cs | 39 + .../api/Support/PowerState.TypeConverter.cs | 59 + .../generated/api/Support/PowerState.cs | 98 + ...dAcceleratorProvisioningState.Completer.cs | 47 + ...eleratorProvisioningState.TypeConverter.cs | 59 + .../PredefinedAcceleratorProvisioningState.cs | 108 + .../PredefinedAcceleratorState.Completer.cs | 39 + ...redefinedAcceleratorState.TypeConverter.cs | 59 + .../api/Support/PredefinedAcceleratorState.cs | 102 + .../api/Support/ProbeActionType.Completer.cs | 43 + .../Support/ProbeActionType.TypeConverter.cs | 59 + .../generated/api/Support/ProbeActionType.cs | 100 + .../Support/ProvisioningState.Completer.cs | 75 + .../ProvisioningState.TypeConverter.cs | 59 + .../api/Support/ProvisioningState.cs | 116 + ...urceSkuRestrictionsReasonCode.Completer.cs | 41 + ...SkuRestrictionsReasonCode.TypeConverter.cs | 61 + .../ResourceSkuRestrictionsReasonCode.cs | 106 + .../ResourceSkuRestrictionsType.Completer.cs | 39 + ...sourceSkuRestrictionsType.TypeConverter.cs | 59 + .../Support/ResourceSkuRestrictionsType.cs | 102 + ...viceRegistryProvisioningState.Completer.cs | 51 + ...RegistryProvisioningState.TypeConverter.cs | 59 + .../ServiceRegistryProvisioningState.cs | 110 + .../api/Support/SessionAffinity.Completer.cs | 39 + .../Support/SessionAffinity.TypeConverter.cs | 59 + .../generated/api/Support/SessionAffinity.cs | 98 + .../api/Support/SkuScaleType.Completer.cs | 43 + .../api/Support/SkuScaleType.TypeConverter.cs | 59 + .../generated/api/Support/SkuScaleType.cs | 100 + .../SupportedRuntimePlatform.Completer.cs | 39 + .../SupportedRuntimePlatform.TypeConverter.cs | 59 + .../api/Support/SupportedRuntimePlatform.cs | 98 + .../SupportedRuntimeValue.Completer.cs | 47 + .../SupportedRuntimeValue.TypeConverter.cs | 59 + .../api/Support/SupportedRuntimeValue.cs | 102 + .../api/Support/TestKeyType.Completer.cs | 39 + .../api/Support/TestKeyType.TypeConverter.cs | 59 + .../generated/api/Support/TestKeyType.cs | 98 + .../api/Support/TrafficDirection.Completer.cs | 39 + .../Support/TrafficDirection.TypeConverter.cs | 59 + .../generated/api/Support/TrafficDirection.cs | 98 + ...atformDeploymentRemoteDebugging_Disable.cs | 505 + ...ymentRemoteDebugging_DisableViaIdentity.cs | 459 + ...ppPlatformPredefinedAccelerator_Disable.cs | 511 + ...redefinedAccelerator_DisableViaIdentity.cs | 463 + ...zAppPlatformServiceTestEndpoint_Disable.cs | 414 + ...mServiceTestEndpoint_DisableViaIdentity.cs | 390 + ...latformDeploymentRemoteDebugging_Enable.cs | 519 + ...eploymentRemoteDebugging_EnableExpanded.cs | 522 + ...oymentRemoteDebugging_EnableViaIdentity.cs | 473 + ...moteDebugging_EnableViaIdentityExpanded.cs | 474 + ...AppPlatformPredefinedAccelerator_Enable.cs | 511 + ...PredefinedAccelerator_EnableViaIdentity.cs | 463 + ...AzAppPlatformServiceTestEndpoint_Enable.cs | 409 + ...rmServiceTestEndpoint_EnableViaIdentity.cs | 385 + ...tAzAppPlatformApiPortalCustomDomain_Get.cs | 437 + ...ormApiPortalCustomDomain_GetViaIdentity.cs | 390 + ...AzAppPlatformApiPortalCustomDomain_List.cs | 445 + .../cmdlets/GetAzAppPlatformApiPortal_Get.cs | 424 + ...etAzAppPlatformApiPortal_GetViaIdentity.cs | 386 + .../cmdlets/GetAzAppPlatformApiPortal_List.cs | 431 + ...etAzAppPlatformAppResourceUploadUrl_Get.cs | 428 + ...formAppResourceUploadUrl_GetViaIdentity.cs | 391 + .../cmdlets/GetAzAppPlatformApp_Get.cs | 438 + .../GetAzAppPlatformApp_GetViaIdentity.cs | 400 + .../cmdlets/GetAzAppPlatformApp_List.cs | 431 + ...AzAppPlatformApplicationAccelerator_Get.cs | 424 + ...rmApplicationAccelerator_GetViaIdentity.cs | 386 + ...zAppPlatformApplicationAccelerator_List.cs | 431 + ...GetAzAppPlatformApplicationLiveView_Get.cs | 424 + ...tformApplicationLiveView_GetViaIdentity.cs | 386 + ...etAzAppPlatformApplicationLiveView_List.cs | 431 + .../cmdlets/GetAzAppPlatformBinding_Get.cs | 438 + .../GetAzAppPlatformBinding_GetViaIdentity.cs | 390 + .../cmdlets/GetAzAppPlatformBinding_List.cs | 445 + ...tAzAppPlatformBuildServiceAgentPool_Get.cs | 437 + ...ormBuildServiceAgentPool_GetViaIdentity.cs | 390 + ...AzAppPlatformBuildServiceAgentPool_List.cs | 445 + ...pPlatformBuildServiceBuildResultLog_Get.cs | 454 + ...ildServiceBuildResultLog_GetViaIdentity.cs | 397 + ...zAppPlatformBuildServiceBuildResult_Get.cs | 451 + ...mBuildServiceBuildResult_GetViaIdentity.cs | 394 + ...AppPlatformBuildServiceBuildResult_List.cs | 459 + .../GetAzAppPlatformBuildServiceBuild_Get.cs | 437 + ...latformBuildServiceBuild_GetViaIdentity.cs | 390 + .../GetAzAppPlatformBuildServiceBuild_List.cs | 445 + ...tformBuildServiceBuilderDeployment_List.cs | 441 + ...GetAzAppPlatformBuildServiceBuilder_Get.cs | 437 + ...tformBuildServiceBuilder_GetViaIdentity.cs | 390 + ...etAzAppPlatformBuildServiceBuilder_List.cs | 445 + ...atformBuildServiceResourceUploadUrl_Get.cs | 428 + ...ServiceResourceUploadUrl_GetViaIdentity.cs | 391 + ...tformBuildServiceSupportedBuildpack_Get.cs | 437 + ...erviceSupportedBuildpack_GetViaIdentity.cs | 390 + ...formBuildServiceSupportedBuildpack_List.cs | 445 + ...pPlatformBuildServiceSupportedStack_Get.cs | 437 + ...ildServiceSupportedStack_GetViaIdentity.cs | 390 + ...PlatformBuildServiceSupportedStack_List.cs | 445 + .../GetAzAppPlatformBuildService_Get.cs | 424 + ...zAppPlatformBuildService_GetViaIdentity.cs | 386 + .../GetAzAppPlatformBuildService_List.cs | 431 + .../GetAzAppPlatformBuildpackBinding_Get.cs | 452 + ...PlatformBuildpackBinding_GetViaIdentity.cs | 394 + .../GetAzAppPlatformBuildpackBinding_List.cs | 459 + .../GetAzAppPlatformCertificate_Get.cs | 424 + ...AzAppPlatformCertificate_GetViaIdentity.cs | 386 + .../GetAzAppPlatformCertificate_List.cs | 431 + .../GetAzAppPlatformConfigServer_Get.cs | 409 + ...zAppPlatformConfigServer_GetViaIdentity.cs | 382 + ...etAzAppPlatformConfigurationService_Get.cs | 424 + ...formConfigurationService_GetViaIdentity.cs | 386 + ...tAzAppPlatformConfigurationService_List.cs | 431 + .../GetAzAppPlatformCustomDomain_Get.cs | 437 + ...zAppPlatformCustomDomain_GetViaIdentity.cs | 390 + .../GetAzAppPlatformCustomDomain_List.cs | 445 + ...tAzAppPlatformCustomizedAccelerator_Get.cs | 438 + ...ormCustomizedAccelerator_GetViaIdentity.cs | 390 + ...AzAppPlatformCustomizedAccelerator_List.cs | 445 + ...etAzAppPlatformDeploymentLogFileUrl_Get.cs | 481 + ...formDeploymentLogFileUrl_GetViaIdentity.cs | 434 + ...formDeploymentRemoteDebuggingConfig_Get.cs | 440 + ...entRemoteDebuggingConfig_GetViaIdentity.cs | 394 + .../cmdlets/GetAzAppPlatformDeployment_Get.cs | 438 + ...tAzAppPlatformDeployment_GetViaIdentity.cs | 390 + .../GetAzAppPlatformDeployment_List.cs | 460 + .../GetAzAppPlatformDeployment_List1.cs | 446 + .../GetAzAppPlatformDevToolPortal_Get.cs | 424 + ...AppPlatformDevToolPortal_GetViaIdentity.cs | 386 + .../GetAzAppPlatformDevToolPortal_List.cs | 431 + ...GetAzAppPlatformGatewayCustomDomain_Get.cs | 437 + ...tformGatewayCustomDomain_GetViaIdentity.cs | 390 + ...etAzAppPlatformGatewayCustomDomain_List.cs | 445 + .../GetAzAppPlatformGatewayEnvSecret_List.cs | 426 + .../GetAzAppPlatformGatewayRouteConfig_Get.cs | 437 + ...atformGatewayRouteConfig_GetViaIdentity.cs | 390 + ...GetAzAppPlatformGatewayRouteConfig_List.cs | 445 + .../cmdlets/GetAzAppPlatformGateway_Get.cs | 424 + .../GetAzAppPlatformGateway_GetViaIdentity.cs | 386 + .../cmdlets/GetAzAppPlatformGateway_List.cs | 431 + .../GetAzAppPlatformMonitoringSetting_Get.cs | 409 + ...latformMonitoringSetting_GetViaIdentity.cs | 382 + .../cmdlets/GetAzAppPlatformOperation_List.cs | 379 + ...tAzAppPlatformPredefinedAccelerator_Get.cs | 438 + ...ormPredefinedAccelerator_GetViaIdentity.cs | 390 + ...AzAppPlatformPredefinedAccelerator_List.cs | 445 + .../GetAzAppPlatformRuntimeVersion_List.cs | 357 + .../GetAzAppPlatformServiceRegistry_Get.cs | 424 + ...pPlatformServiceRegistry_GetViaIdentity.cs | 386 + .../GetAzAppPlatformServiceRegistry_List.cs | 431 + .../GetAzAppPlatformServiceTestKey_List.cs | 412 + .../cmdlets/GetAzAppPlatformService_Get.cs | 410 + .../GetAzAppPlatformService_GetViaIdentity.cs | 382 + .../cmdlets/GetAzAppPlatformService_List.cs | 400 + .../cmdlets/GetAzAppPlatformService_List1.cs | 417 + .../cmdlets/GetAzAppPlatformSku_List.cs | 400 + .../cmdlets/GetAzAppPlatformStorage_Get.cs | 424 + .../GetAzAppPlatformStorage_GetViaIdentity.cs | 386 + .../cmdlets/GetAzAppPlatformStorage_List.cs | 431 + ...ormApiPortalCustomDomain_CreateExpanded.cs | 520 + ...ewAzAppPlatformApiPortal_CreateExpanded.cs | 621 + .../NewAzAppPlatformApp_CreateExpanded.cs | 747 + ...rmApplicationAccelerator_CreateExpanded.cs | 528 + ...tformApplicationLiveView_CreateExpanded.cs | 497 + .../NewAzAppPlatformBinding_CreateExpanded.cs | 544 + ...latformBuildServiceBuild_CreateExpanded.cs | 549 + ...tformBuildServiceBuilder_CreateExpanded.cs | 543 + ...PlatformBuildpackBinding_CreateExpanded.cs | 561 + ...AzAppPlatformCertificate_CreateExpanded.cs | 506 + ...formConfigurationService_CreateExpanded.cs | 509 + ...zAppPlatformCustomDomain_CreateExpanded.cs | 531 + ...ormCustomizedAccelerator_CreateExpanded.cs | 654 + ...zAppPlatformDeploymentHeapDump_Generate.cs | 524 + ...formDeploymentHeapDump_GenerateExpanded.cs | 547 + ...mDeploymentHeapDump_GenerateViaIdentity.cs | 475 + ...entHeapDump_GenerateViaIdentityExpanded.cs | 501 + ...ppPlatformDeploymentThreadDump_Generate.cs | 524 + ...rmDeploymentThreadDump_GenerateExpanded.cs | 547 + ...eploymentThreadDump_GenerateViaIdentity.cs | 477 + ...tThreadDump_GenerateViaIdentityExpanded.cs | 501 + ...wAzAppPlatformDeployment_CreateExpanded.cs | 587 + ...AppPlatformDevToolPortal_CreateExpanded.cs | 577 + ...tformGatewayCustomDomain_CreateExpanded.cs | 520 + ...atformGatewayRouteConfig_CreateExpanded.cs | 602 + .../NewAzAppPlatformGateway_CreateExpanded.cs | 801 + ...wAzAppPlatformServiceTestKey_Regenerate.cs | 422 + ...atformServiceTestKey_RegenerateExpanded.cs | 424 + ...ormServiceTestKey_RegenerateViaIdentity.cs | 398 + ...ceTestKey_RegenerateViaIdentityExpanded.cs | 400 + .../NewAzAppPlatformService_CreateExpanded.cs | 680 + .../NewAzAppPlatformStorage_CreateExpanded.cs | 495 + ...AppPlatformApiPortalCustomDomain_Delete.cs | 544 + ...ApiPortalCustomDomain_DeleteViaIdentity.cs | 497 + .../RemoveAzAppPlatformApiPortal_Delete.cs | 530 + ...zAppPlatformApiPortal_DeleteViaIdentity.cs | 491 + .../cmdlets/RemoveAzAppPlatformApp_Delete.cs | 530 + ...emoveAzAppPlatformApp_DeleteViaIdentity.cs | 491 + ...ppPlatformApplicationAccelerator_Delete.cs | 530 + ...pplicationAccelerator_DeleteViaIdentity.cs | 493 + ...AzAppPlatformApplicationLiveView_Delete.cs | 530 + ...rmApplicationLiveView_DeleteViaIdentity.cs | 493 + .../RemoveAzAppPlatformBinding_Delete.cs | 545 + ...eAzAppPlatformBinding_DeleteViaIdentity.cs | 495 + ...AzAppPlatformBuildServiceBuilder_Delete.cs | 544 + ...rmBuildServiceBuilder_DeleteViaIdentity.cs | 497 + ...oveAzAppPlatformBuildpackBinding_Delete.cs | 560 + ...tformBuildpackBinding_DeleteViaIdentity.cs | 499 + .../RemoveAzAppPlatformCertificate_Delete.cs | 530 + ...ppPlatformCertificate_DeleteViaIdentity.cs | 491 + ...zAppPlatformConfigurationService_Delete.cs | 530 + ...mConfigurationService_DeleteViaIdentity.cs | 493 + .../RemoveAzAppPlatformCustomDomain_Delete.cs | 544 + ...pPlatformCustomDomain_DeleteViaIdentity.cs | 495 + ...AppPlatformCustomizedAccelerator_Delete.cs | 545 + ...CustomizedAccelerator_DeleteViaIdentity.cs | 497 + .../RemoveAzAppPlatformDeployment_Delete.cs | 545 + ...AppPlatformDeployment_DeleteViaIdentity.cs | 495 + ...RemoveAzAppPlatformDevToolPortal_Delete.cs | 530 + ...PlatformDevToolPortal_DeleteViaIdentity.cs | 491 + ...AzAppPlatformGatewayCustomDomain_Delete.cs | 544 + ...rmGatewayCustomDomain_DeleteViaIdentity.cs | 497 + ...eAzAppPlatformGatewayRouteConfig_Delete.cs | 544 + ...ormGatewayRouteConfig_DeleteViaIdentity.cs | 495 + .../RemoveAzAppPlatformGateway_Delete.cs | 530 + ...eAzAppPlatformGateway_DeleteViaIdentity.cs | 491 + ...moveAzAppPlatformServiceRegistry_Delete.cs | 530 + ...atformServiceRegistry_DeleteViaIdentity.cs | 491 + .../RemoveAzAppPlatformService_Delete.cs | 515 + ...eAzAppPlatformService_DeleteViaIdentity.cs | 487 + .../RemoveAzAppPlatformStorage_Delete.cs | 530 + ...eAzAppPlatformStorage_DeleteViaIdentity.cs | 491 + .../RestartAzAppPlatformDeployment_Restart.cs | 511 + ...ppPlatformDeployment_RestartViaIdentity.cs | 461 + .../StartAzAppPlatformDeploymentJfr_Start.cs | 524 + ...zAppPlatformDeploymentJfr_StartExpanded.cs | 547 + ...pPlatformDeploymentJfr_StartViaIdentity.cs | 475 + ...mDeploymentJfr_StartViaIdentityExpanded.cs | 500 + .../StartAzAppPlatformDeployment_Start.cs | 511 + ...zAppPlatformDeployment_StartViaIdentity.cs | 461 + .../StartAzAppPlatformService_Start.cs | 515 + ...rtAzAppPlatformService_StartViaIdentity.cs | 487 + .../StopAzAppPlatformDeployment_Stop.cs | 511 + ...AzAppPlatformDeployment_StopViaIdentity.cs | 461 + .../cmdlets/StopAzAppPlatformService_Stop.cs | 515 + ...topAzAppPlatformService_StopViaIdentity.cs | 487 + ...stAzAppPlatformApiPortalDomain_Validate.cs | 436 + ...latformApiPortalDomain_ValidateExpanded.cs | 437 + ...formApiPortalDomain_ValidateViaIdentity.cs | 402 + ...ortalDomain_ValidateViaIdentityExpanded.cs | 403 + .../TestAzAppPlatformAppDomain_Validate.cs | 436 + ...AzAppPlatformAppDomain_ValidateExpanded.cs | 437 + ...ppPlatformAppDomain_ValidateViaIdentity.cs | 402 + ...rmAppDomain_ValidateViaIdentityExpanded.cs | 403 + .../TestAzAppPlatformConfigServer_Validate.cs | 489 + ...ppPlatformConfigServer_ValidateExpanded.cs | 591 + ...latformConfigServer_ValidateViaIdentity.cs | 462 + ...onfigServer_ValidateViaIdentityExpanded.cs | 566 + ...ppPlatformConfigurationService_Validate.cs | 505 + ...rmConfigurationService_ValidateExpanded.cs | 507 + ...onfigurationService_ValidateViaIdentity.cs | 468 + ...tionService_ValidateViaIdentityExpanded.cs | 471 + ...pPlatformCustomizedAccelerator_Validate.cs | 492 + ...mCustomizedAccelerator_ValidateExpanded.cs | 593 + ...stomizedAccelerator_ValidateViaIdentity.cs | 447 + ...Accelerator_ValidateViaIdentityExpanded.cs | 549 + ...TestAzAppPlatformGatewayDomain_Validate.cs | 436 + ...pPlatformGatewayDomain_ValidateExpanded.cs | 437 + ...atformGatewayDomain_ValidateViaIdentity.cs | 402 + ...tewayDomain_ValidateViaIdentityExpanded.cs | 403 + ...ppPlatformServiceNameAvailability_Check.cs | 405 + ...rmServiceNameAvailability_CheckExpanded.cs | 417 + ...erviceNameAvailability_CheckViaIdentity.cs | 394 + ...meAvailability_CheckViaIdentityExpanded.cs | 407 + .../UpdateAzAppPlatformApp_UpdateExpanded.cs | 747 + ...ppPlatformApp_UpdateViaIdentityExpanded.cs | 708 + ...dateAzAppPlatformBinding_UpdateExpanded.cs | 544 + ...atformBinding_UpdateViaIdentityExpanded.cs | 494 + ...latformConfigServerPatch_UpdateExpanded.cs | 613 + ...igServerPatch_UpdateViaIdentityExpanded.cs | 589 + ...zAppPlatformCustomDomain_UpdateExpanded.cs | 531 + ...mCustomDomain_UpdateViaIdentityExpanded.cs | 484 + ...eAzAppPlatformDeployment_UpdateExpanded.cs | 587 + ...ormDeployment_UpdateViaIdentityExpanded.cs | 537 + ...rmMonitoringSettingPatch_UpdateExpanded.cs | 543 + ...gSettingPatch_UpdateViaIdentityExpanded.cs | 517 + ...dateAzAppPlatformService_UpdateExpanded.cs | 680 + ...atformService_UpdateViaIdentityExpanded.cs | 652 + .../Az.Accounts/2.7.5/Accounts.format.ps1xml | 496 + .../2.7.5/Accounts.generated.format.ps1xml | 468 + .../Az.Accounts/2.7.5/Accounts.types.ps1xml | 303 + .../Az.Accounts/2.7.5/Az.Accounts.nuspec | 20 + .../Az.Accounts/2.7.5/Az.Accounts.psd1 | 387 + .../Az.Accounts/2.7.5/Az.Accounts.psm1 | 375 + .../AzSharedAlcAssemblies/Azure.Core.dll | Bin 0 -> 251816 bytes .../AzSharedAlcAssemblies/Azure.Identity.dll | Bin 0 -> 294288 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20864 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 62472 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1363896 bytes .../System.Memory.Data.dll | Bin 0 -> 21368 bytes .../System.Text.Json.dll | Bin 0 -> 293240 bytes .../modules/Az.Accounts/2.7.5/Hyak.Common.dll | Bin 0 -> 63880 bytes .../2.7.5/Microsoft.ApplicationInsights.dll | Bin 0 -> 336464 bytes .../2.7.5/Microsoft.Azure.Common.dll | Bin 0 -> 35720 bytes ...PowerShell.Authentication.Abstractions.dll | Bin 0 -> 119208 bytes ...l.Authentication.ResourceManager.deps.json | 2309 ++ ...erShell.Authentication.ResourceManager.dll | Bin 0 -> 79792 bytes ....Azure.PowerShell.Authentication.deps.json | 2273 ++ ...rosoft.Azure.PowerShell.Authentication.dll | Bin 0 -> 136096 bytes ...uthenticationAssemblyLoadContext.deps.json | 1316 + ...hell.AuthenticationAssemblyLoadContext.dll | Bin 0 -> 18344 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 85416 bytes ...Microsoft.Azure.PowerShell.Clients.Aks.dll | Bin 0 -> 90000 bytes ...Azure.PowerShell.Clients.Authorization.dll | Bin 0 -> 150928 bytes ...osoft.Azure.PowerShell.Clients.Compute.dll | Bin 0 -> 1419664 bytes ...ft.Azure.PowerShell.Clients.Graph.Rbac.dll | Bin 0 -> 759184 bytes ...soft.Azure.PowerShell.Clients.KeyVault.dll | Bin 0 -> 122792 bytes ...osoft.Azure.PowerShell.Clients.Monitor.dll | Bin 0 -> 413584 bytes ...osoft.Azure.PowerShell.Clients.Network.dll | Bin 0 -> 1688488 bytes ...zure.PowerShell.Clients.PolicyInsights.dll | Bin 0 -> 178064 bytes ...ure.PowerShell.Clients.ResourceManager.dll | Bin 0 -> 1220496 bytes ....PowerShell.Clients.Storage.Management.dll | Bin 0 -> 263080 bytes ...soft.Azure.PowerShell.Clients.Websites.dll | Bin 0 -> 3272080 bytes ...zure.PowerShell.Cmdlets.Accounts.deps.json | 2413 ++ ...soft.Azure.PowerShell.Cmdlets.Accounts.dll | Bin 0 -> 461744 bytes ...e.PowerShell.Cmdlets.Accounts.dll-Help.xml | 11900 ++++++ ...icrosoft.Azure.PowerShell.Common.Share.dll | Bin 0 -> 27048 bytes .../Microsoft.Azure.PowerShell.Common.dll | Bin 0 -> 276368 bytes .../Microsoft.Azure.PowerShell.Storage.dll | Bin 0 -> 20392 bytes .../Microsoft.Azure.PowerShell.Strategies.dll | Bin 0 -> 65424 bytes .../Microsoft.Rest.ClientRuntime.Azure.dll | Bin 0 -> 97872 bytes .../2.7.5/Microsoft.Rest.ClientRuntime.dll | Bin 0 -> 80248 bytes ...soft.WindowsAzure.Storage.DataMovement.dll | Bin 0 -> 302784 bytes .../2.7.5/Microsoft.WindowsAzure.Storage.dll | Bin 0 -> 784496 bytes .../PostImportScripts/LoadAuthenticators.ps1 | 219 + .../2.7.5/PreloadAssemblies/Azure.Core.dll | Bin 0 -> 259448 bytes .../PreloadAssemblies/Azure.Identity.dll | Bin 0 -> 294288 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 85416 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 61944 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1421752 bytes .../Newtonsoft.Json.12.0.3.dll | Bin 0 -> 702400 bytes .../PreloadAssemblies/Newtonsoft.Json.dll | Bin 0 -> 663992 bytes .../PreloadAssemblies/System.Buffers.dll | Bin 0 -> 28304 bytes .../System.Diagnostics.DiagnosticSource.dll | Bin 0 -> 49528 bytes .../PreloadAssemblies/System.Memory.Data.dll | Bin 0 -> 21880 bytes .../2.7.5/PreloadAssemblies/System.Memory.dll | Bin 0 -> 148760 bytes .../System.Net.Http.WinHttpHandler.dll | Bin 0 -> 117656 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 115856 bytes .../System.Private.ServiceModel.dll | Bin 0 -> 2318920 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 -> 21576 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 59768 bytes .../PreloadAssemblies/System.Text.Json.dll | Bin 0 -> 293248 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 25984 bytes .../System.Xml.ReaderWriter.dll | Bin 0 -> 606592 bytes .../2.7.5/StartupScripts/AzError.ps1 | 278 + .../InitializeAssemblyResolver.ps1 | 234 + .../Az.Accounts/2.7.5/[Content_Types].xml | 14 + .../modules/Az.Accounts/2.7.5/_rels/.rels | 5 + .../Az.Accounts/2.7.5/en-US/about_az.help.txt | 50 + .../1aa0749a068a4238881858013f1a5b7f.psmdcp | 11 + .../generated/runtime/AsyncCommandRuntime.cs | 832 + .../appplatform/generated/runtime/AsyncJob.cs | 270 + .../runtime/AsyncOperationResponse.cs | 176 + .../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 | 199 + .../runtime/BuildTime/Models/PsHelpTypes.cs | 202 + .../BuildTime/Models/PsMarkdownTypes.cs | 294 + .../BuildTime/Models/PsProxyOutputs.cs | 611 + .../runtime/BuildTime/Models/PsProxyTypes.cs | 514 + .../runtime/BuildTime/PsAttributes.cs | 114 + .../runtime/BuildTime/PsExtensions.cs | 169 + .../generated/runtime/BuildTime/PsHelpers.cs | 105 + .../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 + .../appplatform/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 | 300 + .../generated/runtime/InfoAttribute.cs | 34 + .../generated/runtime/Iso/IsoDate.cs | 214 + .../appplatform/generated/runtime/JsonType.cs | 18 + .../generated/runtime/MessageAttribute.cs | 360 + .../runtime/MessageAttributeHelper.cs | 161 + .../appplatform/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 + .../appplatform/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/appplatform/how-to.md | 58 + .../internal/Az.AppPlatform.internal.psm1 | 38 + .../internal/Get-AzAppPlatformOperation.ps1 | 116 + .../internal/ProxyCmdletDefinitions.ps1 | 116 + swaggerci/appplatform/internal/README.md | 14 + swaggerci/appplatform/license.txt | 227 + swaggerci/appplatform/pack-module.ps1 | 9 + swaggerci/appplatform/readme.md | 10 + swaggerci/appplatform/resources/README.md | 11 + swaggerci/appplatform/run-module.ps1 | 54 + swaggerci/appplatform/test-module.ps1 | 86 + ...latformDeploymentRemoteDebugging.Tests.ps1 | 25 + ...AppPlatformPredefinedAccelerator.Tests.ps1 | 25 + ...AzAppPlatformServiceTestEndpoint.Tests.ps1 | 25 + ...latformDeploymentRemoteDebugging.Tests.ps1 | 33 + ...AppPlatformPredefinedAccelerator.Tests.ps1 | 25 + ...AzAppPlatformServiceTestEndpoint.Tests.ps1 | 25 + .../test/Get-AzAppPlatformApiPortal.Tests.ps1 | 29 + ...AppPlatformApiPortalCustomDomain.Tests.ps1 | 29 + .../test/Get-AzAppPlatformApp.Tests.ps1 | 29 + ...zAppPlatformAppResourceUploadUrl.Tests.ps1 | 25 + ...ppPlatformApplicationAccelerator.Tests.ps1 | 29 + ...AzAppPlatformApplicationLiveView.Tests.ps1 | 29 + .../test/Get-AzAppPlatformBinding.Tests.ps1 | 29 + .../Get-AzAppPlatformBuildService.Tests.ps1 | 29 + ...AppPlatformBuildServiceAgentPool.Tests.ps1 | 29 + ...t-AzAppPlatformBuildServiceBuild.Tests.ps1 | 29 + ...pPlatformBuildServiceBuildResult.Tests.ps1 | 29 + ...atformBuildServiceBuildResultLog.Tests.ps1 | 25 + ...AzAppPlatformBuildServiceBuilder.Tests.ps1 | 29 + ...ormBuildServiceBuilderDeployment.Tests.ps1 | 21 + ...ormBuildServiceResourceUploadUrl.Tests.ps1 | 25 + ...rmBuildServiceSupportedBuildpack.Tests.ps1 | 29 + ...atformBuildServiceSupportedStack.Tests.ps1 | 29 + ...et-AzAppPlatformBuildpackBinding.Tests.ps1 | 29 + .../Get-AzAppPlatformCertificate.Tests.ps1 | 29 + .../Get-AzAppPlatformConfigServer.Tests.ps1 | 25 + ...zAppPlatformConfigurationService.Tests.ps1 | 29 + .../Get-AzAppPlatformCustomDomain.Tests.ps1 | 29 + ...AppPlatformCustomizedAccelerator.Tests.ps1 | 29 + .../Get-AzAppPlatformDeployment.Tests.ps1 | 33 + ...zAppPlatformDeploymentLogFileUrl.Tests.ps1 | 25 + ...mDeploymentRemoteDebuggingConfig.Tests.ps1 | 25 + .../Get-AzAppPlatformDevToolPortal.Tests.ps1 | 29 + .../test/Get-AzAppPlatformGateway.Tests.ps1 | 29 + ...AzAppPlatformGatewayCustomDomain.Tests.ps1 | 29 + ...et-AzAppPlatformGatewayEnvSecret.Tests.ps1 | 21 + ...-AzAppPlatformGatewayRouteConfig.Tests.ps1 | 29 + ...t-AzAppPlatformMonitoringSetting.Tests.ps1 | 25 + ...AppPlatformPredefinedAccelerator.Tests.ps1 | 29 + .../Get-AzAppPlatformRuntimeVersion.Tests.ps1 | 21 + .../test/Get-AzAppPlatformService.Tests.ps1 | 33 + ...Get-AzAppPlatformServiceRegistry.Tests.ps1 | 29 + .../Get-AzAppPlatformServiceTestKey.Tests.ps1 | 21 + .../test/Get-AzAppPlatformSku.Tests.ps1 | 21 + .../test/Get-AzAppPlatformStorage.Tests.ps1 | 29 + .../test/New-AzAppPlatformApiPortal.Tests.ps1 | 21 + ...AppPlatformApiPortalCustomDomain.Tests.ps1 | 21 + .../test/New-AzAppPlatformApp.Tests.ps1 | 21 + ...ppPlatformApplicationAccelerator.Tests.ps1 | 21 + ...AzAppPlatformApplicationLiveView.Tests.ps1 | 21 + .../test/New-AzAppPlatformBinding.Tests.ps1 | 21 + ...w-AzAppPlatformBuildServiceBuild.Tests.ps1 | 21 + ...AzAppPlatformBuildServiceBuilder.Tests.ps1 | 21 + ...ew-AzAppPlatformBuildpackBinding.Tests.ps1 | 21 + .../New-AzAppPlatformCertificate.Tests.ps1 | 21 + ...zAppPlatformConfigurationService.Tests.ps1 | 21 + .../New-AzAppPlatformCustomDomain.Tests.ps1 | 21 + ...AppPlatformCustomizedAccelerator.Tests.ps1 | 21 + .../New-AzAppPlatformDeployment.Tests.ps1 | 21 + ...-AzAppPlatformDeploymentHeapDump.Tests.ps1 | 33 + ...zAppPlatformDeploymentThreadDump.Tests.ps1 | 33 + .../New-AzAppPlatformDevToolPortal.Tests.ps1 | 21 + .../test/New-AzAppPlatformGateway.Tests.ps1 | 21 + ...AzAppPlatformGatewayCustomDomain.Tests.ps1 | 21 + ...-AzAppPlatformGatewayRouteConfig.Tests.ps1 | 21 + .../test/New-AzAppPlatformService.Tests.ps1 | 21 + .../New-AzAppPlatformServiceTestKey.Tests.ps1 | 33 + .../test/New-AzAppPlatformStorage.Tests.ps1 | 21 + swaggerci/appplatform/test/README.md | 17 + .../Remove-AzAppPlatformApiPortal.Tests.ps1 | 25 + ...AppPlatformApiPortalCustomDomain.Tests.ps1 | 25 + .../test/Remove-AzAppPlatformApp.Tests.ps1 | 25 + ...ppPlatformApplicationAccelerator.Tests.ps1 | 25 + ...AzAppPlatformApplicationLiveView.Tests.ps1 | 25 + .../Remove-AzAppPlatformBinding.Tests.ps1 | 25 + ...AzAppPlatformBuildServiceBuilder.Tests.ps1 | 25 + ...ve-AzAppPlatformBuildpackBinding.Tests.ps1 | 25 + .../Remove-AzAppPlatformCertificate.Tests.ps1 | 25 + ...zAppPlatformConfigurationService.Tests.ps1 | 25 + ...Remove-AzAppPlatformCustomDomain.Tests.ps1 | 25 + ...AppPlatformCustomizedAccelerator.Tests.ps1 | 25 + .../Remove-AzAppPlatformDeployment.Tests.ps1 | 25 + ...emove-AzAppPlatformDevToolPortal.Tests.ps1 | 25 + .../Remove-AzAppPlatformGateway.Tests.ps1 | 25 + ...AzAppPlatformGatewayCustomDomain.Tests.ps1 | 25 + ...-AzAppPlatformGatewayRouteConfig.Tests.ps1 | 25 + .../Remove-AzAppPlatformService.Tests.ps1 | 25 + ...ove-AzAppPlatformServiceRegistry.Tests.ps1 | 25 + .../Remove-AzAppPlatformStorage.Tests.ps1 | 25 + .../Restart-AzAppPlatformDeployment.Tests.ps1 | 25 + .../Start-AzAppPlatformDeployment.Tests.ps1 | 25 + ...Start-AzAppPlatformDeploymentJfr.Tests.ps1 | 33 + .../test/Start-AzAppPlatformService.Tests.ps1 | 25 + .../Stop-AzAppPlatformDeployment.Tests.ps1 | 25 + .../test/Stop-AzAppPlatformService.Tests.ps1 | 25 + ...est-AzAppPlatformApiPortalDomain.Tests.ps1 | 33 + .../Test-AzAppPlatformAppDomain.Tests.ps1 | 33 + .../Test-AzAppPlatformConfigServer.Tests.ps1 | 33 + ...zAppPlatformConfigurationService.Tests.ps1 | 33 + ...AppPlatformCustomizedAccelerator.Tests.ps1 | 33 + .../Test-AzAppPlatformGatewayDomain.Tests.ps1 | 33 + ...pPlatformServiceNameAvailability.Tests.ps1 | 33 + .../test/Update-AzAppPlatformApp.Tests.ps1 | 25 + .../Update-AzAppPlatformBinding.Tests.ps1 | 25 + ...e-AzAppPlatformConfigServerPatch.Tests.ps1 | 25 + ...Update-AzAppPlatformCustomDomain.Tests.ps1 | 25 + .../Update-AzAppPlatformDeployment.Tests.ps1 | 25 + ...ppPlatformMonitoringSettingPatch.Tests.ps1 | 25 + .../Update-AzAppPlatformService.Tests.ps1 | 25 + swaggerci/appplatform/test/loadEnv.ps1 | 21 + swaggerci/appplatform/test/utils.ps1 | 31 + .../utils/Unprotect-SecureString.ps1 | 16 + 1986 files changed, 433428 insertions(+) create mode 100644 swaggerci/appplatform/.gitattributes create mode 100644 swaggerci/appplatform/.gitignore create mode 100644 swaggerci/appplatform/Az.AppPlatform.csproj create mode 100644 swaggerci/appplatform/Az.AppPlatform.format.ps1xml create mode 100644 swaggerci/appplatform/Az.AppPlatform.nuspec create mode 100644 swaggerci/appplatform/Az.AppPlatform.psd1 create mode 100644 swaggerci/appplatform/Az.AppPlatform.psm1 create mode 100644 swaggerci/appplatform/MSSharedLibKey.snk create mode 100644 swaggerci/appplatform/README.md create mode 100644 swaggerci/appplatform/build-module.ps1 create mode 100644 swaggerci/appplatform/check-dependencies.ps1 create mode 100644 swaggerci/appplatform/create-model-cmdlets.ps1 create mode 100644 swaggerci/appplatform/custom/Az.AppPlatform.custom.psm1 create mode 100644 swaggerci/appplatform/custom/README.md create mode 100644 swaggerci/appplatform/docs/Az.AppPlatform.md create mode 100644 swaggerci/appplatform/docs/Disable-AzAppPlatformDeploymentRemoteDebugging.md create mode 100644 swaggerci/appplatform/docs/Disable-AzAppPlatformPredefinedAccelerator.md create mode 100644 swaggerci/appplatform/docs/Disable-AzAppPlatformServiceTestEndpoint.md create mode 100644 swaggerci/appplatform/docs/Enable-AzAppPlatformDeploymentRemoteDebugging.md create mode 100644 swaggerci/appplatform/docs/Enable-AzAppPlatformPredefinedAccelerator.md create mode 100644 swaggerci/appplatform/docs/Enable-AzAppPlatformServiceTestEndpoint.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformApiPortal.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformApiPortalCustomDomain.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformAppResourceUploadUrl.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformApplicationAccelerator.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformApplicationLiveView.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildService.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceAgentPool.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuild.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuildResult.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuildResultLog.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuilder.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuilderDeployment.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceResourceUploadUrl.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceSupportedBuildpack.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceSupportedStack.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformBuildpackBinding.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformConfigServer.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformConfigurationService.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformCustomizedAccelerator.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentLogFileUrl.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformDevToolPortal.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformGateway.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformGatewayCustomDomain.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformGatewayEnvSecret.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformGatewayRouteConfig.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformMonitoringSetting.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformPredefinedAccelerator.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformRuntimeVersion.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformServiceRegistry.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformServiceTestKey.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformSku.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformStorage.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformApiPortal.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformApiPortalCustomDomain.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformApplicationAccelerator.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformApplicationLiveView.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformBuildServiceBuild.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformBuildServiceBuilder.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformBuildpackBinding.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformConfigurationService.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformCustomizedAccelerator.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformDeploymentHeapDump.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformDeploymentThreadDump.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformDevToolPortal.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformGateway.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformGatewayCustomDomain.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformGatewayRouteConfig.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformServiceTestKey.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformStorage.md create mode 100644 swaggerci/appplatform/docs/README.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformApiPortal.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformApiPortalCustomDomain.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformApplicationAccelerator.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformApplicationLiveView.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformBuildServiceBuilder.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformBuildpackBinding.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformConfigurationService.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformCustomizedAccelerator.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformDevToolPortal.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformGateway.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformGatewayCustomDomain.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformGatewayRouteConfig.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformServiceRegistry.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformStorage.md create mode 100644 swaggerci/appplatform/docs/Restart-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/docs/Start-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/docs/Start-AzAppPlatformDeploymentJfr.md create mode 100644 swaggerci/appplatform/docs/Start-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/docs/Stop-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/docs/Stop-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/docs/Test-AzAppPlatformApiPortalDomain.md create mode 100644 swaggerci/appplatform/docs/Test-AzAppPlatformAppDomain.md create mode 100644 swaggerci/appplatform/docs/Test-AzAppPlatformConfigServer.md create mode 100644 swaggerci/appplatform/docs/Test-AzAppPlatformConfigurationService.md create mode 100644 swaggerci/appplatform/docs/Test-AzAppPlatformCustomizedAccelerator.md create mode 100644 swaggerci/appplatform/docs/Test-AzAppPlatformGatewayDomain.md create mode 100644 swaggerci/appplatform/docs/Test-AzAppPlatformServiceNameAvailability.md create mode 100644 swaggerci/appplatform/docs/Update-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/docs/Update-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/docs/Update-AzAppPlatformConfigServerPatch.md create mode 100644 swaggerci/appplatform/docs/Update-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/docs/Update-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/docs/Update-AzAppPlatformMonitoringSettingPatch.md create mode 100644 swaggerci/appplatform/docs/Update-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/examples/Disable-AzAppPlatformDeploymentRemoteDebugging.md create mode 100644 swaggerci/appplatform/examples/Disable-AzAppPlatformPredefinedAccelerator.md create mode 100644 swaggerci/appplatform/examples/Disable-AzAppPlatformServiceTestEndpoint.md create mode 100644 swaggerci/appplatform/examples/Enable-AzAppPlatformDeploymentRemoteDebugging.md create mode 100644 swaggerci/appplatform/examples/Enable-AzAppPlatformPredefinedAccelerator.md create mode 100644 swaggerci/appplatform/examples/Enable-AzAppPlatformServiceTestEndpoint.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformApiPortal.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformApiPortalCustomDomain.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformAppResourceUploadUrl.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformApplicationAccelerator.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformApplicationLiveView.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildService.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceAgentPool.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuild.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuildResult.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuildResultLog.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuilder.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuilderDeployment.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceResourceUploadUrl.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceSupportedBuildpack.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceSupportedStack.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformBuildpackBinding.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformConfigServer.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformConfigurationService.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformCustomizedAccelerator.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentLogFileUrl.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformDevToolPortal.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformGateway.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformGatewayCustomDomain.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformGatewayEnvSecret.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformGatewayRouteConfig.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformMonitoringSetting.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformPredefinedAccelerator.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformRuntimeVersion.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformServiceRegistry.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformServiceTestKey.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformSku.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformStorage.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformApiPortal.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformApiPortalCustomDomain.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformApplicationAccelerator.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformApplicationLiveView.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformBuildServiceBuild.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformBuildServiceBuilder.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformBuildpackBinding.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformConfigurationService.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformCustomizedAccelerator.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformDeploymentHeapDump.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformDeploymentThreadDump.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformDevToolPortal.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformGateway.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformGatewayCustomDomain.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformGatewayRouteConfig.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformServiceTestKey.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformStorage.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformApiPortal.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformApiPortalCustomDomain.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformApplicationAccelerator.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformApplicationLiveView.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformBuildServiceBuilder.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformBuildpackBinding.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformConfigurationService.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformCustomizedAccelerator.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformDevToolPortal.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformGateway.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformGatewayCustomDomain.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformGatewayRouteConfig.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformServiceRegistry.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformStorage.md create mode 100644 swaggerci/appplatform/examples/Restart-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/examples/Start-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/examples/Start-AzAppPlatformDeploymentJfr.md create mode 100644 swaggerci/appplatform/examples/Start-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/examples/Stop-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/examples/Stop-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/examples/Test-AzAppPlatformApiPortalDomain.md create mode 100644 swaggerci/appplatform/examples/Test-AzAppPlatformAppDomain.md create mode 100644 swaggerci/appplatform/examples/Test-AzAppPlatformConfigServer.md create mode 100644 swaggerci/appplatform/examples/Test-AzAppPlatformConfigurationService.md create mode 100644 swaggerci/appplatform/examples/Test-AzAppPlatformCustomizedAccelerator.md create mode 100644 swaggerci/appplatform/examples/Test-AzAppPlatformGatewayDomain.md create mode 100644 swaggerci/appplatform/examples/Test-AzAppPlatformServiceNameAvailability.md create mode 100644 swaggerci/appplatform/examples/Update-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/examples/Update-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/examples/Update-AzAppPlatformConfigServerPatch.md create mode 100644 swaggerci/appplatform/examples/Update-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/examples/Update-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/examples/Update-AzAppPlatformMonitoringSettingPatch.md create mode 100644 swaggerci/appplatform/examples/Update-AzAppPlatformService.md create mode 100644 swaggerci/appplatform/export-surface.ps1 create mode 100644 swaggerci/appplatform/exports/Disable-AzAppPlatformDeploymentRemoteDebugging.ps1 create mode 100644 swaggerci/appplatform/exports/Disable-AzAppPlatformPredefinedAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/Disable-AzAppPlatformServiceTestEndpoint.ps1 create mode 100644 swaggerci/appplatform/exports/Enable-AzAppPlatformDeploymentRemoteDebugging.ps1 create mode 100644 swaggerci/appplatform/exports/Enable-AzAppPlatformPredefinedAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/Enable-AzAppPlatformServiceTestEndpoint.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformApiPortal.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformApiPortalCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformApp.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformAppResourceUploadUrl.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformApplicationAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformApplicationLiveView.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBinding.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildService.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceAgentPool.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuild.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuildResult.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuildResultLog.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuilder.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuilderDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceResourceUploadUrl.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceSupportedBuildpack.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceSupportedStack.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformBuildpackBinding.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformCertificate.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformConfigServer.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformConfigurationService.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformCustomizedAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentLogFileUrl.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformDevToolPortal.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformGateway.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformGatewayCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformGatewayEnvSecret.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformGatewayRouteConfig.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformMonitoringSetting.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformPredefinedAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformRuntimeVersion.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformService.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformServiceRegistry.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformServiceTestKey.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformSku.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformStorage.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformApiPortal.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformApiPortalCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformApp.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformApplicationAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformApplicationLiveView.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformBinding.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformBuildServiceBuild.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformBuildServiceBuilder.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformBuildpackBinding.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformCertificate.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformConfigurationService.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformCustomizedAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformDeploymentHeapDump.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformDeploymentThreadDump.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformDevToolPortal.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformGateway.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformGatewayCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformGatewayRouteConfig.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformService.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformServiceTestKey.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformStorage.ps1 create mode 100644 swaggerci/appplatform/exports/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/appplatform/exports/README.md create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformApiPortal.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformApiPortalCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformApp.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformApplicationAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformApplicationLiveView.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformBinding.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformBuildServiceBuilder.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformBuildpackBinding.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformCertificate.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformConfigurationService.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformCustomizedAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformDevToolPortal.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformGateway.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformGatewayCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformGatewayRouteConfig.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformService.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformServiceRegistry.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformStorage.ps1 create mode 100644 swaggerci/appplatform/exports/Restart-AzAppPlatformDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/Start-AzAppPlatformDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/Start-AzAppPlatformDeploymentJfr.ps1 create mode 100644 swaggerci/appplatform/exports/Start-AzAppPlatformService.ps1 create mode 100644 swaggerci/appplatform/exports/Stop-AzAppPlatformDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/Stop-AzAppPlatformService.ps1 create mode 100644 swaggerci/appplatform/exports/Test-AzAppPlatformApiPortalDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Test-AzAppPlatformAppDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Test-AzAppPlatformConfigServer.ps1 create mode 100644 swaggerci/appplatform/exports/Test-AzAppPlatformConfigurationService.ps1 create mode 100644 swaggerci/appplatform/exports/Test-AzAppPlatformCustomizedAccelerator.ps1 create mode 100644 swaggerci/appplatform/exports/Test-AzAppPlatformGatewayDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Test-AzAppPlatformServiceNameAvailability.ps1 create mode 100644 swaggerci/appplatform/exports/Update-AzAppPlatformApp.ps1 create mode 100644 swaggerci/appplatform/exports/Update-AzAppPlatformBinding.ps1 create mode 100644 swaggerci/appplatform/exports/Update-AzAppPlatformConfigServerPatch.ps1 create mode 100644 swaggerci/appplatform/exports/Update-AzAppPlatformCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Update-AzAppPlatformDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/Update-AzAppPlatformMonitoringSettingPatch.ps1 create mode 100644 swaggerci/appplatform/exports/Update-AzAppPlatformService.ps1 create mode 100644 swaggerci/appplatform/generate-help.ps1 create mode 100644 swaggerci/appplatform/generated/Module.cs create mode 100644 swaggerci/appplatform/generated/api/AppPlatformManagementClient.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Any.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Any.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Any.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Any.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.cs create mode 100644 swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.json.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ActionType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ActionType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ActionType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApmType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApmType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApmType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BackendProtocol.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BackendProtocol.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BackendProtocol.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BindingType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BindingType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BindingType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ConfigServerState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ConfigServerState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ConfigServerState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CreatedByType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CreatedByType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CreatedByType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.cs create mode 100644 swaggerci/appplatform/generated/api/Support/HttpSchemeType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/HttpSchemeType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/HttpSchemeType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/LastModifiedByType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/LastModifiedByType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/LastModifiedByType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ManagedIdentityType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ManagedIdentityType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ManagedIdentityType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/MonitoringSettingState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/MonitoringSettingState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/MonitoringSettingState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PowerState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PowerState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PowerState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ProbeActionType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ProbeActionType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ProbeActionType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SessionAffinity.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SessionAffinity.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SessionAffinity.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SkuScaleType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SkuScaleType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SkuScaleType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.cs create mode 100644 swaggerci/appplatform/generated/api/Support/TestKeyType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/TestKeyType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/TestKeyType.cs create mode 100644 swaggerci/appplatform/generated/api/Support/TrafficDirection.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/TrafficDirection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/TrafficDirection.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformDeploymentRemoteDebugging_Disable.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformPredefinedAccelerator_Disable.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_Disable.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_DisableViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_Enable.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformPredefinedAccelerator_Enable.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_Enable.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_EnableViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResultLog_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResultLog_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilderDeployment_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceResourceUploadUrl_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceResourceUploadUrl_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentRemoteDebuggingConfig_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentRemoteDebuggingConfig_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List1.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayEnvSecret_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformOperation_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformRuntimeVersion_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceTestKey_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List1.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformSku_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_GetViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_List.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApiPortalCustomDomain_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApiPortal_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApp_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApplicationAccelerator_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApplicationLiveView_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBinding_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildServiceBuild_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildServiceBuilder_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildpackBinding_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCertificate_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformConfigurationService_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomDomain_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomizedAccelerator_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_Generate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_Generate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeployment_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDevToolPortal_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGatewayCustomDomain_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGatewayRouteConfig_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGateway_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_Regenerate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformService_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformStorage_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortalCustomDomain_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortalCustomDomain_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortal_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortal_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationAccelerator_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationAccelerator_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationLiveView_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationLiveView_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildServiceBuilder_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildServiceBuilder_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildpackBinding_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildpackBinding_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformConfigurationService_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformConfigurationService_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomizedAccelerator_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomizedAccelerator_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDevToolPortal_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDevToolPortal_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayCustomDomain_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayCustomDomain_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayRouteConfig_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayRouteConfig_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGateway_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGateway_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformServiceRegistry_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformServiceRegistry_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformService_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformService_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformStorage_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformStorage_DeleteViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_Restart.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_RestartViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_Start.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_Start.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_StartViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformService_Start.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformService_StartViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_Stop.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_StopViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformService_Stop.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformService_StopViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_Validate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_Validate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_Validate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_Validate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_Validate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_Validate.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_Check.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentity.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Identity.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Text.Json.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Hyak.Common.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.ApplicationInsights.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.deps.json create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Aks.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Authorization.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Compute.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Websites.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Storage.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Core.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Buffers.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Private.ServiceModel.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Reflection.DispatchProxy.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.AccessControl.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Cryptography.Cng.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Permissions.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Principal.Windows.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.ServiceModel.Primitives.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Json.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Xml.ReaderWriter.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/StartupScripts/AzError.ps1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/StartupScripts/InitializeAssemblyResolver.ps1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/[Content_Types].xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/_rels/.rels create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/en-US/about_az.help.txt create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/package/services/metadata/core-properties/1aa0749a068a4238881858013f1a5b7f.psmdcp create mode 100644 swaggerci/appplatform/generated/runtime/AsyncCommandRuntime.cs create mode 100644 swaggerci/appplatform/generated/runtime/AsyncJob.cs create mode 100644 swaggerci/appplatform/generated/runtime/AsyncOperationResponse.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/CollectionExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/MarkdownRenderer.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Models/PsFormatTypes.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Models/PsHelpTypes.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Models/PsProxyOutputs.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/Models/PsProxyTypes.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/PsAttributes.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/PsExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/PsHelpers.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/StringExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/BuildTime/XmlExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/CmdInfoHandler.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/ConversionException.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/IJsonConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/BinaryConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/BooleanConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/DateTimeConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/DecimalConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/DoubleConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/EnumConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/GuidConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/HashSet'1Converter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/Int16Converter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/Int32Converter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/Int64Converter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/JsonArrayConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/JsonObjectConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/SingleConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/StringConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/TimeSpanConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt16Converter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt32Converter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt64Converter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/Instances/UriConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/JsonConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/JsonConverterAttribute.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/JsonConverterFactory.cs create mode 100644 swaggerci/appplatform/generated/runtime/Conversions/StringLikeConverter.cs create mode 100644 swaggerci/appplatform/generated/runtime/Customizations/IJsonSerializable.cs create mode 100644 swaggerci/appplatform/generated/runtime/Customizations/JsonArray.cs create mode 100644 swaggerci/appplatform/generated/runtime/Customizations/JsonBoolean.cs create mode 100644 swaggerci/appplatform/generated/runtime/Customizations/JsonNode.cs create mode 100644 swaggerci/appplatform/generated/runtime/Customizations/JsonNumber.cs create mode 100644 swaggerci/appplatform/generated/runtime/Customizations/JsonObject.cs create mode 100644 swaggerci/appplatform/generated/runtime/Customizations/JsonString.cs create mode 100644 swaggerci/appplatform/generated/runtime/Customizations/XNodeArray.cs create mode 100644 swaggerci/appplatform/generated/runtime/Debugging.cs create mode 100644 swaggerci/appplatform/generated/runtime/DictionaryExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/EventData.cs create mode 100644 swaggerci/appplatform/generated/runtime/EventDataExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/EventListener.cs create mode 100644 swaggerci/appplatform/generated/runtime/Events.cs create mode 100644 swaggerci/appplatform/generated/runtime/EventsExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/Extensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/Helpers/Extensions/TypeExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/Helpers/Seperator.cs create mode 100644 swaggerci/appplatform/generated/runtime/Helpers/TypeDetails.cs create mode 100644 swaggerci/appplatform/generated/runtime/Helpers/XHelper.cs create mode 100644 swaggerci/appplatform/generated/runtime/HttpPipeline.cs create mode 100644 swaggerci/appplatform/generated/runtime/HttpPipelineMocking.ps1 create mode 100644 swaggerci/appplatform/generated/runtime/IAssociativeArray.cs create mode 100644 swaggerci/appplatform/generated/runtime/IHeaderSerializable.cs create mode 100644 swaggerci/appplatform/generated/runtime/ISendAsync.cs create mode 100644 swaggerci/appplatform/generated/runtime/InfoAttribute.cs create mode 100644 swaggerci/appplatform/generated/runtime/Iso/IsoDate.cs create mode 100644 swaggerci/appplatform/generated/runtime/JsonType.cs create mode 100644 swaggerci/appplatform/generated/runtime/MessageAttribute.cs create mode 100644 swaggerci/appplatform/generated/runtime/MessageAttributeHelper.cs create mode 100644 swaggerci/appplatform/generated/runtime/Method.cs create mode 100644 swaggerci/appplatform/generated/runtime/Models/JsonMember.cs create mode 100644 swaggerci/appplatform/generated/runtime/Models/JsonModel.cs create mode 100644 swaggerci/appplatform/generated/runtime/Models/JsonModelCache.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/Collections/JsonArray.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/Collections/XImmutableArray.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/Collections/XList.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/Collections/XNodeArray.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/Collections/XSet.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/JsonBoolean.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/JsonDate.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/JsonNode.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/JsonNumber.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/JsonObject.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/JsonString.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/XBinary.cs create mode 100644 swaggerci/appplatform/generated/runtime/Nodes/XNull.cs create mode 100644 swaggerci/appplatform/generated/runtime/Parser/Exceptions/ParseException.cs create mode 100644 swaggerci/appplatform/generated/runtime/Parser/JsonParser.cs create mode 100644 swaggerci/appplatform/generated/runtime/Parser/JsonToken.cs create mode 100644 swaggerci/appplatform/generated/runtime/Parser/JsonTokenizer.cs create mode 100644 swaggerci/appplatform/generated/runtime/Parser/Location.cs create mode 100644 swaggerci/appplatform/generated/runtime/Parser/Readers/SourceReader.cs create mode 100644 swaggerci/appplatform/generated/runtime/Parser/TokenReader.cs create mode 100644 swaggerci/appplatform/generated/runtime/PipelineMocking.cs create mode 100644 swaggerci/appplatform/generated/runtime/Properties/Resources.Designer.cs create mode 100644 swaggerci/appplatform/generated/runtime/Properties/Resources.resx create mode 100644 swaggerci/appplatform/generated/runtime/Response.cs create mode 100644 swaggerci/appplatform/generated/runtime/Serialization/JsonSerializer.cs create mode 100644 swaggerci/appplatform/generated/runtime/Serialization/PropertyTransformation.cs create mode 100644 swaggerci/appplatform/generated/runtime/Serialization/SerializationOptions.cs create mode 100644 swaggerci/appplatform/generated/runtime/SerializationMode.cs create mode 100644 swaggerci/appplatform/generated/runtime/TypeConverterExtensions.cs create mode 100644 swaggerci/appplatform/generated/runtime/UndeclaredResponseException.cs create mode 100644 swaggerci/appplatform/generated/runtime/Writers/JsonWriter.cs create mode 100644 swaggerci/appplatform/generated/runtime/delegates.cs create mode 100644 swaggerci/appplatform/how-to.md create mode 100644 swaggerci/appplatform/internal/Az.AppPlatform.internal.psm1 create mode 100644 swaggerci/appplatform/internal/Get-AzAppPlatformOperation.ps1 create mode 100644 swaggerci/appplatform/internal/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/appplatform/internal/README.md create mode 100644 swaggerci/appplatform/license.txt create mode 100644 swaggerci/appplatform/pack-module.ps1 create mode 100644 swaggerci/appplatform/readme.md create mode 100644 swaggerci/appplatform/resources/README.md create mode 100644 swaggerci/appplatform/run-module.ps1 create mode 100644 swaggerci/appplatform/test-module.ps1 create mode 100644 swaggerci/appplatform/test/Disable-AzAppPlatformDeploymentRemoteDebugging.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Disable-AzAppPlatformPredefinedAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Disable-AzAppPlatformServiceTestEndpoint.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Enable-AzAppPlatformDeploymentRemoteDebugging.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Enable-AzAppPlatformPredefinedAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Enable-AzAppPlatformServiceTestEndpoint.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformApiPortal.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformApiPortalCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformApp.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformAppResourceUploadUrl.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformApplicationAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformApplicationLiveView.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceAgentPool.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuild.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuildResult.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuildResultLog.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuilder.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuilderDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceResourceUploadUrl.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceSupportedBuildpack.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceSupportedStack.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformBuildpackBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformCertificate.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformConfigServer.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformConfigurationService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformCustomizedAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformDeploymentLogFileUrl.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformDevToolPortal.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformGateway.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformGatewayCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformGatewayEnvSecret.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformGatewayRouteConfig.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformMonitoringSetting.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformPredefinedAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformRuntimeVersion.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformServiceRegistry.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformServiceTestKey.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformSku.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformStorage.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformApiPortal.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformApiPortalCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformApp.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformApplicationAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformApplicationLiveView.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformBuildServiceBuild.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformBuildServiceBuilder.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformBuildpackBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformCertificate.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformConfigurationService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformCustomizedAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformDeploymentHeapDump.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformDeploymentThreadDump.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformDevToolPortal.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformGateway.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformGatewayCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformGatewayRouteConfig.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformServiceTestKey.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformStorage.Tests.ps1 create mode 100644 swaggerci/appplatform/test/README.md create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformApiPortal.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformApiPortalCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformApp.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformApplicationAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformApplicationLiveView.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformBuildServiceBuilder.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformBuildpackBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformCertificate.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformConfigurationService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformCustomizedAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformDevToolPortal.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformGateway.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformGatewayCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformGatewayRouteConfig.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformServiceRegistry.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformStorage.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Restart-AzAppPlatformDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Start-AzAppPlatformDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Start-AzAppPlatformDeploymentJfr.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Start-AzAppPlatformService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Stop-AzAppPlatformDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Stop-AzAppPlatformService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Test-AzAppPlatformApiPortalDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Test-AzAppPlatformAppDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Test-AzAppPlatformConfigServer.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Test-AzAppPlatformConfigurationService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Test-AzAppPlatformCustomizedAccelerator.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Test-AzAppPlatformGatewayDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Test-AzAppPlatformServiceNameAvailability.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Update-AzAppPlatformApp.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Update-AzAppPlatformBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Update-AzAppPlatformConfigServerPatch.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Update-AzAppPlatformCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Update-AzAppPlatformDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Update-AzAppPlatformMonitoringSettingPatch.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Update-AzAppPlatformService.Tests.ps1 create mode 100644 swaggerci/appplatform/test/loadEnv.ps1 create mode 100644 swaggerci/appplatform/test/utils.ps1 create mode 100644 swaggerci/appplatform/utils/Unprotect-SecureString.ps1 diff --git a/swaggerci/appplatform/.gitattributes b/swaggerci/appplatform/.gitattributes new file mode 100644 index 000000000000..2125666142eb --- /dev/null +++ b/swaggerci/appplatform/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/swaggerci/appplatform/.gitignore b/swaggerci/appplatform/.gitignore new file mode 100644 index 000000000000..7998f37e1e47 --- /dev/null +++ b/swaggerci/appplatform/.gitignore @@ -0,0 +1,5 @@ +bin +obj +.vs +tools +test/*-TestResults.xml \ No newline at end of file diff --git a/swaggerci/appplatform/Az.AppPlatform.csproj b/swaggerci/appplatform/Az.AppPlatform.csproj new file mode 100644 index 000000000000..ca21c725048f --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.csproj @@ -0,0 +1,44 @@ + + + + 0.1.0 + 7.1 + netstandard2.0 + Library + Az.AppPlatform.private + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform + true + false + ./bin + $(OutputPath) + Az.AppPlatform.nuspec + true + + + 1998, 1591 + 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/appplatform/Az.AppPlatform.format.ps1xml b/swaggerci/appplatform/Az.AppPlatform.format.ps1xml new file mode 100644 index 000000000000..76fd321669ab --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.format.ps1xml @@ -0,0 +1,8195 @@ + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.AppPlatformIdentity + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.AppPlatformIdentity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AgentPoolName + + + ApiPortalName + + + AppName + + + ApplicationAcceleratorName + + + ApplicationLiveViewName + + + BindingName + + + BuildName + + + BuildResultName + + + BuildServiceName + + + BuilderName + + + BuildpackBindingName + + + BuildpackName + + + CertificateName + + + ConfigurationServiceName + + + CustomizedAcceleratorName + + + DeploymentName + + + DevToolPortalName + + + DomainName + + + GatewayName + + + Id + + + Location + + + PredefinedAcceleratorName + + + ResourceGroupName + + + RouteConfigName + + + ServiceName + + + ServiceRegistryName + + + StackName + + + StorageName + + + SubscriptionId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting + + + + + + + + + + + + AuthType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorBasicAuthSetting + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorBasicAuthSetting + + + + + + + + + + + + + + + + + + AuthType + + + Password + + + Username + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepository + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepository + + + + + + + + + + + + + + + + + + + + + + + + Branch + + + Commit + + + GitTag + + + IntervalInSecond + + + Url + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorPublicSetting + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorPublicSetting + + + + + + + + + + + + AuthType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorSshSetting + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorSshSetting + + + + + + + + + + + + + + + + + + + + + AuthType + + + HostKey + + + HostKeyAlgorithm + + + PrivateKey + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ActiveDeploymentCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ActiveDeploymentCollection + + + + + + + + + + + + ActiveDeploymentName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainProperties + + + + + + + + + + + + Thumbprint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalInstance + + + + + + + + + + + + + + + Name + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + GatewayId + + + HttpsOnly + + + ProvisioningState + + + Public + + + SourceUrl + + + Url + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequests + + + + + + + + + + + + + + + Cpu + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorComponent + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorComponent + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorInstance + + + + + + + + + + + + + + + Name + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceRequests + + + + + + + + + + + + + + + + + + Cpu + + + InstanceCount + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersions + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersions + + + + + + + + + + + + Java + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewInstance + + + + + + + + + + + + + + + Name + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceRequests + + + + + + + + + + + + + + + + + + Cpu + + + InstanceCount + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + EnableEndToEndTl + + + Fqdn + + + HttpsOnly + + + ProvisioningState + + + Public + + + Url + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddons + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddons + + + + + + + + + + + + + + + PublicEndpoint + + + PublicEndpointUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AvailableOperations + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AvailableOperations + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AzureFileVolume + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AzureFileVolume + + + + + + + + + + + + + + + + + + + + + + + + MountOption + + + MountPath + + + ReadOnly + + + Type + + + ShareName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CreatedAt + + + GeneratedProperty + + + Key + + + ResourceId + + + ResourceName + + + ResourceType + + + UpdatedAt + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Build + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Build + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecrets + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecrets + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingProperties + + + + + + + + + + + + + + + BindingType + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackProperties + + + + + + + + + + + + Id + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpacksGroupProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpacksGroupProperties + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildProperties + + + + + + + + + + + + + + + + + + + + + AgentPool + + + Builder + + + ProvisioningState + + + RelativePath + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnv + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnv + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequests + + + + + + + + + + + + + + + Cpu + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResult + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResult + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultLog + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultLog + + + + + + + + + + + + BlobUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultProperties + + + + + + + + + + + + + + + + + + BuildPodName + + + Name + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultUserSourceInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultUserSourceInfo + + + + + + + + + + + + + + + + + + Type + + + Version + + + BuildResultId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildService + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildService + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizeProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizeProperties + + + + + + + + + + + + + + + + + + Cpu + + + Memory + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceProperties + + + + + + + + + + + + + + + KPackVersion + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequests + + + + + + + + + + + + + + + Cpu + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildStageProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildStageProperties + + + + + + + + + + + + + + + + + + + + + ExitCode + + + Name + + + Reason + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActivateDate + + + DnsName + + + ExpirationDate + + + IssuedDate + + + Issuer + + + ProvisioningState + + + SubjectName + + + Thumbprint + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudErrorBody + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudErrorBody + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ClusterResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ClusterResourceProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + Fqdn + + + PowerState + + + ProvisioningState + + + ServiceId + + + Version + + + ZoneRedundant + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitProperty + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitProperty + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HostKey + + + HostKeyAlgorithm + + + Label + + + Password + + + PrivateKey + + + SearchPath + + + StrictHostKeyChecking + + + Uri + + + Username + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsErrorRecord + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsErrorRecord + + + + + + + + + + + + + + + + + + Message + + + Name + + + Uri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsValidateResult + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsValidateResult + + + + + + + + + + + + IsValid + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyValidateResult + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyValidateResult + + + + + + + + + + + + IsValid + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepository + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepository + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HostKey + + + HostKeyAlgorithm + + + Label + + + Name + + + Password + + + Pattern + + + PrivateKey + + + SearchPath + + + StrictHostKeyChecking + + + Uri + + + Username + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceInstance + + + + + + + + + + + + + + + Name + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequests + + + + + + + + + + + + + + + + + + Cpu + + + InstanceCount + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContainerProbeSettings + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContainerProbeSettings + + + + + + + + + + + + DisableProbe + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContentCertificateProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContentCertificateProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActivateDate + + + DnsName + + + ExpirationDate + + + IssuedDate + + + Issuer + + + ProvisioningState + + + SubjectName + + + Thumbprint + + + Type + + + Content + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainer + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainer + + + + + + + + + + + + + + + + + + + + + + + + Arg + + + Command + + + ContainerImage + + + LanguageFramework + + + Server + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainerUserSourceInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainerUserSourceInfo + + + + + + + + + + + + + + + Type + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainProperties + + + + + + + + + + + + + + + + + + + + + AppName + + + CertName + + + ProvisioningState + + + Thumbprint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidatePayload + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidatePayload + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidateResult + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidateResult + + + + + + + + + + + + + + + IsValid + + + Message + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorProperties + + + + + + + + + + + + + + + + + + + + + + + + AcceleratorTag + + + Description + + + DisplayName + + + IconUrl + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorValidateResult + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorValidateResult + + + + + + + + + + + + + + + ErrorMessage + + + State + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskProperties + + + + + + + + + + + + + + + + + + + + + MountOption + + + MountPath + + + ReadOnly + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskResource + + + + + + + + + + + + StorageId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentInstance + + + + + + + + + + + + + + + + + + + + + + + + + + + DiscoveryStatus + + + Name + + + Reason + + + StartTime + + + Status + + + Zone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentList + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentList + + + + + + + + + + + + Deployment + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceProperties + + + + + + + + + + + + + + + + + + Active + + + ProvisioningState + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettings + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettings + + + + + + + + + + + + TerminationGracePeriodSecond + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsEnvironmentVariables + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsEnvironmentVariables + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetail + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetail + + + + + + + + + + + + + + + Route + + + State + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalInstance + + + + + + + + + + + + + + + Name + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalProperties + + + + + + + + + + + + + + + + + + ProvisioningState + + + Public + + + Url + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequests + + + + + + + + + + + + + + + + + + Cpu + + + InstanceCount + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoProperties + + + + + + + + + + + + + + + + + + + + + ClientId + + + ClientSecret + + + MetadataUrl + + + Scope + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DiagnosticParameters + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DiagnosticParameters + + + + + + + + + + + + + + + + + + AppInstance + + + Duration + + + FilePath + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Error + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Error + + + + + + + + + + + + + + + Code + + + Message + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ExecAction + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ExecAction + + + + + + + + + + + + + + + Type + + + Command + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataProperties + + + + + + + + + + + + + + + + + + + + + + + + Description + + + Documentation + + + ServerUrl + + + Title + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiRoute + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiRoute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Description + + + Filter + + + Order + + + Predicate + + + SsoEnabled + + + Tag + + + Title + + + TokenRelay + + + Uri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + AllowCredentials + + + AllowedHeader + + + AllowedMethod + + + AllowedOrigin + + + ExposedHeader + + + MaxAge + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainProperties + + + + + + + + + + + + Thumbprint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayEnvSecrets + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayEnvSecrets + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstance + + + + + + + + + + + + + + + Name + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequests + + + + + + + + + + + + + + + + + + Cpu + + + InstanceCount + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayProperties + + + + + + + + + + + + + + + + + + + + + + + + ApmType + + + HttpsOnly + + + ProvisioningState + + + Public + + + Url + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesProperties + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecrets + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecrets + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequests + + + + + + + + + + + + + + + Cpu + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiProperties + + + + + + + + + + + + Uri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + AppResourceId + + + Filter + + + Predicate + + + Protocol + + + ProvisioningState + + + SsoEnabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepository + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepository + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HostKey + + + HostKeyAlgorithm + + + Label + + + Name + + + Password + + + Pattern + + + PrivateKey + + + SearchPath + + + StrictHostKeyChecking + + + Uri + + + Username + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.HttpGetAction + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.HttpGetAction + + + + + + + + + + + + + + + + + + Type + + + Path + + + Scheme + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredential + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredential + + + + + + + + + + + + + + + Password + + + Username + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfig + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfig + + + + + + + + + + + + ReadTimeoutInSecond + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettings + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettings + + + + + + + + + + + + + + + + + + + + + + + + BackendProtocol + + + ReadTimeoutInSecond + + + SendTimeoutInSecond + + + SessionAffinity + + + SessionCookieMaxAge + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuth + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuth + + + + + + + + + + + + Certificate + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.JarUploadedUserSourceInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.JarUploadedUserSourceInfo + + + + + + + + + + + + + + + + + + + + + + + + RelativePath + + + Type + + + Version + + + JvmOption + + + RuntimeVersion + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.KeyVaultCertificateProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.KeyVaultCertificateProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActivateDate + + + DnsName + + + ExpirationDate + + + IssuedDate + + + Issuer + + + ProvisioningState + + + SubjectName + + + Thumbprint + + + Type + + + CertVersion + + + ExcludePrivateKey + + + KeyVaultCertName + + + VaultUri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LoadedCertificate + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LoadedCertificate + + + + + + + + + + + + + + + LoadTrustStore + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogFileUrlResponse + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogFileUrlResponse + + + + + + + + + + + + Url + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecification + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecification + + + + + + + + + + + + + + + + + + BlobDuration + + + DisplayName + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ManagedIdentityProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ManagedIdentityProperties + + + + + + + + + + + + + + + + + + PrincipalId + + + TenantId + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResource + + + + + + + + + + + + + + + + + + Plan + + + Product + + + Publisher + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricDimension + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricDimension + + + + + + + + + + + + + + + + + + DisplayName + + + Name + + + ToBeExportedForShoebox + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecification + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AggregationType + + + Category + + + DisplayDescription + + + DisplayName + + + FillGapWithZero + + + Name + + + SourceMdmNamespace + + + SupportedAggregationType + + + SupportedTimeGrainType + + + Unit + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingProperties + + + + + + + + + + + + + + + + + + + + + AppInsightsInstrumentationKey + + + AppInsightsSamplingRate + + + ProvisioningState + + + TraceEnabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NameAvailability + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NameAvailability + + + + + + + + + + + + + + + + + + Message + + + NameAvailable + + + Reason + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NameAvailabilityParameters + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NameAvailabilityParameters + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetCoreZipUploadedUserSourceInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetCoreZipUploadedUserSourceInfo + + + + + + + + + + + + + + + + + + + + + + + + RelativePath + + + Type + + + Version + + + NetCoreMainEntryPath + + + RuntimeVersion + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfile + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfile + + + + + + + + + + + + + + + + + + + + + + + + + + + AppNetworkResourceGroup + + + AppSubnetId + + + OutboundType + + + ServiceCidr + + + ServiceRuntimeNetworkResourceGroup + + + ServiceRuntimeSubnetId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPs + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPs + + + + + + + + + + + + PublicIP + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDetail + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDetail + + + + + + + + + + + + + + + + + + + + + ActionType + + + IsDataAction + + + Name + + + Origin + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDisplay + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDisplay + + + + + + + + + + + + + + + + + + + + + Description + + + Operation + + + Provider + + + Resource + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDisk + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDisk + + + + + + + + + + + + + + + + + + MountPath + + + SizeInGb + + + UsedInGb + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + AcceleratorTag + + + Description + + + DisplayName + + + IconUrl + + + ProvisioningState + + + State + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe + + + + + + + + + + + + + + + + + + + + + + + + + + + DisableProbe + + + FailureThreshold + + + InitialDelaySecond + + + PeriodSecond + + + SuccessThreshold + + + TimeoutSecond + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction + + + + + + + + + + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProxyResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProxyResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RegenerateTestKeyRequestPayload + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RegenerateTestKeyRequestPayload + + + + + + + + + + + + KeyType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebugging + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebugging + + + + + + + + + + + + + + + Enabled + + + Port + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebuggingPayload + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebuggingPayload + + + + + + + + + + + + Port + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTraffic + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTraffic + + + + + + + + + + + + + + + + + + + + + + + + Direction + + + Fqdn + + + IP + + + Port + + + Protocol + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceRequests + + + + + + + + + + + + + + + Cpu + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSku + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSku + + + + + + + + + + + + + + + + + + + + + Location + + + Name + + + ResourceType + + + Tier + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuCapabilities + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuCapabilities + + + + + + + + + + + + + + + Name + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuLocationInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuLocationInfo + + + + + + + + + + + + + + + Location + + + Zone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionInfo + + + + + + + + + + + + + + + Location + + + Zone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictions + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictions + + + + + + + + + + + + + + + + + + ReasonCode + + + Type + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuZoneDetails + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuZoneDetails + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceUploadDefinition + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceUploadDefinition + + + + + + + + + + + + + + + RelativePath + + + UploadUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryInstance + + + + + + + + + + + + + + + Name + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequests + + + + + + + + + + + + + + + + + + Cpu + + + InstanceCount + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResourceList + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResourceList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddons + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddons + + + + + + + + + + + + LogStreamPublicEndpoint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku + + + + + + + + + + + + + + + + + + Capacity + + + Name + + + Tier + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuCapacity + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuCapacity + + + + + + + + + + + + + + + + + + + + + Default + + + Maximum + + + Minimum + + + ScaleType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SourceUploadedUserSourceInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SourceUploadedUserSourceInfo + + + + + + + + + + + + + + + + + + + + + + + + RelativePath + + + Type + + + Version + + + ArtifactSelector + + + RuntimeVersion + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoProperties + + + + + + + + + + + + + + + + + + + + + ClientId + + + ClientSecret + + + IssuerUri + + + Scope + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackProperties + + + + + + + + + + + + + + + Id + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageAccount + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageAccount + + + + + + + + + + + + + + + + + + StorageType + + + AccountKey + + + AccountName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageProperties + + + + + + + + + + + + StorageType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourceProperties + + + + + + + + + + + + BuildpackId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpacksCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpacksCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedRuntimeVersion + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedRuntimeVersion + + + + + + + + + + + + + + + + + + Platform + + + Value + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourceProperties + + + + + + + + + + + + + + + StackId + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStacksCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStacksCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemData + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemData + + + + + + + + + + + + + + + + + + + + + + + + + + + CreatedAt + + + CreatedBy + + + CreatedByType + + + LastModifiedAt + + + LastModifiedBy + + + LastModifiedByType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TcpSocketAction + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TcpSocketAction + + + + + + + + + + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDisk + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDisk + + + + + + + + + + + + + + + MountPath + + + SizeInGb + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TestKeys + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TestKeys + + + + + + + + + + + + + + + + + + + + + + + + Enabled + + + PrimaryKey + + + PrimaryTestEndpoint + + + SecondaryKey + + + SecondaryTestEndpoint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + SystemDataCreatedAt + + + SystemDataCreatedBy + + + SystemDataCreatedByType + + + SystemDataLastModifiedAt + + + SystemDataLastModifiedBy + + + SystemDataLastModifiedByType + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResourceTags + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResourceTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResult + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResult + + + + + + + + + + + + Id + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UploadedUserSourceInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UploadedUserSourceInfo + + + + + + + + + + + + + + + + + + Type + + + Version + + + RelativePath + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentity + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentity + + + + + + + + + + + + + + + ClientId + + + PrincipalId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo + + + + + + + + + + + + + + + Type + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ValidationMessages + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ValidationMessages + + + + + + + + + + + + + + + Message + + + Name + + + + + + + + \ No newline at end of file diff --git a/swaggerci/appplatform/Az.AppPlatform.nuspec b/swaggerci/appplatform/Az.AppPlatform.nuspec new file mode 100644 index 000000000000..e88ab8ed831d --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.nuspec @@ -0,0 +1,32 @@ + + + + Az.AppPlatform + 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/appplatform/Az.AppPlatform.psd1 b/swaggerci/appplatform/Az.AppPlatform.psd1 new file mode 100644 index 000000000000..4a2de8612c6c --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.psd1 @@ -0,0 +1,24 @@ +@{ + GUID = 'ed3f0564-7697-47f5-a997-e5988e5e1ca0' + RootModule = './Az.AppPlatform.psm1' + ModuleVersion = '0.1.0' + CompatiblePSEditions = 'Core', 'Desktop' + Author = 'Microsoft Corporation' + CompanyName = 'Microsoft Corporation' + Copyright = 'Microsoft Corporation. All rights reserved.' + Description = 'Microsoft Azure PowerShell: AppPlatform cmdlets' + PowerShellVersion = '5.1' + DotNetFrameworkVersion = '4.7.2' + RequiredAssemblies = './bin/Az.AppPlatform.private.dll' + FormatsToProcess = './Az.AppPlatform.format.ps1xml' + FunctionsToExport = 'Disable-AzAppPlatformDeploymentRemoteDebugging', 'Disable-AzAppPlatformPredefinedAccelerator', 'Disable-AzAppPlatformServiceTestEndpoint', 'Enable-AzAppPlatformDeploymentRemoteDebugging', 'Enable-AzAppPlatformPredefinedAccelerator', 'Enable-AzAppPlatformServiceTestEndpoint', 'Get-AzAppPlatformApiPortal', 'Get-AzAppPlatformApiPortalCustomDomain', 'Get-AzAppPlatformApp', 'Get-AzAppPlatformApplicationAccelerator', 'Get-AzAppPlatformApplicationLiveView', 'Get-AzAppPlatformAppResourceUploadUrl', 'Get-AzAppPlatformBinding', 'Get-AzAppPlatformBuildpackBinding', 'Get-AzAppPlatformBuildService', 'Get-AzAppPlatformBuildServiceAgentPool', 'Get-AzAppPlatformBuildServiceBuild', 'Get-AzAppPlatformBuildServiceBuilder', 'Get-AzAppPlatformBuildServiceBuilderDeployment', 'Get-AzAppPlatformBuildServiceBuildResult', 'Get-AzAppPlatformBuildServiceBuildResultLog', 'Get-AzAppPlatformBuildServiceResourceUploadUrl', 'Get-AzAppPlatformBuildServiceSupportedBuildpack', 'Get-AzAppPlatformBuildServiceSupportedStack', 'Get-AzAppPlatformCertificate', 'Get-AzAppPlatformConfigServer', 'Get-AzAppPlatformConfigurationService', 'Get-AzAppPlatformCustomDomain', 'Get-AzAppPlatformCustomizedAccelerator', 'Get-AzAppPlatformDeployment', 'Get-AzAppPlatformDeploymentLogFileUrl', 'Get-AzAppPlatformDeploymentRemoteDebuggingConfig', 'Get-AzAppPlatformDevToolPortal', 'Get-AzAppPlatformGateway', 'Get-AzAppPlatformGatewayCustomDomain', 'Get-AzAppPlatformGatewayEnvSecret', 'Get-AzAppPlatformGatewayRouteConfig', 'Get-AzAppPlatformMonitoringSetting', 'Get-AzAppPlatformPredefinedAccelerator', 'Get-AzAppPlatformRuntimeVersion', 'Get-AzAppPlatformService', 'Get-AzAppPlatformServiceRegistry', 'Get-AzAppPlatformServiceTestKey', 'Get-AzAppPlatformSku', 'Get-AzAppPlatformStorage', 'New-AzAppPlatformApiPortal', 'New-AzAppPlatformApiPortalCustomDomain', 'New-AzAppPlatformApp', 'New-AzAppPlatformApplicationAccelerator', 'New-AzAppPlatformApplicationLiveView', 'New-AzAppPlatformBinding', 'New-AzAppPlatformBuildpackBinding', 'New-AzAppPlatformBuildServiceBuild', 'New-AzAppPlatformBuildServiceBuilder', 'New-AzAppPlatformCertificate', 'New-AzAppPlatformConfigurationService', 'New-AzAppPlatformCustomDomain', 'New-AzAppPlatformCustomizedAccelerator', 'New-AzAppPlatformDeployment', 'New-AzAppPlatformDeploymentHeapDump', 'New-AzAppPlatformDeploymentThreadDump', 'New-AzAppPlatformDevToolPortal', 'New-AzAppPlatformGateway', 'New-AzAppPlatformGatewayCustomDomain', 'New-AzAppPlatformGatewayRouteConfig', 'New-AzAppPlatformService', 'New-AzAppPlatformServiceTestKey', 'New-AzAppPlatformStorage', 'Remove-AzAppPlatformApiPortal', 'Remove-AzAppPlatformApiPortalCustomDomain', 'Remove-AzAppPlatformApp', 'Remove-AzAppPlatformApplicationAccelerator', 'Remove-AzAppPlatformApplicationLiveView', 'Remove-AzAppPlatformBinding', 'Remove-AzAppPlatformBuildpackBinding', 'Remove-AzAppPlatformBuildServiceBuilder', 'Remove-AzAppPlatformCertificate', 'Remove-AzAppPlatformConfigurationService', 'Remove-AzAppPlatformCustomDomain', 'Remove-AzAppPlatformCustomizedAccelerator', 'Remove-AzAppPlatformDeployment', 'Remove-AzAppPlatformDevToolPortal', 'Remove-AzAppPlatformGateway', 'Remove-AzAppPlatformGatewayCustomDomain', 'Remove-AzAppPlatformGatewayRouteConfig', 'Remove-AzAppPlatformService', 'Remove-AzAppPlatformServiceRegistry', 'Remove-AzAppPlatformStorage', 'Restart-AzAppPlatformDeployment', 'Start-AzAppPlatformDeployment', 'Start-AzAppPlatformDeploymentJfr', 'Start-AzAppPlatformService', 'Stop-AzAppPlatformDeployment', 'Stop-AzAppPlatformService', 'Test-AzAppPlatformApiPortalDomain', 'Test-AzAppPlatformAppDomain', 'Test-AzAppPlatformConfigServer', 'Test-AzAppPlatformConfigurationService', 'Test-AzAppPlatformCustomizedAccelerator', 'Test-AzAppPlatformGatewayDomain', 'Test-AzAppPlatformServiceNameAvailability', 'Update-AzAppPlatformApp', 'Update-AzAppPlatformBinding', 'Update-AzAppPlatformConfigServerPatch', 'Update-AzAppPlatformCustomDomain', 'Update-AzAppPlatformDeployment', 'Update-AzAppPlatformMonitoringSettingPatch', 'Update-AzAppPlatformService', '*' + AliasesToExport = '*' + PrivateData = @{ + PSData = @{ + Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'AppPlatform' + LicenseUri = 'https://aka.ms/azps-license' + ProjectUri = 'https://github.com/Azure/azure-powershell' + ReleaseNotes = '' + } + } +} diff --git a/swaggerci/appplatform/Az.AppPlatform.psm1 b/swaggerci/appplatform/Az.AppPlatform.psm1 new file mode 100644 index 000000000000..d107cb6386d8 --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.psm1 @@ -0,0 +1,107 @@ +# 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.7.5' } | Measure-Object).Count -gt 0 + if($hasAdequateVersion) { + $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru + } + } + } + + if(-not $accountsModule) { + Write-Error "`nThis module requires $accountsName version 2.7.5 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.7.5') -and (-not $localAccounts)) { + Write-Error "`nThis module requires $accountsName version 2.7.5 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.AppPlatform.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module]::Instance + + # Ask for the shared functionality table + $VTable = Register-AzModule + + # Tweaks the pipeline on module load + $instance.OnModuleLoad = $VTable.OnModuleLoad + + # Following two delegates are added for telemetry + $instance.GetTelemetryId = $VTable.GetTelemetryId + $instance.Telemetry = $VTable.Telemetry + + + # 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.AppPlatform.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/appplatform/MSSharedLibKey.snk b/swaggerci/appplatform/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.AppPlatform +This directory contains the PowerShell module for the AppPlatform service. + +--- +## Status +[![Az.AppPlatform](https://img.shields.io/powershellgallery/v/Az.AppPlatform.svg?style=flat-square&label=Az.AppPlatform "Az.AppPlatform")](https://www.powershellgallery.com/packages/Az.AppPlatform/) + +## Info +- Modifiable: yes +- Generated: all +- Committed: yes +- Packaged: yes + +--- +## Detail +This module was primarily generated via [AutoRest](https://github.com/Azure/autorest) using the [PowerShell](https://github.com/Azure/autorest.powershell) extension. + +## Module Requirements +- [Az.Accounts module](https://www.powershellgallery.com/packages/Az.Accounts/), version 2.7.5 or greater + +## Authentication +AutoRest does not generate authentication code for the module. Authentication is handled via Az.Accounts by altering the HTTP payload before it is sent. + +## Development +For information on how to develop for `Az.AppPlatform`, see [how-to.md](how-to.md). + diff --git a/swaggerci/appplatform/build-module.ps1 b/swaggerci/appplatform/build-module.ps1 new file mode 100644 index 000000000000..90ff81a683cb --- /dev/null +++ b/swaggerci/appplatform/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.AppPlatform.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.AppPlatform.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.AppPlatform.psd1' +$guid = Get-ModuleGuid -Psd1Path $psd1 +$moduleName = 'Az.AppPlatform' +$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: AppPlatform 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.AppPlatform.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/appplatform/check-dependencies.ps1 b/swaggerci/appplatform/check-dependencies.ps1 new file mode 100644 index 000000000000..ec3055201a71 --- /dev/null +++ b/swaggerci/appplatform/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) -or ($requiredVersion -and ($module | ForEach-Object { $_.Version } | Where-Object { $_ -eq [System.Version]$requiredVersion } | 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.7.5' +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/appplatform/create-model-cmdlets.ps1 b/swaggerci/appplatform/create-model-cmdlets.ps1 new file mode 100644 index 000000000000..aae4a58ae5d5 --- /dev/null +++ b/swaggerci/appplatform/create-model-cmdlets.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +function CreateModelCmdlet { + + param([string[]]$Models) + + if ($Models.Count -eq 0) + { + return + } + + $ModelCsPath = Join-Path (Join-Path $PSScriptRoot 'generated/api') 'Models' + $ModuleName = 'AppPlatform' + $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') { + # If Type is an array, need to strip [] + $strippedType = $Type.Replace('[]', '') + $completer += "`n [ArgumentCompleter([${strippedType}])]" + } + $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/appplatform/custom/Az.AppPlatform.custom.psm1 b/swaggerci/appplatform/custom/Az.AppPlatform.custom.psm1 new file mode 100644 index 000000000000..7a1ee5be82cd --- /dev/null +++ b/swaggerci/appplatform/custom/Az.AppPlatform.custom.psm1 @@ -0,0 +1,17 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '../bin/Az.AppPlatform.private.dll') + + # Load the internal module + $internalModulePath = Join-Path $PSScriptRoot '../internal/Az.AppPlatform.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/appplatform/custom/README.md b/swaggerci/appplatform/custom/README.md new file mode 100644 index 000000000000..de46a3337259 --- /dev/null +++ b/swaggerci/appplatform/custom/README.md @@ -0,0 +1,41 @@ +# Custom +This directory contains custom implementation for non-generated cmdlets for the `Az.AppPlatform` 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.AppPlatform.custom.psm1`. This file should not be modified. + +## Info +- Modifiable: yes +- Generated: partial +- Committed: yes +- Packaged: yes + +## Details +For `Az.AppPlatform` 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.AppPlatform.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.AppPlatform.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.AppPlatform`. 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.AppPlatform.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.AppPlatform.DoNotExportAttribute` + - Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.AppPlatform`. +- `Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.InternalExportAttribute` + - Used in C# cmdlets to route exported cmdlets to the `../internal`, which are *not exposed* by `Az.AppPlatform`. For more information, see [README.md](../internal/README.md) in the `../internal` folder. +- `Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/docs/Az.AppPlatform.md b/swaggerci/appplatform/docs/Az.AppPlatform.md new file mode 100644 index 000000000000..72cf49749f7a --- /dev/null +++ b/swaggerci/appplatform/docs/Az.AppPlatform.md @@ -0,0 +1,337 @@ +--- +Module Name: Az.AppPlatform +Module Guid: ed3f0564-7697-47f5-a997-e5988e5e1ca0 +Download Help Link: https://docs.microsoft.com/en-us/powershell/module/az.appplatform +Help Version: 1.0.0.0 +Locale: en-US +--- + +# Az.AppPlatform Module +## Description +Microsoft Azure PowerShell: AppPlatform cmdlets + +## Az.AppPlatform Cmdlets +### [Disable-AzAppPlatformDeploymentRemoteDebugging](Disable-AzAppPlatformDeploymentRemoteDebugging.md) +Disable remote debugging. + +### [Disable-AzAppPlatformPredefinedAccelerator](Disable-AzAppPlatformPredefinedAccelerator.md) +Disable predefined accelerator. + +### [Disable-AzAppPlatformServiceTestEndpoint](Disable-AzAppPlatformServiceTestEndpoint.md) +Disable test endpoint functionality for a Service. + +### [Enable-AzAppPlatformDeploymentRemoteDebugging](Enable-AzAppPlatformDeploymentRemoteDebugging.md) +Enable remote debugging. + +### [Enable-AzAppPlatformPredefinedAccelerator](Enable-AzAppPlatformPredefinedAccelerator.md) +Enable predefined accelerator. + +### [Enable-AzAppPlatformServiceTestEndpoint](Enable-AzAppPlatformServiceTestEndpoint.md) +Enable test endpoint functionality for a Service. + +### [Get-AzAppPlatformApiPortal](Get-AzAppPlatformApiPortal.md) +Get the API portal and its properties. + +### [Get-AzAppPlatformApiPortalCustomDomain](Get-AzAppPlatformApiPortalCustomDomain.md) +Get the API portal custom domain. + +### [Get-AzAppPlatformApp](Get-AzAppPlatformApp.md) +Get an App and its properties. + +### [Get-AzAppPlatformApplicationAccelerator](Get-AzAppPlatformApplicationAccelerator.md) +Get the application accelerator. + +### [Get-AzAppPlatformApplicationLiveView](Get-AzAppPlatformApplicationLiveView.md) +Get the Application Live and its properties. + +### [Get-AzAppPlatformAppResourceUploadUrl](Get-AzAppPlatformAppResourceUploadUrl.md) +Get an resource upload URL for an App, which may be artifacts or source archive. + +### [Get-AzAppPlatformBinding](Get-AzAppPlatformBinding.md) +Get a Binding and its properties. + +### [Get-AzAppPlatformBuildpackBinding](Get-AzAppPlatformBuildpackBinding.md) +Get a buildpack binding by name. + +### [Get-AzAppPlatformBuildService](Get-AzAppPlatformBuildService.md) +Get a build service resource. + +### [Get-AzAppPlatformBuildServiceAgentPool](Get-AzAppPlatformBuildServiceAgentPool.md) +Get build service agent pool. + +### [Get-AzAppPlatformBuildServiceBuild](Get-AzAppPlatformBuildServiceBuild.md) +Get a KPack build. + +### [Get-AzAppPlatformBuildServiceBuilder](Get-AzAppPlatformBuildServiceBuilder.md) +Get a KPack builder. + +### [Get-AzAppPlatformBuildServiceBuilderDeployment](Get-AzAppPlatformBuildServiceBuilderDeployment.md) +List deployments that are using the builder. + +### [Get-AzAppPlatformBuildServiceBuildResult](Get-AzAppPlatformBuildServiceBuildResult.md) +Get a KPack build result. + +### [Get-AzAppPlatformBuildServiceBuildResultLog](Get-AzAppPlatformBuildServiceBuildResultLog.md) +Get a KPack build result log download URL. + +### [Get-AzAppPlatformBuildServiceResourceUploadUrl](Get-AzAppPlatformBuildServiceResourceUploadUrl.md) +Get an resource upload URL for build service, which may be artifacts or source archive. + +### [Get-AzAppPlatformBuildServiceSupportedBuildpack](Get-AzAppPlatformBuildServiceSupportedBuildpack.md) +Get the supported buildpack resource. + +### [Get-AzAppPlatformBuildServiceSupportedStack](Get-AzAppPlatformBuildServiceSupportedStack.md) +Get the supported stack resource. + +### [Get-AzAppPlatformCertificate](Get-AzAppPlatformCertificate.md) +Get the certificate resource. + +### [Get-AzAppPlatformConfigServer](Get-AzAppPlatformConfigServer.md) +Get the config server and its properties. + +### [Get-AzAppPlatformConfigurationService](Get-AzAppPlatformConfigurationService.md) +Get the Application Configuration Service and its properties. + +### [Get-AzAppPlatformCustomDomain](Get-AzAppPlatformCustomDomain.md) +Get the custom domain of one lifecycle application. + +### [Get-AzAppPlatformCustomizedAccelerator](Get-AzAppPlatformCustomizedAccelerator.md) +Get the customized accelerator. + +### [Get-AzAppPlatformDeployment](Get-AzAppPlatformDeployment.md) +Get a Deployment and its properties. + +### [Get-AzAppPlatformDeploymentLogFileUrl](Get-AzAppPlatformDeploymentLogFileUrl.md) +Get deployment log file URL + +### [Get-AzAppPlatformDeploymentRemoteDebuggingConfig](Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md) +Get remote debugging config. + +### [Get-AzAppPlatformDevToolPortal](Get-AzAppPlatformDevToolPortal.md) +Get the Application Live and its properties. + +### [Get-AzAppPlatformGateway](Get-AzAppPlatformGateway.md) +Get the Spring Cloud Gateway and its properties. + +### [Get-AzAppPlatformGatewayCustomDomain](Get-AzAppPlatformGatewayCustomDomain.md) +Get the Spring Cloud Gateway custom domain. + +### [Get-AzAppPlatformGatewayEnvSecret](Get-AzAppPlatformGatewayEnvSecret.md) +List sensitive environment variables of Spring Cloud Gateway. + +### [Get-AzAppPlatformGatewayRouteConfig](Get-AzAppPlatformGatewayRouteConfig.md) +Get the Spring Cloud Gateway route configs. + +### [Get-AzAppPlatformMonitoringSetting](Get-AzAppPlatformMonitoringSetting.md) +Get the Monitoring Setting and its properties. + +### [Get-AzAppPlatformPredefinedAccelerator](Get-AzAppPlatformPredefinedAccelerator.md) +Get the predefined accelerator. + +### [Get-AzAppPlatformRuntimeVersion](Get-AzAppPlatformRuntimeVersion.md) +Lists all of the available runtime versions supported by Microsoft.AppPlatform provider. + +### [Get-AzAppPlatformService](Get-AzAppPlatformService.md) +Get a Service and its properties. + +### [Get-AzAppPlatformServiceRegistry](Get-AzAppPlatformServiceRegistry.md) +Get the Service Registry and its properties. + +### [Get-AzAppPlatformServiceTestKey](Get-AzAppPlatformServiceTestKey.md) +List test keys for a Service. + +### [Get-AzAppPlatformSku](Get-AzAppPlatformSku.md) +Lists all of the available skus of the Microsoft.AppPlatform provider. + +### [Get-AzAppPlatformStorage](Get-AzAppPlatformStorage.md) +Get the storage resource. + +### [New-AzAppPlatformApiPortal](New-AzAppPlatformApiPortal.md) +Create the default API portal or update the existing API portal. + +### [New-AzAppPlatformApiPortalCustomDomain](New-AzAppPlatformApiPortalCustomDomain.md) +Create or update the API portal custom domain. + +### [New-AzAppPlatformApp](New-AzAppPlatformApp.md) +Create a new App or update an exiting App. + +### [New-AzAppPlatformApplicationAccelerator](New-AzAppPlatformApplicationAccelerator.md) +Create or update the application accelerator. + +### [New-AzAppPlatformApplicationLiveView](New-AzAppPlatformApplicationLiveView.md) +Create the default Application Live View or update the existing Application Live View. + +### [New-AzAppPlatformBinding](New-AzAppPlatformBinding.md) +Create a new Binding or update an exiting Binding. + +### [New-AzAppPlatformBuildpackBinding](New-AzAppPlatformBuildpackBinding.md) +Create or update a buildpack binding. + +### [New-AzAppPlatformBuildServiceBuild](New-AzAppPlatformBuildServiceBuild.md) +Create or update a KPack build. + +### [New-AzAppPlatformBuildServiceBuilder](New-AzAppPlatformBuildServiceBuilder.md) +Create or update a KPack builder. + +### [New-AzAppPlatformCertificate](New-AzAppPlatformCertificate.md) +Create or update certificate resource. + +### [New-AzAppPlatformConfigurationService](New-AzAppPlatformConfigurationService.md) +Create the default Application Configuration Service or update the existing Application Configuration Service. + +### [New-AzAppPlatformCustomDomain](New-AzAppPlatformCustomDomain.md) +Create or update custom domain of one lifecycle application. + +### [New-AzAppPlatformCustomizedAccelerator](New-AzAppPlatformCustomizedAccelerator.md) +Create or update the customized accelerator. + +### [New-AzAppPlatformDeployment](New-AzAppPlatformDeployment.md) +Create a new Deployment or update an exiting Deployment. + +### [New-AzAppPlatformDeploymentHeapDump](New-AzAppPlatformDeploymentHeapDump.md) +Generate Heap Dump + +### [New-AzAppPlatformDeploymentThreadDump](New-AzAppPlatformDeploymentThreadDump.md) +Generate Thread Dump + +### [New-AzAppPlatformDevToolPortal](New-AzAppPlatformDevToolPortal.md) +Create the default Dev Tool Portal or update the existing Dev Tool Portal. + +### [New-AzAppPlatformGateway](New-AzAppPlatformGateway.md) +Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. + +### [New-AzAppPlatformGatewayCustomDomain](New-AzAppPlatformGatewayCustomDomain.md) +Create or update the Spring Cloud Gateway custom domain. + +### [New-AzAppPlatformGatewayRouteConfig](New-AzAppPlatformGatewayRouteConfig.md) +Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. + +### [New-AzAppPlatformService](New-AzAppPlatformService.md) +Create a new Service or update an exiting Service. + +### [New-AzAppPlatformServiceTestKey](New-AzAppPlatformServiceTestKey.md) +Regenerate a test key for a Service. + +### [New-AzAppPlatformStorage](New-AzAppPlatformStorage.md) +Create or update storage resource. + +### [Remove-AzAppPlatformApiPortal](Remove-AzAppPlatformApiPortal.md) +Delete the default API portal. + +### [Remove-AzAppPlatformApiPortalCustomDomain](Remove-AzAppPlatformApiPortalCustomDomain.md) +Delete the API portal custom domain. + +### [Remove-AzAppPlatformApp](Remove-AzAppPlatformApp.md) +Operation to delete an App. + +### [Remove-AzAppPlatformApplicationAccelerator](Remove-AzAppPlatformApplicationAccelerator.md) +Delete the application accelerator. + +### [Remove-AzAppPlatformApplicationLiveView](Remove-AzAppPlatformApplicationLiveView.md) +Disable the default Application Live View. + +### [Remove-AzAppPlatformBinding](Remove-AzAppPlatformBinding.md) +Operation to delete a Binding. + +### [Remove-AzAppPlatformBuildpackBinding](Remove-AzAppPlatformBuildpackBinding.md) +Operation to delete a Buildpack Binding + +### [Remove-AzAppPlatformBuildServiceBuilder](Remove-AzAppPlatformBuildServiceBuilder.md) +Delete a KPack builder. + +### [Remove-AzAppPlatformCertificate](Remove-AzAppPlatformCertificate.md) +Delete the certificate resource. + +### [Remove-AzAppPlatformConfigurationService](Remove-AzAppPlatformConfigurationService.md) +Disable the default Application Configuration Service. + +### [Remove-AzAppPlatformCustomDomain](Remove-AzAppPlatformCustomDomain.md) +Delete the custom domain of one lifecycle application. + +### [Remove-AzAppPlatformCustomizedAccelerator](Remove-AzAppPlatformCustomizedAccelerator.md) +Delete the customized accelerator. + +### [Remove-AzAppPlatformDeployment](Remove-AzAppPlatformDeployment.md) +Operation to delete a Deployment. + +### [Remove-AzAppPlatformDevToolPortal](Remove-AzAppPlatformDevToolPortal.md) +Disable the default Dev Tool Portal. + +### [Remove-AzAppPlatformGateway](Remove-AzAppPlatformGateway.md) +Disable the default Spring Cloud Gateway. + +### [Remove-AzAppPlatformGatewayCustomDomain](Remove-AzAppPlatformGatewayCustomDomain.md) +Delete the Spring Cloud Gateway custom domain. + +### [Remove-AzAppPlatformGatewayRouteConfig](Remove-AzAppPlatformGatewayRouteConfig.md) +Delete the Spring Cloud Gateway route config. + +### [Remove-AzAppPlatformService](Remove-AzAppPlatformService.md) +Operation to delete a Service. + +### [Remove-AzAppPlatformServiceRegistry](Remove-AzAppPlatformServiceRegistry.md) +Disable the default Service Registry. + +### [Remove-AzAppPlatformStorage](Remove-AzAppPlatformStorage.md) +Delete the storage resource. + +### [Restart-AzAppPlatformDeployment](Restart-AzAppPlatformDeployment.md) +Restart the deployment. + +### [Start-AzAppPlatformDeployment](Start-AzAppPlatformDeployment.md) +Start the deployment. + +### [Start-AzAppPlatformDeploymentJfr](Start-AzAppPlatformDeploymentJfr.md) +Start JFR + +### [Start-AzAppPlatformService](Start-AzAppPlatformService.md) +Start a Service. + +### [Stop-AzAppPlatformDeployment](Stop-AzAppPlatformDeployment.md) +Stop the deployment. + +### [Stop-AzAppPlatformService](Stop-AzAppPlatformService.md) +Stop a Service. + +### [Test-AzAppPlatformApiPortalDomain](Test-AzAppPlatformApiPortalDomain.md) +Check the domains are valid as well as not in use. + +### [Test-AzAppPlatformAppDomain](Test-AzAppPlatformAppDomain.md) +Check the resource name is valid as well as not in use. + +### [Test-AzAppPlatformConfigServer](Test-AzAppPlatformConfigServer.md) +Check if the config server settings are valid. + +### [Test-AzAppPlatformConfigurationService](Test-AzAppPlatformConfigurationService.md) +Check if the Application Configuration Service settings are valid. + +### [Test-AzAppPlatformCustomizedAccelerator](Test-AzAppPlatformCustomizedAccelerator.md) +Check the customized accelerator are valid. + +### [Test-AzAppPlatformGatewayDomain](Test-AzAppPlatformGatewayDomain.md) +Check the domains are valid as well as not in use. + +### [Test-AzAppPlatformServiceNameAvailability](Test-AzAppPlatformServiceNameAvailability.md) +Checks that the resource name is valid and is not already in use. + +### [Update-AzAppPlatformApp](Update-AzAppPlatformApp.md) +Operation to update an exiting App. + +### [Update-AzAppPlatformBinding](Update-AzAppPlatformBinding.md) +Operation to update an exiting Binding. + +### [Update-AzAppPlatformConfigServerPatch](Update-AzAppPlatformConfigServerPatch.md) +Update the config server. + +### [Update-AzAppPlatformCustomDomain](Update-AzAppPlatformCustomDomain.md) +Update custom domain of one lifecycle application. + +### [Update-AzAppPlatformDeployment](Update-AzAppPlatformDeployment.md) +Operation to update an exiting Deployment. + +### [Update-AzAppPlatformMonitoringSettingPatch](Update-AzAppPlatformMonitoringSettingPatch.md) +Update the Monitoring Setting. + +### [Update-AzAppPlatformService](Update-AzAppPlatformService.md) +Operation to update an exiting Service. + diff --git a/swaggerci/appplatform/docs/Disable-AzAppPlatformDeploymentRemoteDebugging.md b/swaggerci/appplatform/docs/Disable-AzAppPlatformDeploymentRemoteDebugging.md new file mode 100644 index 000000000000..e664880dfabf --- /dev/null +++ b/swaggerci/appplatform/docs/Disable-AzAppPlatformDeploymentRemoteDebugging.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/disable-azappplatformdeploymentremotedebugging +schema: 2.0.0 +--- + +# Disable-AzAppPlatformDeploymentRemoteDebugging + +## SYNOPSIS +Disable remote debugging. + +## SYNTAX + +### Disable (Default) +``` +Disable-AzAppPlatformDeploymentRemoteDebugging -AppName -DeploymentName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### DisableViaIdentity +``` +Disable-AzAppPlatformDeploymentRemoteDebugging -InputObject + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disable remote debugging. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +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 +``` + +### -DeploymentName +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DisableViaIdentity +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Disable +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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Disable-AzAppPlatformPredefinedAccelerator.md b/swaggerci/appplatform/docs/Disable-AzAppPlatformPredefinedAccelerator.md new file mode 100644 index 000000000000..cac407683cce --- /dev/null +++ b/swaggerci/appplatform/docs/Disable-AzAppPlatformPredefinedAccelerator.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/disable-azappplatformpredefinedaccelerator +schema: 2.0.0 +--- + +# Disable-AzAppPlatformPredefinedAccelerator + +## SYNOPSIS +Disable predefined accelerator. + +## SYNTAX + +### Disable (Default) +``` +Disable-AzAppPlatformPredefinedAccelerator -ApplicationAcceleratorName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DisableViaIdentity +``` +Disable-AzAppPlatformPredefinedAccelerator -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disable predefined accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationAcceleratorName +The name of the application accelerator. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +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 +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DisableViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the predefined accelerator. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: PredefinedAcceleratorName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Disable +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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Disable-AzAppPlatformServiceTestEndpoint.md b/swaggerci/appplatform/docs/Disable-AzAppPlatformServiceTestEndpoint.md new file mode 100644 index 000000000000..103f18a64d47 --- /dev/null +++ b/swaggerci/appplatform/docs/Disable-AzAppPlatformServiceTestEndpoint.md @@ -0,0 +1,232 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/disable-azappplatformservicetestendpoint +schema: 2.0.0 +--- + +# Disable-AzAppPlatformServiceTestEndpoint + +## SYNOPSIS +Disable test endpoint functionality for a Service. + +## SYNTAX + +### Disable (Default) +``` +Disable-AzAppPlatformServiceTestEndpoint -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DisableViaIdentity +``` +Disable-AzAppPlatformServiceTestEndpoint -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disable test endpoint functionality for a Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DisableViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Disable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Disable +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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Enable-AzAppPlatformDeploymentRemoteDebugging.md b/swaggerci/appplatform/docs/Enable-AzAppPlatformDeploymentRemoteDebugging.md new file mode 100644 index 000000000000..465e872f3004 --- /dev/null +++ b/swaggerci/appplatform/docs/Enable-AzAppPlatformDeploymentRemoteDebugging.md @@ -0,0 +1,329 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/enable-azappplatformdeploymentremotedebugging +schema: 2.0.0 +--- + +# Enable-AzAppPlatformDeploymentRemoteDebugging + +## SYNOPSIS +Enable remote debugging. + +## SYNTAX + +### EnableExpanded (Default) +``` +Enable-AzAppPlatformDeploymentRemoteDebugging -AppName -DeploymentName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-Port ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### Enable +``` +Enable-AzAppPlatformDeploymentRemoteDebugging -AppName -DeploymentName + -ResourceGroupName -ServiceName -RemoteDebuggingPayload + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +### EnableViaIdentity +``` +Enable-AzAppPlatformDeploymentRemoteDebugging -InputObject + -RemoteDebuggingPayload [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] + [-WhatIf] [] +``` + +### EnableViaIdentityExpanded +``` +Enable-AzAppPlatformDeploymentRemoteDebugging -InputObject [-Port ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Enable remote debugging. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Enable, EnableExpanded +Aliases: + +Required: True +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 +``` + +### -DeploymentName +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Enable, EnableExpanded +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: EnableViaIdentity, EnableViaIdentityExpanded +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 +``` + +### -Port +Application debugging port. + +```yaml +Type: System.Int32 +Parameter Sets: EnableExpanded, EnableViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RemoteDebuggingPayload +Remote debugging payload. +To construct, see NOTES section for REMOTEDEBUGGINGPAYLOAD properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload +Parameter Sets: Enable, EnableViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Enable, EnableExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Enable, EnableExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Enable, EnableExpanded +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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +`REMOTEDEBUGGINGPAYLOAD `: Remote debugging payload. + - `[Port ]`: Application debugging port. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Enable-AzAppPlatformPredefinedAccelerator.md b/swaggerci/appplatform/docs/Enable-AzAppPlatformPredefinedAccelerator.md new file mode 100644 index 000000000000..335367f244ad --- /dev/null +++ b/swaggerci/appplatform/docs/Enable-AzAppPlatformPredefinedAccelerator.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/enable-azappplatformpredefinedaccelerator +schema: 2.0.0 +--- + +# Enable-AzAppPlatformPredefinedAccelerator + +## SYNOPSIS +Enable predefined accelerator. + +## SYNTAX + +### Enable (Default) +``` +Enable-AzAppPlatformPredefinedAccelerator -ApplicationAcceleratorName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### EnableViaIdentity +``` +Enable-AzAppPlatformPredefinedAccelerator -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Enable predefined accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationAcceleratorName +The name of the application accelerator. + +```yaml +Type: System.String +Parameter Sets: Enable +Aliases: + +Required: True +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 +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: EnableViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the predefined accelerator. + +```yaml +Type: System.String +Parameter Sets: Enable +Aliases: PredefinedAcceleratorName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Enable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Enable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Enable +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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Enable-AzAppPlatformServiceTestEndpoint.md b/swaggerci/appplatform/docs/Enable-AzAppPlatformServiceTestEndpoint.md new file mode 100644 index 000000000000..f46a2e710f70 --- /dev/null +++ b/swaggerci/appplatform/docs/Enable-AzAppPlatformServiceTestEndpoint.md @@ -0,0 +1,217 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/enable-azappplatformservicetestendpoint +schema: 2.0.0 +--- + +# Enable-AzAppPlatformServiceTestEndpoint + +## SYNOPSIS +Enable test endpoint functionality for a Service. + +## SYNTAX + +### Enable (Default) +``` +Enable-AzAppPlatformServiceTestEndpoint -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### EnableViaIdentity +``` +Enable-AzAppPlatformServiceTestEndpoint -InputObject [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Enable test endpoint functionality for a Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: EnableViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Enable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Enable +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Enable +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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformApiPortal.md b/swaggerci/appplatform/docs/Get-AzAppPlatformApiPortal.md new file mode 100644 index 000000000000..1e5e1f2b507e --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformApiPortal.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformapiportal +schema: 2.0.0 +--- + +# Get-AzAppPlatformApiPortal + +## SYNOPSIS +Get the API portal and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformApiPortal -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformApiPortal -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformApiPortal -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the API portal and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of API portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ApiPortalName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformApiPortalCustomDomain.md b/swaggerci/appplatform/docs/Get-AzAppPlatformApiPortalCustomDomain.md new file mode 100644 index 000000000000..9c130e901854 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformApiPortalCustomDomain.md @@ -0,0 +1,223 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformapiportalcustomdomain +schema: 2.0.0 +--- + +# Get-AzAppPlatformApiPortalCustomDomain + +## SYNOPSIS +Get the API portal custom domain. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformApiPortalCustomDomain -ApiPortalName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformApiPortalCustomDomain -ApiPortalName -DomainName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformApiPortalCustomDomain -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the API portal custom domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApiPortalName +The name of API portal. + +```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 +``` + +### -DomainName +The name of the API portal custom domain. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformApp.md b/swaggerci/appplatform/docs/Get-AzAppPlatformApp.md new file mode 100644 index 000000000000..fcd3785f40bc --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformApp.md @@ -0,0 +1,222 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformapp +schema: 2.0.0 +--- + +# Get-AzAppPlatformApp + +## SYNOPSIS +Get an App and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformApp -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformApp -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-SyncStatus ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformApp -InputObject [-SyncStatus ] [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get an App and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 App resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: AppName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -SyncStatus +Indicates whether sync status + +```yaml +Type: System.String +Parameter Sets: Get, GetViaIdentity +Aliases: + +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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformAppResourceUploadUrl.md b/swaggerci/appplatform/docs/Get-AzAppPlatformAppResourceUploadUrl.md new file mode 100644 index 000000000000..c43e80e49b7b --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformAppResourceUploadUrl.md @@ -0,0 +1,232 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformappresourceuploadurl +schema: 2.0.0 +--- + +# Get-AzAppPlatformAppResourceUploadUrl + +## SYNOPSIS +Get an resource upload URL for an App, which may be artifacts or source archive. + +## SYNTAX + +### Get (Default) +``` +Get-AzAppPlatformAppResourceUploadUrl -AppName -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformAppResourceUploadUrl -InputObject [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get an resource upload URL for an App, which may be artifacts or source archive. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Get +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformApplicationAccelerator.md b/swaggerci/appplatform/docs/Get-AzAppPlatformApplicationAccelerator.md new file mode 100644 index 000000000000..1619d4bfdc90 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformApplicationAccelerator.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformapplicationaccelerator +schema: 2.0.0 +--- + +# Get-AzAppPlatformApplicationAccelerator + +## SYNOPSIS +Get the application accelerator. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformApplicationAccelerator -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformApplicationAccelerator -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformApplicationAccelerator -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the application accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 application accelerator. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ApplicationAcceleratorName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformApplicationLiveView.md b/swaggerci/appplatform/docs/Get-AzAppPlatformApplicationLiveView.md new file mode 100644 index 000000000000..f73509c34618 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformApplicationLiveView.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformapplicationliveview +schema: 2.0.0 +--- + +# Get-AzAppPlatformApplicationLiveView + +## SYNOPSIS +Get the Application Live and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformApplicationLiveView -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformApplicationLiveView -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformApplicationLiveView -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the Application Live and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Application Live View. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ApplicationLiveViewName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBinding.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBinding.md new file mode 100644 index 000000000000..1e07f77eefef --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBinding.md @@ -0,0 +1,221 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbinding +schema: 2.0.0 +--- + +# Get-AzAppPlatformBinding + +## SYNOPSIS +Get a Binding and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBinding -AppName -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformBinding -AppName -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBinding -InputObject [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a Binding and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +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 Binding resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: BindingName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildService.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildService.md new file mode 100644 index 000000000000..d602709a2ce6 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildService.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservice +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildService + +## SYNOPSIS +Get a build service resource. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBuildService -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformBuildService -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildService -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get a build service resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 build service resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: BuildServiceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceAgentPool.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceAgentPool.md new file mode 100644 index 000000000000..2f11cb069dd7 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceAgentPool.md @@ -0,0 +1,223 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildserviceagentpool +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceAgentPool + +## SYNOPSIS +Get build service agent pool. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBuildServiceAgentPool -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformBuildServiceAgentPool -AgentPoolName -BuildServiceName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildServiceAgentPool -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get build service agent pool. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AgentPoolName +The name of the build service agent pool resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuild.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuild.md new file mode 100644 index 000000000000..d80ac29acc22 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuild.md @@ -0,0 +1,222 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicebuild +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceBuild + +## SYNOPSIS +Get a KPack build. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBuildServiceBuild -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformBuildServiceBuild -BuildName -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildServiceBuild -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get a KPack build. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuildName +The name of the build resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuildResult.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuildResult.md new file mode 100644 index 000000000000..3a8fc12b2bfc --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuildResult.md @@ -0,0 +1,239 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicebuildresult +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceBuildResult + +## SYNOPSIS +Get a KPack build result. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBuildServiceBuildResult -BuildName -BuildServiceName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### Get +``` +Get-AzAppPlatformBuildServiceBuildResult -BuildName -BuildResultName + -BuildServiceName -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildServiceBuildResult -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get a KPack build result. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuildName +The name of the build resource. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildResultName +The name of the build result resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuildResultLog.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuildResultLog.md new file mode 100644 index 000000000000..4521cef0ba6e --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuildResultLog.md @@ -0,0 +1,263 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicebuildresultlog +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceBuildResultLog + +## SYNOPSIS +Get a KPack build result log download URL. + +## SYNTAX + +### Get (Default) +``` +Get-AzAppPlatformBuildServiceBuildResultLog -BuildName -BuildResultName + -BuildServiceName -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildServiceBuildResultLog -InputObject [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get a KPack build result log download URL. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuildName +The name of the build resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildResultName +The name of the build result resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```yaml +Type: System.String +Parameter Sets: Get +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuilder.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuilder.md new file mode 100644 index 000000000000..3783b7e93936 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuilder.md @@ -0,0 +1,223 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicebuilder +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceBuilder + +## SYNOPSIS +Get a KPack builder. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBuildServiceBuilder -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformBuildServiceBuilder -BuilderName -BuildServiceName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildServiceBuilder -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get a KPack builder. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuilderName +The name of the builder resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuilderDeployment.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuilderDeployment.md new file mode 100644 index 000000000000..0639fb42ebfe --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceBuilderDeployment.md @@ -0,0 +1,187 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicebuilderdeployment +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceBuilderDeployment + +## SYNOPSIS +List deployments that are using the builder. + +## SYNTAX + +``` +Get-AzAppPlatformBuildServiceBuilderDeployment -BuilderName -BuildServiceName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +List deployments that are using the builder. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuilderName +The name of the builder resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 + +### System.String + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceResourceUploadUrl.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceResourceUploadUrl.md new file mode 100644 index 000000000000..f8be749fedad --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceResourceUploadUrl.md @@ -0,0 +1,233 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildserviceresourceuploadurl +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceResourceUploadUrl + +## SYNOPSIS +Get an resource upload URL for build service, which may be artifacts or source archive. + +## SYNTAX + +### Get (Default) +``` +Get-AzAppPlatformBuildServiceResourceUploadUrl -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildServiceResourceUploadUrl -InputObject + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get an resource upload URL for build service, which may be artifacts or source archive. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuildServiceName +The name of the build service resource. + +```yaml +Type: System.String +Parameter Sets: Get +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceSupportedBuildpack.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceSupportedBuildpack.md new file mode 100644 index 000000000000..aadd2ad0b74c --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceSupportedBuildpack.md @@ -0,0 +1,225 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicesupportedbuildpack +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceSupportedBuildpack + +## SYNOPSIS +Get the supported buildpack resource. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBuildServiceSupportedBuildpack -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformBuildServiceSupportedBuildpack -BuildpackName -BuildServiceName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildServiceSupportedBuildpack -InputObject + [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the supported buildpack resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuildpackName +The name of the buildpack resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceSupportedStack.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceSupportedStack.md new file mode 100644 index 000000000000..af3e434c36ba --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildServiceSupportedStack.md @@ -0,0 +1,225 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicesupportedstack +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildServiceSupportedStack + +## SYNOPSIS +Get the supported stack resource. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBuildServiceSupportedStack -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformBuildServiceSupportedStack -BuildServiceName -ResourceGroupName + -ServiceName -StackName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildServiceSupportedStack -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the supported stack resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StackName +The name of the stack resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformBuildpackBinding.md b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildpackBinding.md new file mode 100644 index 000000000000..d5424b074046 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBuildpackBinding.md @@ -0,0 +1,238 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildpackbinding +schema: 2.0.0 +--- + +# Get-AzAppPlatformBuildpackBinding + +## SYNOPSIS +Get a buildpack binding by name. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformBuildpackBinding -BuilderName -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformBuildpackBinding -BuilderName -BuildServiceName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformBuildpackBinding -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get a buildpack binding by name. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -BuilderName +The name of the builder resource. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +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 Buildpack Binding Name + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: BuildpackBindingName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformCertificate.md b/swaggerci/appplatform/docs/Get-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..cd07b71f6abc --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformCertificate.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformcertificate +schema: 2.0.0 +--- + +# Get-AzAppPlatformCertificate + +## SYNOPSIS +Get the certificate resource. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformCertificate -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformCertificate -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformCertificate -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the certificate resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 certificate resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: CertificateName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformConfigServer.md b/swaggerci/appplatform/docs/Get-AzAppPlatformConfigServer.md new file mode 100644 index 000000000000..e6b855b6ca92 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformConfigServer.md @@ -0,0 +1,186 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformconfigserver +schema: 2.0.0 +--- + +# Get-AzAppPlatformConfigServer + +## SYNOPSIS +Get the config server and its properties. + +## SYNTAX + +### Get (Default) +``` +Get-AzAppPlatformConfigServer -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformConfigServer -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the config server and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformConfigurationService.md b/swaggerci/appplatform/docs/Get-AzAppPlatformConfigurationService.md new file mode 100644 index 000000000000..58b136cd3eac --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformConfigurationService.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformconfigurationservice +schema: 2.0.0 +--- + +# Get-AzAppPlatformConfigurationService + +## SYNOPSIS +Get the Application Configuration Service and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformConfigurationService -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformConfigurationService -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformConfigurationService -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the Application Configuration Service and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Application Configuration Service. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ConfigurationServiceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/docs/Get-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..a00950456b1d --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformCustomDomain.md @@ -0,0 +1,222 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformcustomdomain +schema: 2.0.0 +--- + +# Get-AzAppPlatformCustomDomain + +## SYNOPSIS +Get the custom domain of one lifecycle application. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformCustomDomain -AppName -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformCustomDomain -AppName -DomainName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformCustomDomain -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the custom domain of one lifecycle application. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```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 +``` + +### -DomainName +The name of the custom domain resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformCustomizedAccelerator.md b/swaggerci/appplatform/docs/Get-AzAppPlatformCustomizedAccelerator.md new file mode 100644 index 000000000000..f8ffcd9c19c4 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformCustomizedAccelerator.md @@ -0,0 +1,223 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformcustomizedaccelerator +schema: 2.0.0 +--- + +# Get-AzAppPlatformCustomizedAccelerator + +## SYNOPSIS +Get the customized accelerator. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformCustomizedAccelerator -ApplicationAcceleratorName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformCustomizedAccelerator -ApplicationAcceleratorName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformCustomizedAccelerator -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the customized accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationAcceleratorName +The name of the application accelerator. + +```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.AppPlatform.Models.IAppPlatformIdentity +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 customized accelerator. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: CustomizedAcceleratorName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformDeployment.md b/swaggerci/appplatform/docs/Get-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..456794cc9df2 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformDeployment.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformdeployment +schema: 2.0.0 +--- + +# Get-AzAppPlatformDeployment + +## SYNOPSIS +Get a Deployment and its properties. + +## SYNTAX + +### List1 (Default) +``` +Get-AzAppPlatformDeployment -ResourceGroupName -ServiceName [-SubscriptionId ] + [-Version ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformDeployment -AppName -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformDeployment -InputObject [-DefaultProfile ] + [] +``` + +### List +``` +Get-AzAppPlatformDeployment -AppName -ResourceGroupName -ServiceName + [-SubscriptionId ] [-Version ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get a Deployment and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +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 Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: DeploymentName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List, List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Get, List, List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the 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 +``` + +### -Version +Version of the deployments to be listed + +```yaml +Type: System.String[] +Parameter Sets: List, List1 +Aliases: + +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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentLogFileUrl.md b/swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentLogFileUrl.md new file mode 100644 index 000000000000..d6ee2b5af276 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentLogFileUrl.md @@ -0,0 +1,263 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformdeploymentlogfileurl +schema: 2.0.0 +--- + +# Get-AzAppPlatformDeploymentLogFileUrl + +## SYNOPSIS +Get deployment log file URL + +## SYNTAX + +### Get (Default) +``` +Get-AzAppPlatformDeploymentLogFileUrl -AppName -DeploymentName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformDeploymentLogFileUrl -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get deployment log file URL + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Get +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 +``` + +### -DeploymentName +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md b/swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md new file mode 100644 index 000000000000..092a523dcb46 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md @@ -0,0 +1,248 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformdeploymentremotedebuggingconfig +schema: 2.0.0 +--- + +# Get-AzAppPlatformDeploymentRemoteDebuggingConfig + +## SYNOPSIS +Get remote debugging config. + +## SYNTAX + +### Get (Default) +``` +Get-AzAppPlatformDeploymentRemoteDebuggingConfig -AppName -DeploymentName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformDeploymentRemoteDebuggingConfig -InputObject + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get remote debugging config. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Get +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 +``` + +### -DeploymentName +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformDevToolPortal.md b/swaggerci/appplatform/docs/Get-AzAppPlatformDevToolPortal.md new file mode 100644 index 000000000000..a0b01f9d9b74 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformDevToolPortal.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformdevtoolportal +schema: 2.0.0 +--- + +# Get-AzAppPlatformDevToolPortal + +## SYNOPSIS +Get the Application Live and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformDevToolPortal -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformDevToolPortal -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformDevToolPortal -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the Application Live and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Dev Tool Portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: DevToolPortalName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformGateway.md b/swaggerci/appplatform/docs/Get-AzAppPlatformGateway.md new file mode 100644 index 000000000000..818420c98ee9 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformGateway.md @@ -0,0 +1,206 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformgateway +schema: 2.0.0 +--- + +# Get-AzAppPlatformGateway + +## SYNOPSIS +Get the Spring Cloud Gateway and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformGateway -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformGateway -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformGateway -InputObject [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the Spring Cloud Gateway and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: GatewayName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayCustomDomain.md b/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayCustomDomain.md new file mode 100644 index 000000000000..008f93cf9dc6 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayCustomDomain.md @@ -0,0 +1,222 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformgatewaycustomdomain +schema: 2.0.0 +--- + +# Get-AzAppPlatformGatewayCustomDomain + +## SYNOPSIS +Get the Spring Cloud Gateway custom domain. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformGatewayCustomDomain -GatewayName -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformGatewayCustomDomain -DomainName -GatewayName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformGatewayCustomDomain -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the Spring Cloud Gateway custom domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -DomainName +The name of the Spring Cloud Gateway custom domain. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GatewayName +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayEnvSecret.md b/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayEnvSecret.md new file mode 100644 index 000000000000..3cf9401945d9 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayEnvSecret.md @@ -0,0 +1,171 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformgatewayenvsecret +schema: 2.0.0 +--- + +# Get-AzAppPlatformGatewayEnvSecret + +## SYNOPSIS +List sensitive environment variables of Spring Cloud Gateway. + +## SYNTAX + +``` +Get-AzAppPlatformGatewayEnvSecret -GatewayName -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +List sensitive environment variables of Spring Cloud Gateway. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -GatewayName +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayRouteConfig.md b/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayRouteConfig.md new file mode 100644 index 000000000000..d3cf1a60d97b --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformGatewayRouteConfig.md @@ -0,0 +1,223 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformgatewayrouteconfig +schema: 2.0.0 +--- + +# Get-AzAppPlatformGatewayRouteConfig + +## SYNOPSIS +Get the Spring Cloud Gateway route configs. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformGatewayRouteConfig -GatewayName -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformGatewayRouteConfig -GatewayName -ResourceGroupName + -RouteConfigName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformGatewayRouteConfig -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the Spring Cloud Gateway route configs. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -GatewayName +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RouteConfigName +The name of the Spring Cloud Gateway route config. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformMonitoringSetting.md b/swaggerci/appplatform/docs/Get-AzAppPlatformMonitoringSetting.md new file mode 100644 index 000000000000..b1f91ffb2206 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformMonitoringSetting.md @@ -0,0 +1,186 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformmonitoringsetting +schema: 2.0.0 +--- + +# Get-AzAppPlatformMonitoringSetting + +## SYNOPSIS +Get the Monitoring Setting and its properties. + +## SYNTAX + +### Get (Default) +``` +Get-AzAppPlatformMonitoringSetting -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformMonitoringSetting -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the Monitoring Setting and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformPredefinedAccelerator.md b/swaggerci/appplatform/docs/Get-AzAppPlatformPredefinedAccelerator.md new file mode 100644 index 000000000000..c4a1a3f92ba8 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformPredefinedAccelerator.md @@ -0,0 +1,223 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformpredefinedaccelerator +schema: 2.0.0 +--- + +# Get-AzAppPlatformPredefinedAccelerator + +## SYNOPSIS +Get the predefined accelerator. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformPredefinedAccelerator -ApplicationAcceleratorName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformPredefinedAccelerator -ApplicationAcceleratorName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformPredefinedAccelerator -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the predefined accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationAcceleratorName +The name of the application accelerator. + +```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.AppPlatform.Models.IAppPlatformIdentity +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 predefined accelerator. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PredefinedAcceleratorName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformRuntimeVersion.md b/swaggerci/appplatform/docs/Get-AzAppPlatformRuntimeVersion.md new file mode 100644 index 000000000000..846c3dba1c83 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformRuntimeVersion.md @@ -0,0 +1,77 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformruntimeversion +schema: 2.0.0 +--- + +# Get-AzAppPlatformRuntimeVersion + +## SYNOPSIS +Lists all of the available runtime versions supported by Microsoft.AppPlatform provider. + +## SYNTAX + +``` +Get-AzAppPlatformRuntimeVersion [-DefaultProfile ] [] +``` + +## DESCRIPTION +Lists all of the available runtime versions supported by Microsoft.AppPlatform provider. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### 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.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformService.md b/swaggerci/appplatform/docs/Get-AzAppPlatformService.md new file mode 100644 index 000000000000..3b56e30af0ec --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformService.md @@ -0,0 +1,196 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformservice +schema: 2.0.0 +--- + +# Get-AzAppPlatformService + +## SYNOPSIS +Get a Service and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformService [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformService -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformService -InputObject [-DefaultProfile ] [] +``` + +### List1 +``` +Get-AzAppPlatformService -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get a Service and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 Service resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ServiceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformServiceRegistry.md b/swaggerci/appplatform/docs/Get-AzAppPlatformServiceRegistry.md new file mode 100644 index 000000000000..dd0be43ccd6b --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformServiceRegistry.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformserviceregistry +schema: 2.0.0 +--- + +# Get-AzAppPlatformServiceRegistry + +## SYNOPSIS +Get the Service Registry and its properties. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformServiceRegistry -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformServiceRegistry -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformServiceRegistry -InputObject [-DefaultProfile ] + [] +``` + +## DESCRIPTION +Get the Service Registry and its properties. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Service Registry. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ServiceRegistryName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformServiceTestKey.md b/swaggerci/appplatform/docs/Get-AzAppPlatformServiceTestKey.md new file mode 100644 index 000000000000..ca154d08bee4 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformServiceTestKey.md @@ -0,0 +1,156 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformservicetestkey +schema: 2.0.0 +--- + +# Get-AzAppPlatformServiceTestKey + +## SYNOPSIS +List test keys for a Service. + +## SYNTAX + +``` +Get-AzAppPlatformServiceTestKey -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +List test keys for a Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.ITestKeys + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformSku.md b/swaggerci/appplatform/docs/Get-AzAppPlatformSku.md new file mode 100644 index 000000000000..2a3ac8b2d042 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformSku.md @@ -0,0 +1,93 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformsku +schema: 2.0.0 +--- + +# Get-AzAppPlatformSku + +## SYNOPSIS +Lists all of the available skus of the Microsoft.AppPlatform provider. + +## SYNTAX + +``` +Get-AzAppPlatformSku [-SubscriptionId ] [-DefaultProfile ] [] +``` + +## DESCRIPTION +Lists all of the available skus of the Microsoft.AppPlatform provider. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IResourceSku + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Get-AzAppPlatformStorage.md b/swaggerci/appplatform/docs/Get-AzAppPlatformStorage.md new file mode 100644 index 000000000000..fbb779118998 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformStorage.md @@ -0,0 +1,206 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformstorage +schema: 2.0.0 +--- + +# Get-AzAppPlatformStorage + +## SYNOPSIS +Get the storage resource. + +## SYNTAX + +### List (Default) +``` +Get-AzAppPlatformStorage -ResourceGroupName -ServiceName [-SubscriptionId ] + [-DefaultProfile ] [] +``` + +### Get +``` +Get-AzAppPlatformStorage -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [] +``` + +### GetViaIdentity +``` +Get-AzAppPlatformStorage -InputObject [-DefaultProfile ] [] +``` + +## DESCRIPTION +Get the storage resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 storage resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: StorageName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformApiPortal.md b/swaggerci/appplatform/docs/New-AzAppPlatformApiPortal.md new file mode 100644 index 000000000000..f9c51a494468 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformApiPortal.md @@ -0,0 +1,369 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapiportal +schema: 2.0.0 +--- + +# New-AzAppPlatformApiPortal + +## SYNOPSIS +Create the default API portal or update the existing API portal. + +## SYNTAX + +``` +New-AzAppPlatformApiPortal -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-GatewayId ] [-HttpsOnly] [-Public] [-SkuCapacity ] + [-SkuName ] [-SkuTier ] [-SourceUrl ] [-SsoPropertyClientId ] + [-SsoPropertyClientSecret ] [-SsoPropertyIssuerUri ] [-SsoPropertyScope ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create the default API portal or update the existing API portal. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -GatewayId +The array of resource Ids of gateway to integrate with API portal. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HttpsOnly +Indicate if only https is allowed. + +```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 +``` + +### -Name +The name of API portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ApiPortalName + +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 +``` + +### -Public +Indicates whether the API portal exposes endpoint. + +```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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +Current capacity of the target resource + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +Tier of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceUrl +Collection of OpenAPI source URL locations. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyClientId +The public identifier for the application + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyClientSecret +The secret known only to the application and the authorization server + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyIssuerUri +The URI of Issuer Identifier + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyScope +It defines the specific actions applications can be allowed to do on a user's behalf + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IApiPortalResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformApiPortalCustomDomain.md b/swaggerci/appplatform/docs/New-AzAppPlatformApiPortalCustomDomain.md new file mode 100644 index 000000000000..e36e3cdcc044 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformApiPortalCustomDomain.md @@ -0,0 +1,232 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapiportalcustomdomain +schema: 2.0.0 +--- + +# New-AzAppPlatformApiPortalCustomDomain + +## SYNOPSIS +Create or update the API portal custom domain. + +## SYNTAX + +``` +New-AzAppPlatformApiPortalCustomDomain -ApiPortalName -DomainName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-Thumbprint ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update the API portal custom domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApiPortalName +The name of API portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +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 +``` + +### -DomainName +The name of the API portal custom domain. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -Thumbprint +The thumbprint of bound certificate. + +```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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformApp.md b/swaggerci/appplatform/docs/New-AzAppPlatformApp.md new file mode 100644 index 000000000000..3d1b7119d269 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformApp.md @@ -0,0 +1,557 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapp +schema: 2.0.0 +--- + +# New-AzAppPlatformApp + +## SYNOPSIS +Create a new App or update an exiting App. + +## SYNTAX + +``` +New-AzAppPlatformApp -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-AddonConfig ] [-ClientAuthCertificate ] + [-CustomPersistentDisk ] [-EnableEndToEndTl] [-HttpsOnly] + [-IdentityPrincipalId ] [-IdentityTenantId ] [-IdentityType ] + [-IdentityUserAssignedIdentity ] [-IngressSettingBackendProtocol ] + [-IngressSettingReadTimeoutInSecond ] [-IngressSettingSendTimeoutInSecond ] + [-IngressSettingSessionAffinity ] [-IngressSettingSessionCookieMaxAge ] + [-LoadedCertificate ] [-Location ] [-PersistentDiskMountPath ] + [-PersistentDiskSizeInGb ] [-Public] [-TemporaryDiskMountPath ] + [-TemporaryDiskSizeInGb ] [-VnetAddonPublicEndpoint] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create a new App or update an exiting App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AddonConfig +Collection of addons + +```yaml +Type: System.Collections.Hashtable +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 +``` + +### -ClientAuthCertificate +Collection of certificate 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 +``` + +### -CustomPersistentDisk +List of custom persistent disks +To construct, see NOTES section for CUSTOMPERSISTENTDISK properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] +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 +``` + +### -EnableEndToEndTl +Indicate if end to end TLS 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 +``` + +### -HttpsOnly +Indicate if only https is allowed. + +```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 +``` + +### -IdentityPrincipalId +Principal Id of system-assigned managed identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +Tenant Id of system-assigned managed identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +Type of the managed identity + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +Properties of user-assigned managed identities + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingBackendProtocol +How ingress should communicate with this app backend service. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingReadTimeoutInSecond +Ingress read time out in seconds. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingSendTimeoutInSecond +Ingress send time out in seconds. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingSessionAffinity +Type of the affinity, set this to Cookie to enable session affinity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingSessionCookieMaxAge +Time in seconds until the cookie expires. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LoadedCertificate +Collection of loaded certificates +To construct, see NOTES section for LOADEDCERTIFICATE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The GEO location of the application, always the same with its parent resource + +```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 App resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: AppName + +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 +``` + +### -PersistentDiskMountPath +Mount path of the persistent disk + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PersistentDiskSizeInGb +Size of the persistent disk in GB + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Public +Indicates whether the App exposes public endpoint + +```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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -TemporaryDiskMountPath +Mount path of the temporary disk + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemporaryDiskSizeInGb +Size of the temporary disk in GB + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetAddonPublicEndpoint +Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + +```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 +``` + +### -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.AppPlatform.Models.Api20221101Preview.IAppResource + +## 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. + + +`CUSTOMPERSISTENTDISK `: List of custom persistent disks + - `StorageId `: The resource id of Azure Spring Apps Storage resource. + - `[CustomPersistentDiskPropertyMountOption ]`: These are the mount options for a persistent disk. + - `[CustomPersistentDiskPropertyMountPath ]`: The mount path of the persistent disk. + - `[CustomPersistentDiskPropertyReadOnly ]`: Indicates whether the persistent disk is a readOnly one. + +`LOADEDCERTIFICATE `: Collection of loaded certificates + - `ResourceId `: Resource Id of loaded certificate + - `[LoadTrustStore ]`: Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformApplicationAccelerator.md b/swaggerci/appplatform/docs/New-AzAppPlatformApplicationAccelerator.md new file mode 100644 index 000000000000..a71405491fef --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformApplicationAccelerator.md @@ -0,0 +1,247 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapplicationaccelerator +schema: 2.0.0 +--- + +# New-AzAppPlatformApplicationAccelerator + +## SYNOPSIS +Create or update the application accelerator. + +## SYNTAX + +``` +New-AzAppPlatformApplicationAccelerator -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-SkuCapacity ] [-SkuName ] [-SkuTier ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update the application accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -Name +The name of the application accelerator. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ApplicationAcceleratorName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +Current capacity of the target resource + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +Tier of the Sku + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformApplicationLiveView.md b/swaggerci/appplatform/docs/New-AzAppPlatformApplicationLiveView.md new file mode 100644 index 000000000000..1302fb7cf29b --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformApplicationLiveView.md @@ -0,0 +1,202 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapplicationliveview +schema: 2.0.0 +--- + +# New-AzAppPlatformApplicationLiveView + +## SYNOPSIS +Create the default Application Live View or update the existing Application Live View. + +## SYNTAX + +``` +New-AzAppPlatformApplicationLiveView -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Create the default Application Live View or update the existing Application Live View. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -Name +The name of Application Live View. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ApplicationLiveViewName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformBinding.md b/swaggerci/appplatform/docs/New-AzAppPlatformBinding.md new file mode 100644 index 000000000000..ddee2fde5c32 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformBinding.md @@ -0,0 +1,262 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbinding +schema: 2.0.0 +--- + +# New-AzAppPlatformBinding + +## SYNOPSIS +Create a new Binding or update an exiting Binding. + +## SYNTAX + +``` +New-AzAppPlatformBinding -AppName -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-BindingParameter ] [-Key ] [-ResourceId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create a new Binding or update an exiting Binding. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +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 +``` + +### -BindingParameter +Binding parameters of the Binding resource + +```yaml +Type: System.Collections.Hashtable +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 +``` + +### -Key +The key of the bound resource + +```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 Binding resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: BindingName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceId +The Azure resource id of the bound resource + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IBindingResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformBuildServiceBuild.md b/swaggerci/appplatform/docs/New-AzAppPlatformBuildServiceBuild.md new file mode 100644 index 000000000000..65efc58a2595 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformBuildServiceBuild.md @@ -0,0 +1,282 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildservicebuild +schema: 2.0.0 +--- + +# New-AzAppPlatformBuildServiceBuild + +## SYNOPSIS +Create or update a KPack build. + +## SYNTAX + +``` +New-AzAppPlatformBuildServiceBuild -BuildName -BuildServiceName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-AgentPool ] [-Builder ] [-Env ] + [-RelativePath ] [-ResourceRequestCpu ] [-ResourceRequestMemory ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update a KPack build. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AgentPool +The resource id of agent pool + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Builder +The resource id of builder to build the source code + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildName +The name of the build resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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 +``` + +### -Env +The environment variables for this build + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RelativePath +The relative path of source code + +```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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceRequestCpu +Optional Cpu allocated to the build resource. +1 core can be represented by 1 or 1000m. +The default value is 1, this should not exceed build service agent pool cpu size. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceRequestMemory +Optional Memory allocated to the build resource. +1 GB can be represented by 1Gi or 1024Mi. +The default value is 2Gi, this should not exceed build service agent pool memory size. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IBuild + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformBuildServiceBuilder.md b/swaggerci/appplatform/docs/New-AzAppPlatformBuildServiceBuilder.md new file mode 100644 index 000000000000..fb319c7d0025 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformBuildServiceBuilder.md @@ -0,0 +1,274 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildservicebuilder +schema: 2.0.0 +--- + +# New-AzAppPlatformBuildServiceBuilder + +## SYNOPSIS +Create or update a KPack builder. + +## SYNTAX + +``` +New-AzAppPlatformBuildServiceBuilder -BuilderName -BuildServiceName + -ResourceGroupName -ServiceName [-SubscriptionId ] + [-BuildpackGroup ] [-StackId ] [-StackVersion ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update a KPack builder. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -BuilderName +The name of the builder resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildpackGroup +Builder buildpack groups. +To construct, see NOTES section for BUILDPACKGROUP properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StackId +Id of the ClusterStack. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -StackVersion +Version of the ClusterStack + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IBuilderResource + +## 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. + + +`BUILDPACKGROUP `: Builder buildpack groups. + - `[Buildpack ]`: Buildpacks in the buildpack group + - `[Id ]`: Id of the buildpack + - `[Name ]`: Buildpack group name + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformBuildpackBinding.md b/swaggerci/appplatform/docs/New-AzAppPlatformBuildpackBinding.md new file mode 100644 index 000000000000..d0c000a04585 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformBuildpackBinding.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildpackbinding +schema: 2.0.0 +--- + +# New-AzAppPlatformBuildpackBinding + +## SYNOPSIS +Create or update a buildpack binding. + +## SYNTAX + +``` +New-AzAppPlatformBuildpackBinding -BuilderName -BuildServiceName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-BindingType ] + [-LaunchProperty ] [-LaunchPropertySecret ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update a buildpack binding. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -BindingType +Buildpack Binding Type + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuilderName +The name of the builder resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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 +``` + +### -LaunchProperty +Non-sensitive properties for launchProperties + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LaunchPropertySecret +Sensitive properties for launchProperties + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the Buildpack Binding Name + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: BuildpackBindingName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformCertificate.md b/swaggerci/appplatform/docs/New-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..ee4f2eec0a3c --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformCertificate.md @@ -0,0 +1,217 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcertificate +schema: 2.0.0 +--- + +# New-AzAppPlatformCertificate + +## SYNOPSIS +Create or update certificate resource. + +## SYNTAX + +``` +New-AzAppPlatformCertificate -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-PropertiesType ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update certificate resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -Name +The name of the certificate resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: CertificateName + +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 +``` + +### -PropertiesType +The type of the certificate source. + +```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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.ICertificateResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformConfigurationService.md b/swaggerci/appplatform/docs/New-AzAppPlatformConfigurationService.md new file mode 100644 index 000000000000..c60644a76797 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformConfigurationService.md @@ -0,0 +1,236 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformconfigurationservice +schema: 2.0.0 +--- + +# New-AzAppPlatformConfigurationService + +## SYNOPSIS +Create the default Application Configuration Service or update the existing Application Configuration Service. + +## SYNTAX + +``` +New-AzAppPlatformConfigurationService -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-GitPropertyRepository ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create the default Application Configuration Service or update the existing Application Configuration Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -GitPropertyRepository +Repositories of Application Configuration Service git property. +To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of Application Configuration Service. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ConfigurationServiceName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + +## 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. + + +`GITPROPERTYREPOSITORY `: Repositories of Application Configuration Service git property. + - `Label `: Label of the repository + - `Name `: Name of the repository + - `Pattern `: Collection of patterns of the repository + - `Uri `: URI of the repository + - `[HostKey ]`: Public sshKey of git repository. + - `[HostKeyAlgorithm ]`: SshKey algorithm of git repository. + - `[Password ]`: Password of git repository basic auth. + - `[PrivateKey ]`: Private sshKey algorithm of git repository. + - `[SearchPath ]`: Searching path of the repository + - `[StrictHostKeyChecking ]`: Strict host key checking or not. + - `[Username ]`: Username of git repository basic auth. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/docs/New-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..0f7c99c0f855 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformCustomDomain.md @@ -0,0 +1,247 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcustomdomain +schema: 2.0.0 +--- + +# New-AzAppPlatformCustomDomain + +## SYNOPSIS +Create or update custom domain of one lifecycle application. + +## SYNTAX + +``` +New-AzAppPlatformCustomDomain -AppName -DomainName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-CertName ] [-Thumbprint ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update custom domain of one lifecycle application. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +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 +``` + +### -CertName +The bound certificate name of domain. + +```yaml +Type: System.String +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 +``` + +### -DomainName +The name of the custom domain resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -Thumbprint +The thumbprint of bound certificate. + +```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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformCustomizedAccelerator.md b/swaggerci/appplatform/docs/New-AzAppPlatformCustomizedAccelerator.md new file mode 100644 index 000000000000..f0c8fc7f6f7e --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformCustomizedAccelerator.md @@ -0,0 +1,416 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcustomizedaccelerator +schema: 2.0.0 +--- + +# New-AzAppPlatformCustomizedAccelerator + +## SYNOPSIS +Create or update the customized accelerator. + +## SYNTAX + +``` +New-AzAppPlatformCustomizedAccelerator -ApplicationAcceleratorName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-AcceleratorTag ] + [-AuthSettingAuthType ] [-Description ] [-DisplayName ] + [-GitRepositoryBranch ] [-GitRepositoryCommit ] [-GitRepositoryGitTag ] + [-GitRepositoryIntervalInSecond ] [-GitRepositoryUrl ] [-IconUrl ] + [-SkuCapacity ] [-SkuName ] [-SkuTier ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update the customized accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AcceleratorTag +. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApplicationAcceleratorName +The name of the application accelerator. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +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 +``` + +### -AuthSettingAuthType +The type of the auth setting. + +```yaml +Type: System.String +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 +``` + +### -Description +. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisplayName +. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryBranch +Git repository branch to be used. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryCommit +Git repository commit to be used. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryGitTag +Git repository tag to be used. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryIntervalInSecond +Interval for checking for updates to Git or image repository. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryUrl +Git repository URL for the accelerator. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconUrl +. + +```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 customized accelerator. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: CustomizedAcceleratorName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +Current capacity of the target resource + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +Tier of the Sku + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformDeployment.md b/swaggerci/appplatform/docs/New-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..810507f9ecf0 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformDeployment.md @@ -0,0 +1,360 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdeployment +schema: 2.0.0 +--- + +# New-AzAppPlatformDeployment + +## SYNOPSIS +Create a new Deployment or update an exiting Deployment. + +## SYNTAX + +``` +New-AzAppPlatformDeployment -AppName -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-Active] [-DeploymentSetting ] [-SkuCapacity ] + [-SkuName ] [-SkuTier ] [-SourceType ] [-SourceVersion ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create a new Deployment or update an exiting Deployment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -Active +Indicates whether the Deployment is active + +```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 +``` + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +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 +``` + +### -DeploymentSetting +Deployment settings of the Deployment +To construct, see NOTES section for DEPLOYMENTSETTING properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: DeploymentName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +Current capacity of the target resource + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +Tier of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceType +Type of the source uploaded + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceVersion +Version of the source + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IDeploymentResource + +## 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. + + +`DEPLOYMENTSETTING `: Deployment settings of the Deployment + - `[AddonConfig ]`: Collection of addons + - `[(Any) ]`: This indicates any property can be added to this object. + - `[ContainerProbeSettingDisableProbe ]`: Indicates whether disable the liveness and readiness probe + - `[EnvironmentVariable ]`: Collection of environment variables + - `[(Any) ]`: This indicates any property can be added to this object. + - `[LivenessProbeActionType ]`: The type of the action to take to perform the health check. + - `[LivenessProbeDisableProbe ]`: Indicate whether the probe is disabled. + - `[LivenessProbeFailureThreshold ]`: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + - `[LivenessProbeInitialDelaySecond ]`: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + - `[LivenessProbePeriodSecond ]`: How often (in seconds) to perform the probe. Minimum value is 1. + - `[LivenessProbeSuccessThreshold ]`: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + - `[LivenessProbeTimeoutSecond ]`: Number of seconds after which the probe times out. Minimum value is 1. + - `[ReadinessProbeActionType ]`: The type of the action to take to perform the health check. + - `[ReadinessProbeDisableProbe ]`: Indicate whether the probe is disabled. + - `[ReadinessProbeFailureThreshold ]`: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + - `[ReadinessProbeInitialDelaySecond ]`: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + - `[ReadinessProbePeriodSecond ]`: How often (in seconds) to perform the probe. Minimum value is 1. + - `[ReadinessProbeSuccessThreshold ]`: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + - `[ReadinessProbeTimeoutSecond ]`: Number of seconds after which the probe times out. Minimum value is 1. + - `[ResourceRequestCpu ]`: Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. + - `[ResourceRequestMemory ]`: Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. + - `[StartupProbeActionType ]`: The type of the action to take to perform the health check. + - `[StartupProbeDisableProbe ]`: Indicate whether the probe is disabled. + - `[StartupProbeFailureThreshold ]`: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + - `[StartupProbeInitialDelaySecond ]`: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + - `[StartupProbePeriodSecond ]`: How often (in seconds) to perform the probe. Minimum value is 1. + - `[StartupProbeSuccessThreshold ]`: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + - `[StartupProbeTimeoutSecond ]`: Number of seconds after which the probe times out. Minimum value is 1. + - `[TerminationGracePeriodSecond ]`: Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformDeploymentHeapDump.md b/swaggerci/appplatform/docs/New-AzAppPlatformDeploymentHeapDump.md new file mode 100644 index 000000000000..920d68e42cc9 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformDeploymentHeapDump.md @@ -0,0 +1,378 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdeploymentheapdump +schema: 2.0.0 +--- + +# New-AzAppPlatformDeploymentHeapDump + +## SYNOPSIS +Generate Heap Dump + +## SYNTAX + +### GenerateExpanded (Default) +``` +New-AzAppPlatformDeploymentHeapDump -AppName -DeploymentName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-AppInstance ] [-Duration ] + [-FilePath ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### Generate +``` +New-AzAppPlatformDeploymentHeapDump -AppName -DeploymentName -ResourceGroupName + -ServiceName -DiagnosticParameter [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GenerateViaIdentity +``` +New-AzAppPlatformDeploymentHeapDump -InputObject + -DiagnosticParameter [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### GenerateViaIdentityExpanded +``` +New-AzAppPlatformDeploymentHeapDump -InputObject [-AppInstance ] + [-Duration ] [-FilePath ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Generate Heap Dump + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppInstance +App instance name + +```yaml +Type: System.String +Parameter Sets: GenerateExpanded, GenerateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +Aliases: + +Required: True +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 +``` + +### -DeploymentName +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DiagnosticParameter +Diagnostic parameters of diagnostic operations +To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +Parameter Sets: Generate, GenerateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Duration +Duration of your JFR. +1 min can be represented by 1m or 60s. + +```yaml +Type: System.String +Parameter Sets: GenerateExpanded, GenerateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath +Your target file path in your own BYOS + +```yaml +Type: System.String +Parameter Sets: GenerateExpanded, GenerateViaIdentityExpanded +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GenerateViaIdentity, GenerateViaIdentityExpanded +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +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.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## 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. + + +`DIAGNOSTICPARAMETER `: Diagnostic parameters of diagnostic operations + - `[AppInstance ]`: App instance name + - `[Duration ]`: Duration of your JFR. 1 min can be represented by 1m or 60s. + - `[FilePath ]`: Your target file path in your own BYOS + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformDeploymentThreadDump.md b/swaggerci/appplatform/docs/New-AzAppPlatformDeploymentThreadDump.md new file mode 100644 index 000000000000..61a8343baf2c --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformDeploymentThreadDump.md @@ -0,0 +1,378 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdeploymentthreaddump +schema: 2.0.0 +--- + +# New-AzAppPlatformDeploymentThreadDump + +## SYNOPSIS +Generate Thread Dump + +## SYNTAX + +### GenerateExpanded (Default) +``` +New-AzAppPlatformDeploymentThreadDump -AppName -DeploymentName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-AppInstance ] [-Duration ] + [-FilePath ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### Generate +``` +New-AzAppPlatformDeploymentThreadDump -AppName -DeploymentName -ResourceGroupName + -ServiceName -DiagnosticParameter [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GenerateViaIdentity +``` +New-AzAppPlatformDeploymentThreadDump -InputObject + -DiagnosticParameter [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### GenerateViaIdentityExpanded +``` +New-AzAppPlatformDeploymentThreadDump -InputObject [-AppInstance ] + [-Duration ] [-FilePath ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Generate Thread Dump + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppInstance +App instance name + +```yaml +Type: System.String +Parameter Sets: GenerateExpanded, GenerateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +Aliases: + +Required: True +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 +``` + +### -DeploymentName +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DiagnosticParameter +Diagnostic parameters of diagnostic operations +To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +Parameter Sets: Generate, GenerateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Duration +Duration of your JFR. +1 min can be represented by 1m or 60s. + +```yaml +Type: System.String +Parameter Sets: GenerateExpanded, GenerateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath +Your target file path in your own BYOS + +```yaml +Type: System.String +Parameter Sets: GenerateExpanded, GenerateViaIdentityExpanded +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: GenerateViaIdentity, GenerateViaIdentityExpanded +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Generate, GenerateExpanded +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.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## 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. + + +`DIAGNOSTICPARAMETER `: Diagnostic parameters of diagnostic operations + - `[AppInstance ]`: App instance name + - `[Duration ]`: Duration of your JFR. 1 min can be represented by 1m or 60s. + - `[FilePath ]`: Your target file path in your own BYOS + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformDevToolPortal.md b/swaggerci/appplatform/docs/New-AzAppPlatformDevToolPortal.md new file mode 100644 index 000000000000..02ac0b5921b1 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformDevToolPortal.md @@ -0,0 +1,309 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdevtoolportal +schema: 2.0.0 +--- + +# New-AzAppPlatformDevToolPortal + +## SYNOPSIS +Create the default Dev Tool Portal or update the existing Dev Tool Portal. + +## SYNTAX + +``` +New-AzAppPlatformDevToolPortal -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-ApplicationAcceleratorState ] + [-ApplicationLiveViewState ] [-Public] [-SsoPropertyClientId ] + [-SsoPropertyClientSecret ] [-SsoPropertyMetadataUrl ] [-SsoPropertyScope ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create the default Dev Tool Portal or update the existing Dev Tool Portal. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationAcceleratorState +State of the plugin + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApplicationLiveViewState +State of the plugin + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState +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 +``` + +### -Name +The name of Dev Tool Portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: DevToolPortalName + +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 +``` + +### -Public +Indicates whether the resource exposes public endpoint + +```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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyClientId +The public identifier for the application + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyClientSecret +The secret known only to the application and the authorization server + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyMetadataUrl +The URI of a JSON file with generic OIDC provider configuration. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyScope +It defines the specific actions applications can be allowed to do on a user's behalf + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformGateway.md b/swaggerci/appplatform/docs/New-AzAppPlatformGateway.md new file mode 100644 index 000000000000..e8e2f8262940 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformGateway.md @@ -0,0 +1,590 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgateway +schema: 2.0.0 +--- + +# New-AzAppPlatformGateway + +## SYNOPSIS +Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. + +## SYNTAX + +``` +New-AzAppPlatformGateway -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-ApiMetadataPropertyDescription ] + [-ApiMetadataPropertyDocumentation ] [-ApiMetadataPropertyServerUrl ] + [-ApiMetadataPropertyTitle ] [-ApiMetadataPropertyVersion ] [-ApmType ] + [-CorPropertyAllowCredentials] [-CorPropertyAllowedHeader ] [-CorPropertyAllowedMethod ] + [-CorPropertyAllowedOrigin ] [-CorPropertyExposedHeader ] [-CorPropertyMaxAge ] + [-EnvironmentVariableProperty ] [-EnvironmentVariableSecret ] [-HttpsOnly] [-Public] + [-ResourceRequestsCpu ] [-ResourceRequestsMemory ] [-SkuCapacity ] [-SkuName ] + [-SkuTier ] [-SsoPropertyClientId ] [-SsoPropertyClientSecret ] + [-SsoPropertyIssuerUri ] [-SsoPropertyScope ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApiMetadataPropertyDescription +Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes the API routes configured.`) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApiMetadataPropertyDocumentation +Location of additional documentation for the APIs available on the Gateway instance + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApiMetadataPropertyServerUrl +Base URL that API consumers will use to access APIs on the Gateway instance. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApiMetadataPropertyTitle +Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApiMetadataPropertyVersion +Version of APIs available on this Gateway instance (default: `unspecified`). + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApmType +Collection of APM type used in Spring Cloud Gateway + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] +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 +``` + +### -CorPropertyAllowCredentials +Whether user credentials are supported on cross-site requests. +Valid values: `true`, `false`. + +```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 +``` + +### -CorPropertyAllowedHeader +Allowed headers in cross-site requests. +The special value `*` allows actual requests to send any header. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CorPropertyAllowedMethod +Allowed HTTP methods on cross-site requests. +The special value `*` allows all methods. +If not set, `GET` and `HEAD` are allowed by default. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CorPropertyAllowedOrigin +Allowed origins to make cross-site requests. +The special value `*` allows all domains. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CorPropertyExposedHeader +HTTP response headers to expose for cross-site requests. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CorPropertyMaxAge +How long, in seconds, the response from a pre-flight request can be cached by clients. + +```yaml +Type: System.Int32 +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 +``` + +### -EnvironmentVariableProperty +Non-sensitive properties + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EnvironmentVariableSecret +Sensitive properties + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -HttpsOnly +Indicate if only https is allowed. + +```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 +``` + +### -Name +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: GatewayName + +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 +``` + +### -Public +Indicates whether the Spring Cloud Gateway exposes endpoint. + +```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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceRequestsCpu +Cpu allocated to each Spring Cloud Gateway instance. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceRequestsMemory +Memory allocated to each Spring Cloud Gateway instance. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +Current capacity of the target resource + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +Tier of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyClientId +The public identifier for the application + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyClientSecret +The secret known only to the application and the authorization server + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyIssuerUri +The URI of Issuer Identifier + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoPropertyScope +It defines the specific actions applications can be allowed to do on a user's behalf + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IGatewayResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformGatewayCustomDomain.md b/swaggerci/appplatform/docs/New-AzAppPlatformGatewayCustomDomain.md new file mode 100644 index 000000000000..f9bd3cbfe7ce --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformGatewayCustomDomain.md @@ -0,0 +1,232 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgatewaycustomdomain +schema: 2.0.0 +--- + +# New-AzAppPlatformGatewayCustomDomain + +## SYNOPSIS +Create or update the Spring Cloud Gateway custom domain. + +## SYNTAX + +``` +New-AzAppPlatformGatewayCustomDomain -DomainName -GatewayName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-Thumbprint ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update the Spring Cloud Gateway custom domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -DomainName +The name of the Spring Cloud Gateway custom domain. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GatewayName +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -Thumbprint +The thumbprint of bound certificate. + +```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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformGatewayRouteConfig.md b/swaggerci/appplatform/docs/New-AzAppPlatformGatewayRouteConfig.md new file mode 100644 index 000000000000..149869cbf584 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformGatewayRouteConfig.md @@ -0,0 +1,343 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgatewayrouteconfig +schema: 2.0.0 +--- + +# New-AzAppPlatformGatewayRouteConfig + +## SYNOPSIS +Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. + +## SYNTAX + +``` +New-AzAppPlatformGatewayRouteConfig -GatewayName -ResourceGroupName + -RouteConfigName -ServiceName [-SubscriptionId ] [-AppResourceId ] + [-Filter ] [-OpenApiUri ] [-Predicate ] [-Protocol ] + [-Route ] [-SsoEnabled] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppResourceId +The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + +```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 +``` + +### -Filter +To modify the request before sending it to the target endpoint, or the received response in app level. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GatewayName +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +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 +``` + +### -OpenApiUri +The URI of OpenAPI specification. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Predicate +A number of conditions to evaluate a route for each request in app level. +Each predicate may be evaluated against request headers and parameter values. +All of the predicates associated with a route must evaluate to true for the route to be matched to the request. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Protocol +Protocol of routed Azure Spring Apps applications. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Route +Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. +To construct, see NOTES section for ROUTE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RouteConfigName +The name of the Spring Cloud Gateway route config. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SsoEnabled +Enable Single Sign-On in app level. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + +## 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. + + +`ROUTE `: Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + - `[Description ]`: A description, will be applied to methods in the generated OpenAPI documentation. + - `[Filter ]`: To modify the request before sending it to the target endpoint, or the received response. + - `[Order ]`: Route processing order. + - `[Predicate ]`: A number of conditions to evaluate a route for each request. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request. + - `[SsoEnabled ]`: Enable sso validation. + - `[Tag ]`: Classification tags, will be applied to methods in the generated OpenAPI documentation. + - `[Title ]`: A title, will be applied to methods in the generated OpenAPI documentation. + - `[TokenRelay ]`: Pass currently-authenticated user's identity token to application service, default is 'false' + - `[Uri ]`: Full uri, will override `appName`. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformService.md b/swaggerci/appplatform/docs/New-AzAppPlatformService.md new file mode 100644 index 000000000000..b9f5f0cddee5 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformService.md @@ -0,0 +1,448 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformservice +schema: 2.0.0 +--- + +# New-AzAppPlatformService + +## SYNOPSIS +Create a new Service or update an exiting Service. + +## SYNTAX + +``` +New-AzAppPlatformService -Name -ResourceGroupName [-SubscriptionId ] + [-IngressConfigReadTimeoutInSecond ] [-Location ] [-MarketplaceResourcePlan ] + [-MarketplaceResourceProduct ] [-MarketplaceResourcePublisher ] + [-NetworkProfileAppNetworkResourceGroup ] [-NetworkProfileAppSubnetId ] + [-NetworkProfileOutboundType ] [-NetworkProfileServiceCidr ] + [-NetworkProfileServiceRuntimeNetworkResourceGroup ] [-NetworkProfileServiceRuntimeSubnetId ] + [-SkuCapacity ] [-SkuName ] [-SkuTier ] [-Tag ] + [-VnetAddonLogStreamPublicEndpoint] [-ZoneRedundant] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create a new Service or update an exiting Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -IngressConfigReadTimeoutInSecond +Ingress read time out in seconds. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The GEO location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MarketplaceResourcePlan +The plan id of the 3rd Party Artifact that is being procured. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MarketplaceResourceProduct +The 3rd Party artifact that is being procured. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MarketplaceResourcePublisher +The publisher id of the 3rd Party Artifact that is being bought. + +```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 Service resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ServiceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileAppNetworkResourceGroup +Name of the resource group containing network resources for customer apps in Azure Spring Apps + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileAppSubnetId +Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileOutboundType +The egress traffic type of Azure Spring Apps VNet instances. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileServiceCidr +Azure Spring Apps service reserved CIDR + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileServiceRuntimeNetworkResourceGroup +Name of the resource group containing network resources of Azure Spring Apps Service Runtime + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileServiceRuntimeSubnetId +Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + +```yaml +Type: System.String +Parameter Sets: (All) +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +Current capacity of the target resource + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +Tier of the Sku + +```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 ID which uniquely identify the 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 +Tags of the service which is a list of key value pairs that describe the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetAddonLogStreamPublicEndpoint +Indicates whether the log stream in vnet injection instance could be accessed from internet. + +```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 +``` + +### -ZoneRedundant +. + +```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 +``` + +### -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.AppPlatform.Models.Api20221101Preview.IServiceResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformServiceTestKey.md b/swaggerci/appplatform/docs/New-AzAppPlatformServiceTestKey.md new file mode 100644 index 000000000000..497bbed87040 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformServiceTestKey.md @@ -0,0 +1,267 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformservicetestkey +schema: 2.0.0 +--- + +# New-AzAppPlatformServiceTestKey + +## SYNOPSIS +Regenerate a test key for a Service. + +## SYNTAX + +### RegenerateExpanded (Default) +``` +New-AzAppPlatformServiceTestKey -ResourceGroupName -ServiceName -KeyType + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### Regenerate +``` +New-AzAppPlatformServiceTestKey -ResourceGroupName -ServiceName + -RegenerateTestKeyRequest [-SubscriptionId ] + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### RegenerateViaIdentity +``` +New-AzAppPlatformServiceTestKey -InputObject + -RegenerateTestKeyRequest [-DefaultProfile ] [-Confirm] + [-WhatIf] [] +``` + +### RegenerateViaIdentityExpanded +``` +New-AzAppPlatformServiceTestKey -InputObject -KeyType + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Regenerate a test key for a Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: RegenerateViaIdentity, RegenerateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -KeyType +Type of the test key + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType +Parameter Sets: RegenerateExpanded, RegenerateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegenerateTestKeyRequest +Regenerate test key request payload +To construct, see NOTES section for REGENERATETESTKEYREQUEST properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload +Parameter Sets: Regenerate, RegenerateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +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.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +`REGENERATETESTKEYREQUEST `: Regenerate test key request payload + - `KeyType `: Type of the test key + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformStorage.md b/swaggerci/appplatform/docs/New-AzAppPlatformStorage.md new file mode 100644 index 000000000000..d61d6d773bf9 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformStorage.md @@ -0,0 +1,202 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformstorage +schema: 2.0.0 +--- + +# New-AzAppPlatformStorage + +## SYNOPSIS +Create or update storage resource. + +## SYNTAX + +``` +New-AzAppPlatformStorage -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Create or update storage resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -Name +The name of the storage resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: StorageName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.Api20221101Preview.IStorageResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/README.md b/swaggerci/appplatform/docs/README.md new file mode 100644 index 000000000000..35b491ffadb9 --- /dev/null +++ b/swaggerci/appplatform/docs/README.md @@ -0,0 +1,11 @@ +# Docs +This directory contains the documentation of the cmdlets for the `Az.AppPlatform` 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.AppPlatform` 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/appplatform/docs/Remove-AzAppPlatformApiPortal.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformApiPortal.md new file mode 100644 index 000000000000..f324943a6a92 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformApiPortal.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformapiportal +schema: 2.0.0 +--- + +# Remove-AzAppPlatformApiPortal + +## SYNOPSIS +Delete the default API portal. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformApiPortal -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformApiPortal -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the default API portal. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of API portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ApiPortalName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformApiPortalCustomDomain.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformApiPortalCustomDomain.md new file mode 100644 index 000000000000..3bb86cb8c7cc --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformApiPortalCustomDomain.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformapiportalcustomdomain +schema: 2.0.0 +--- + +# Remove-AzAppPlatformApiPortalCustomDomain + +## SYNOPSIS +Delete the API portal custom domain. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformApiPortalCustomDomain -ApiPortalName -DomainName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformApiPortalCustomDomain -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the API portal custom domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApiPortalName +The name of API portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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 +``` + +### -DomainName +The name of the API portal custom domain. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformApp.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformApp.md new file mode 100644 index 000000000000..506cd5100daf --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformApp.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformapp +schema: 2.0.0 +--- + +# Remove-AzAppPlatformApp + +## SYNOPSIS +Operation to delete an App. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformApp -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformApp -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Operation to delete an App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 App resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: AppName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformApplicationAccelerator.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformApplicationAccelerator.md new file mode 100644 index 000000000000..6c22fdfa8384 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformApplicationAccelerator.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformapplicationaccelerator +schema: 2.0.0 +--- + +# Remove-AzAppPlatformApplicationAccelerator + +## SYNOPSIS +Delete the application accelerator. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformApplicationAccelerator -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformApplicationAccelerator -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the application accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 application accelerator. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ApplicationAcceleratorName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformApplicationLiveView.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformApplicationLiveView.md new file mode 100644 index 000000000000..3d999cacef63 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformApplicationLiveView.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformapplicationliveview +schema: 2.0.0 +--- + +# Remove-AzAppPlatformApplicationLiveView + +## SYNOPSIS +Disable the default Application Live View. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformApplicationLiveView -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformApplicationLiveView -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disable the default Application Live View. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Application Live View. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ApplicationLiveViewName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformBinding.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformBinding.md new file mode 100644 index 000000000000..402406a9541c --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformBinding.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformbinding +schema: 2.0.0 +--- + +# Remove-AzAppPlatformBinding + +## SYNOPSIS +Operation to delete a Binding. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformBinding -AppName -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformBinding -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Operation to delete a Binding. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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 +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +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 Binding resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: BindingName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformBuildServiceBuilder.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformBuildServiceBuilder.md new file mode 100644 index 000000000000..e6fd73485675 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformBuildServiceBuilder.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformbuildservicebuilder +schema: 2.0.0 +--- + +# Remove-AzAppPlatformBuildServiceBuilder + +## SYNOPSIS +Delete a KPack builder. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformBuildServiceBuilder -BuilderName -BuildServiceName + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformBuildServiceBuilder -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a KPack builder. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -BuilderName +The name of the builder resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformBuildpackBinding.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformBuildpackBinding.md new file mode 100644 index 000000000000..39091ed7dd92 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformBuildpackBinding.md @@ -0,0 +1,308 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformbuildpackbinding +schema: 2.0.0 +--- + +# Remove-AzAppPlatformBuildpackBinding + +## SYNOPSIS +Operation to delete a Buildpack Binding + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformBuildpackBinding -BuilderName -BuildServiceName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformBuildpackBinding -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Operation to delete a Buildpack Binding + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -BuilderName +The name of the builder resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -BuildServiceName +The name of the build service resource. + +```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.AppPlatform.Models.IAppPlatformIdentity +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 Buildpack Binding Name + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: BuildpackBindingName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformCertificate.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..aba8ac79ea39 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformCertificate.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformcertificate +schema: 2.0.0 +--- + +# Remove-AzAppPlatformCertificate + +## SYNOPSIS +Delete the certificate resource. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformCertificate -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformCertificate -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the certificate resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 certificate resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: CertificateName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformConfigurationService.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformConfigurationService.md new file mode 100644 index 000000000000..f33e25b9ffe0 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformConfigurationService.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformconfigurationservice +schema: 2.0.0 +--- + +# Remove-AzAppPlatformConfigurationService + +## SYNOPSIS +Disable the default Application Configuration Service. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformConfigurationService -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformConfigurationService -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disable the default Application Configuration Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Application Configuration Service. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ConfigurationServiceName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..f6f187bac095 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformCustomDomain.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformcustomdomain +schema: 2.0.0 +--- + +# Remove-AzAppPlatformCustomDomain + +## SYNOPSIS +Delete the custom domain of one lifecycle application. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformCustomDomain -AppName -DomainName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformCustomDomain -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the custom domain of one lifecycle application. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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 +``` + +### -DomainName +The name of the custom domain resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformCustomizedAccelerator.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformCustomizedAccelerator.md new file mode 100644 index 000000000000..4358459af207 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformCustomizedAccelerator.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformcustomizedaccelerator +schema: 2.0.0 +--- + +# Remove-AzAppPlatformCustomizedAccelerator + +## SYNOPSIS +Delete the customized accelerator. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformCustomizedAccelerator -ApplicationAcceleratorName -Name + -ResourceGroupName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformCustomizedAccelerator -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the customized accelerator. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApplicationAcceleratorName +The name of the application accelerator. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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 +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +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 customized accelerator. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: CustomizedAcceleratorName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformDeployment.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..945125a54548 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformDeployment.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformdeployment +schema: 2.0.0 +--- + +# Remove-AzAppPlatformDeployment + +## SYNOPSIS +Operation to delete a Deployment. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformDeployment -AppName -Name -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformDeployment -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Operation to delete a Deployment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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 +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +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 Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: DeploymentName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformDevToolPortal.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformDevToolPortal.md new file mode 100644 index 000000000000..aac60d398450 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformDevToolPortal.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformdevtoolportal +schema: 2.0.0 +--- + +# Remove-AzAppPlatformDevToolPortal + +## SYNOPSIS +Disable the default Dev Tool Portal. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformDevToolPortal -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformDevToolPortal -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disable the default Dev Tool Portal. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Dev Tool Portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: DevToolPortalName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformGateway.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformGateway.md new file mode 100644 index 000000000000..6e0411b8270e --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformGateway.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformgateway +schema: 2.0.0 +--- + +# Remove-AzAppPlatformGateway + +## SYNOPSIS +Disable the default Spring Cloud Gateway. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformGateway -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformGateway -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disable the default Spring Cloud Gateway. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: GatewayName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformGatewayCustomDomain.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformGatewayCustomDomain.md new file mode 100644 index 000000000000..93fdb14cb327 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformGatewayCustomDomain.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformgatewaycustomdomain +schema: 2.0.0 +--- + +# Remove-AzAppPlatformGatewayCustomDomain + +## SYNOPSIS +Delete the Spring Cloud Gateway custom domain. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformGatewayCustomDomain -DomainName -GatewayName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformGatewayCustomDomain -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the Spring Cloud Gateway custom domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -DomainName +The name of the Spring Cloud Gateway custom domain. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GatewayName +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformGatewayRouteConfig.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformGatewayRouteConfig.md new file mode 100644 index 000000000000..6d2e13ed603b --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformGatewayRouteConfig.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformgatewayrouteconfig +schema: 2.0.0 +--- + +# Remove-AzAppPlatformGatewayRouteConfig + +## SYNOPSIS +Delete the Spring Cloud Gateway route config. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformGatewayRouteConfig -GatewayName -ResourceGroupName + -RouteConfigName -ServiceName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformGatewayRouteConfig -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the Spring Cloud Gateway route config. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -GatewayName +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RouteConfigName +The name of the Spring Cloud Gateway route config. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformService.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformService.md new file mode 100644 index 000000000000..2c4463fa84ea --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformService.md @@ -0,0 +1,262 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformservice +schema: 2.0.0 +--- + +# Remove-AzAppPlatformService + +## SYNOPSIS +Operation to delete a Service. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformService -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformService -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Operation to delete a Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 Service resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ServiceName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformServiceRegistry.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformServiceRegistry.md new file mode 100644 index 000000000000..5e4946115454 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformServiceRegistry.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformserviceregistry +schema: 2.0.0 +--- + +# Remove-AzAppPlatformServiceRegistry + +## SYNOPSIS +Disable the default Service Registry. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformServiceRegistry -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformServiceRegistry -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Disable the default Service Registry. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Service Registry. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ServiceRegistryName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Remove-AzAppPlatformStorage.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformStorage.md new file mode 100644 index 000000000000..862cb0583b02 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformStorage.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/remove-azappplatformstorage +schema: 2.0.0 +--- + +# Remove-AzAppPlatformStorage + +## SYNOPSIS +Delete the storage resource. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzAppPlatformStorage -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzAppPlatformStorage -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete the storage resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 storage resource. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: StorageName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Restart-AzAppPlatformDeployment.md b/swaggerci/appplatform/docs/Restart-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..781e100515d1 --- /dev/null +++ b/swaggerci/appplatform/docs/Restart-AzAppPlatformDeployment.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/restart-azappplatformdeployment +schema: 2.0.0 +--- + +# Restart-AzAppPlatformDeployment + +## SYNOPSIS +Restart the deployment. + +## SYNTAX + +### Restart (Default) +``` +Restart-AzAppPlatformDeployment -AppName -Name -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### RestartViaIdentity +``` +Restart-AzAppPlatformDeployment -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Restart the deployment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Restart +Aliases: + +Required: True +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 +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: RestartViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Restart +Aliases: DeploymentName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Restart +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Restart +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Restart +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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Start-AzAppPlatformDeployment.md b/swaggerci/appplatform/docs/Start-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..2fe9b746fcfb --- /dev/null +++ b/swaggerci/appplatform/docs/Start-AzAppPlatformDeployment.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/start-azappplatformdeployment +schema: 2.0.0 +--- + +# Start-AzAppPlatformDeployment + +## SYNOPSIS +Start the deployment. + +## SYNTAX + +### Start (Default) +``` +Start-AzAppPlatformDeployment -AppName -Name -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### StartViaIdentity +``` +Start-AzAppPlatformDeployment -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Start the deployment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Start +Aliases: + +Required: True +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 +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +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 Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Start +Aliases: DeploymentName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Start +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Start-AzAppPlatformDeploymentJfr.md b/swaggerci/appplatform/docs/Start-AzAppPlatformDeploymentJfr.md new file mode 100644 index 000000000000..b5b7f3416225 --- /dev/null +++ b/swaggerci/appplatform/docs/Start-AzAppPlatformDeploymentJfr.md @@ -0,0 +1,378 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/start-azappplatformdeploymentjfr +schema: 2.0.0 +--- + +# Start-AzAppPlatformDeploymentJfr + +## SYNOPSIS +Start JFR + +## SYNTAX + +### StartExpanded (Default) +``` +Start-AzAppPlatformDeploymentJfr -AppName -DeploymentName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-AppInstance ] [-Duration ] + [-FilePath ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### Start +``` +Start-AzAppPlatformDeploymentJfr -AppName -DeploymentName -ResourceGroupName + -ServiceName -DiagnosticParameter [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### StartViaIdentity +``` +Start-AzAppPlatformDeploymentJfr -InputObject + -DiagnosticParameter [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### StartViaIdentityExpanded +``` +Start-AzAppPlatformDeploymentJfr -InputObject [-AppInstance ] + [-Duration ] [-FilePath ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Start JFR + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppInstance +App instance name + +```yaml +Type: System.String +Parameter Sets: StartExpanded, StartViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Start, StartExpanded +Aliases: + +Required: True +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 +``` + +### -DeploymentName +The name of the Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Start, StartExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DiagnosticParameter +Diagnostic parameters of diagnostic operations +To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +Parameter Sets: Start, StartViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Duration +Duration of your JFR. +1 min can be represented by 1m or 60s. + +```yaml +Type: System.String +Parameter Sets: StartExpanded, StartViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilePath +Your target file path in your own BYOS + +```yaml +Type: System.String +Parameter Sets: StartExpanded, StartViaIdentityExpanded +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: StartViaIdentity, StartViaIdentityExpanded +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Start, StartExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Start, StartExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Start, StartExpanded +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.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## 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. + + +`DIAGNOSTICPARAMETER `: Diagnostic parameters of diagnostic operations + - `[AppInstance ]`: App instance name + - `[Duration ]`: Duration of your JFR. 1 min can be represented by 1m or 60s. + - `[FilePath ]`: Your target file path in your own BYOS + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Start-AzAppPlatformService.md b/swaggerci/appplatform/docs/Start-AzAppPlatformService.md new file mode 100644 index 000000000000..dc6269d14d2f --- /dev/null +++ b/swaggerci/appplatform/docs/Start-AzAppPlatformService.md @@ -0,0 +1,262 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/start-azappplatformservice +schema: 2.0.0 +--- + +# Start-AzAppPlatformService + +## SYNOPSIS +Start a Service. + +## SYNTAX + +### Start (Default) +``` +Start-AzAppPlatformService -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### StartViaIdentity +``` +Start-AzAppPlatformService -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Start a Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 Service resource. + +```yaml +Type: System.String +Parameter Sets: Start +Aliases: ServiceName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Stop-AzAppPlatformDeployment.md b/swaggerci/appplatform/docs/Stop-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..65cd59a74a6f --- /dev/null +++ b/swaggerci/appplatform/docs/Stop-AzAppPlatformDeployment.md @@ -0,0 +1,293 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/stop-azappplatformdeployment +schema: 2.0.0 +--- + +# Stop-AzAppPlatformDeployment + +## SYNOPSIS +Stop the deployment. + +## SYNTAX + +### Stop (Default) +``` +Stop-AzAppPlatformDeployment -AppName -Name -ResourceGroupName + -ServiceName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### StopViaIdentity +``` +Stop-AzAppPlatformDeployment -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Stop the deployment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Stop +Aliases: + +Required: True +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 +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +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 Deployment resource. + +```yaml +Type: System.String +Parameter Sets: Stop +Aliases: DeploymentName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Stop +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Stop-AzAppPlatformService.md b/swaggerci/appplatform/docs/Stop-AzAppPlatformService.md new file mode 100644 index 000000000000..4e5d4052b49b --- /dev/null +++ b/swaggerci/appplatform/docs/Stop-AzAppPlatformService.md @@ -0,0 +1,262 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/stop-azappplatformservice +schema: 2.0.0 +--- + +# Stop-AzAppPlatformService + +## SYNOPSIS +Stop a Service. + +## SYNTAX + +### Stop (Default) +``` +Stop-AzAppPlatformService -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### StopViaIdentity +``` +Stop-AzAppPlatformService -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Stop a Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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.AppPlatform.Models.IAppPlatformIdentity +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 Service resource. + +```yaml +Type: System.String +Parameter Sets: Stop +Aliases: ServiceName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Test-AzAppPlatformApiPortalDomain.md b/swaggerci/appplatform/docs/Test-AzAppPlatformApiPortalDomain.md new file mode 100644 index 000000000000..acd95985d8fe --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformApiPortalDomain.md @@ -0,0 +1,283 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformapiportaldomain +schema: 2.0.0 +--- + +# Test-AzAppPlatformApiPortalDomain + +## SYNOPSIS +Check the domains are valid as well as not in use. + +## SYNTAX + +### ValidateExpanded (Default) +``` +Test-AzAppPlatformApiPortalDomain -ApiPortalName -ResourceGroupName -ServiceName + -Name [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Validate +``` +Test-AzAppPlatformApiPortalDomain -ApiPortalName -ResourceGroupName -ServiceName + -ValidatePayload [-SubscriptionId ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### ValidateViaIdentity +``` +Test-AzAppPlatformApiPortalDomain -InputObject + -ValidatePayload [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### ValidateViaIdentityExpanded +``` +Test-AzAppPlatformApiPortalDomain -InputObject -Name + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Check the domains are valid as well as not in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ApiPortalName +The name of API portal. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: ValidateViaIdentity, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name to be validated + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ValidatePayload +Custom domain validate payload. +To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +Parameter Sets: Validate, ValidateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +`VALIDATEPAYLOAD `: Custom domain validate payload. + - `Name `: Name to be validated + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Test-AzAppPlatformAppDomain.md b/swaggerci/appplatform/docs/Test-AzAppPlatformAppDomain.md new file mode 100644 index 000000000000..c8ac2e91d2f6 --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformAppDomain.md @@ -0,0 +1,282 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformappdomain +schema: 2.0.0 +--- + +# Test-AzAppPlatformAppDomain + +## SYNOPSIS +Check the resource name is valid as well as not in use. + +## SYNTAX + +### ValidateExpanded (Default) +``` +Test-AzAppPlatformAppDomain -AppName -ResourceGroupName -ServiceName -Name + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### Validate +``` +Test-AzAppPlatformAppDomain -AppName -ResourceGroupName -ServiceName + -ValidatePayload [-SubscriptionId ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### ValidateViaIdentity +``` +Test-AzAppPlatformAppDomain -InputObject + -ValidatePayload [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### ValidateViaIdentityExpanded +``` +Test-AzAppPlatformAppDomain -InputObject -Name [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Check the resource name is valid as well as not in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: ValidateViaIdentity, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name to be validated + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ValidatePayload +Custom domain validate payload. +To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +Parameter Sets: Validate, ValidateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +`VALIDATEPAYLOAD `: Custom domain validate payload. + - `Name `: Name to be validated + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Test-AzAppPlatformConfigServer.md b/swaggerci/appplatform/docs/Test-AzAppPlatformConfigServer.md new file mode 100644 index 000000000000..e56057a6ef4d --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformConfigServer.md @@ -0,0 +1,474 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformconfigserver +schema: 2.0.0 +--- + +# Test-AzAppPlatformConfigServer + +## SYNOPSIS +Check if the config server settings are valid. + +## SYNTAX + +### ValidateExpanded (Default) +``` +Test-AzAppPlatformConfigServer -ResourceGroupName -ServiceName [-SubscriptionId ] + [-GitPropertyHostKey ] [-GitPropertyHostKeyAlgorithm ] [-GitPropertyLabel ] + [-GitPropertyPassword ] [-GitPropertyPrivateKey ] + [-GitPropertyRepository ] [-GitPropertySearchPath ] + [-GitPropertyStrictHostKeyChecking] [-GitPropertyUri ] [-GitPropertyUsername ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### Validate +``` +Test-AzAppPlatformConfigServer -ResourceGroupName -ServiceName + -ConfigServerSetting [-SubscriptionId ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### ValidateViaIdentity +``` +Test-AzAppPlatformConfigServer -InputObject + -ConfigServerSetting [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] + [-WhatIf] [] +``` + +### ValidateViaIdentityExpanded +``` +Test-AzAppPlatformConfigServer -InputObject [-GitPropertyHostKey ] + [-GitPropertyHostKeyAlgorithm ] [-GitPropertyLabel ] [-GitPropertyPassword ] + [-GitPropertyPrivateKey ] [-GitPropertyRepository ] + [-GitPropertySearchPath ] [-GitPropertyStrictHostKeyChecking] [-GitPropertyUri ] + [-GitPropertyUsername ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Check if the config server settings are valid. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -ConfigServerSetting +The settings of config server. +To construct, see NOTES section for CONFIGSERVERSETTING properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings +Parameter Sets: Validate, ValidateViaIdentity +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 +``` + +### -GitPropertyHostKey +Public sshKey of git repository. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyHostKeyAlgorithm +SshKey algorithm of git repository. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyLabel +Label of the repository + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyPassword +Password of git repository basic auth. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyPrivateKey +Private sshKey algorithm of git repository. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyRepository +Repositories of git. +To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertySearchPath +Searching path of the repository + +```yaml +Type: System.String[] +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyStrictHostKeyChecking +Strict host key checking or not. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyUri +URI of the repository + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyUsername +Username of git repository basic auth. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: ValidateViaIdentity, ValidateViaIdentityExpanded +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +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.AppPlatform.Models.Api20221101Preview.IConfigServerSettings + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + +## 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. + + +`CONFIGSERVERSETTING `: The settings of config server. + - `[GitPropertyHostKey ]`: Public sshKey of git repository. + - `[GitPropertyHostKeyAlgorithm ]`: SshKey algorithm of git repository. + - `[GitPropertyLabel ]`: Label of the repository + - `[GitPropertyPassword ]`: Password of git repository basic auth. + - `[GitPropertyPrivateKey ]`: Private sshKey algorithm of git repository. + - `[GitPropertyRepository ]`: Repositories of git. + - `Name `: Name of the repository + - `Uri `: URI of the repository + - `[HostKey ]`: Public sshKey of git repository. + - `[HostKeyAlgorithm ]`: SshKey algorithm of git repository. + - `[Label ]`: Label of the repository + - `[Password ]`: Password of git repository basic auth. + - `[Pattern ]`: Collection of pattern of the repository + - `[PrivateKey ]`: Private sshKey algorithm of git repository. + - `[SearchPath ]`: Searching path of the repository + - `[StrictHostKeyChecking ]`: Strict host key checking or not. + - `[Username ]`: Username of git repository basic auth. + - `[GitPropertySearchPath ]`: Searching path of the repository + - `[GitPropertyStrictHostKeyChecking ]`: Strict host key checking or not. + - `[GitPropertyUri ]`: URI of the repository + - `[GitPropertyUsername ]`: Username of git repository basic auth. + +`GITPROPERTYREPOSITORY `: Repositories of git. + - `Name `: Name of the repository + - `Uri `: URI of the repository + - `[HostKey ]`: Public sshKey of git repository. + - `[HostKeyAlgorithm ]`: SshKey algorithm of git repository. + - `[Label ]`: Label of the repository + - `[Password ]`: Password of git repository basic auth. + - `[Pattern ]`: Collection of pattern of the repository + - `[PrivateKey ]`: Private sshKey algorithm of git repository. + - `[SearchPath ]`: Searching path of the repository + - `[StrictHostKeyChecking ]`: Strict host key checking or not. + - `[Username ]`: Username of git repository basic auth. + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Test-AzAppPlatformConfigurationService.md b/swaggerci/appplatform/docs/Test-AzAppPlatformConfigurationService.md new file mode 100644 index 000000000000..72f762b10598 --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformConfigurationService.md @@ -0,0 +1,339 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformconfigurationservice +schema: 2.0.0 +--- + +# Test-AzAppPlatformConfigurationService + +## SYNOPSIS +Check if the Application Configuration Service settings are valid. + +## SYNTAX + +### ValidateExpanded (Default) +``` +Test-AzAppPlatformConfigurationService -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-GitPropertyRepository ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### Validate +``` +Test-AzAppPlatformConfigurationService -Name -ResourceGroupName -ServiceName + -Setting [-SubscriptionId ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### ValidateViaIdentity +``` +Test-AzAppPlatformConfigurationService -InputObject + -Setting [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +### ValidateViaIdentityExpanded +``` +Test-AzAppPlatformConfigurationService -InputObject + [-GitPropertyRepository ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Check if the Application Configuration Service settings are valid. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -GitPropertyRepository +Repositories of Application Configuration Service git property. +To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: ValidateViaIdentity, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of Application Configuration Service. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: ConfigurationServiceName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Setting +The settings of Application Configuration Service. +To construct, see NOTES section for SETTING properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings +Parameter Sets: Validate, ValidateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult + +## 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. + + +`GITPROPERTYREPOSITORY `: Repositories of Application Configuration Service git property. + - `Label `: Label of the repository + - `Name `: Name of the repository + - `Pattern `: Collection of patterns of the repository + - `Uri `: URI of the repository + - `[HostKey ]`: Public sshKey of git repository. + - `[HostKeyAlgorithm ]`: SshKey algorithm of git repository. + - `[Password ]`: Password of git repository basic auth. + - `[PrivateKey ]`: Private sshKey algorithm of git repository. + - `[SearchPath ]`: Searching path of the repository + - `[StrictHostKeyChecking ]`: Strict host key checking or not. + - `[Username ]`: Username of git repository basic auth. + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +`SETTING `: The settings of Application Configuration Service. + - `[GitPropertyRepository ]`: Repositories of Application Configuration Service git property. + - `Label `: Label of the repository + - `Name `: Name of the repository + - `Pattern `: Collection of patterns of the repository + - `Uri `: URI of the repository + - `[HostKey ]`: Public sshKey of git repository. + - `[HostKeyAlgorithm ]`: SshKey algorithm of git repository. + - `[Password ]`: Password of git repository basic auth. + - `[PrivateKey ]`: Private sshKey algorithm of git repository. + - `[SearchPath ]`: Searching path of the repository + - `[StrictHostKeyChecking ]`: Strict host key checking or not. + - `[Username ]`: Username of git repository basic auth. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Test-AzAppPlatformCustomizedAccelerator.md b/swaggerci/appplatform/docs/Test-AzAppPlatformCustomizedAccelerator.md new file mode 100644 index 000000000000..7c08fbfb72e9 --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformCustomizedAccelerator.md @@ -0,0 +1,463 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformcustomizedaccelerator +schema: 2.0.0 +--- + +# Test-AzAppPlatformCustomizedAccelerator + +## SYNOPSIS +Check the customized accelerator are valid. + +## SYNTAX + +### ValidateExpanded (Default) +``` +Test-AzAppPlatformCustomizedAccelerator -ApplicationAcceleratorName -Name + -ResourceGroupName -ServiceName -AuthSettingAuthType -GitRepositoryUrl + [-SubscriptionId ] [-AcceleratorTag ] [-Description ] [-DisplayName ] + [-GitRepositoryBranch ] [-GitRepositoryCommit ] [-GitRepositoryGitTag ] + [-GitRepositoryIntervalInSecond ] [-IconUrl ] [-DefaultProfile ] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### Validate +``` +Test-AzAppPlatformCustomizedAccelerator -ApplicationAcceleratorName -Name + -ResourceGroupName -ServiceName -Property + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### ValidateViaIdentity +``` +Test-AzAppPlatformCustomizedAccelerator -InputObject + -Property [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### ValidateViaIdentityExpanded +``` +Test-AzAppPlatformCustomizedAccelerator -InputObject -AuthSettingAuthType + -GitRepositoryUrl [-AcceleratorTag ] [-Description ] [-DisplayName ] + [-GitRepositoryBranch ] [-GitRepositoryCommit ] [-GitRepositoryGitTag ] + [-GitRepositoryIntervalInSecond ] [-IconUrl ] [-DefaultProfile ] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Check the customized accelerator are valid. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AcceleratorTag +. + +```yaml +Type: System.String[] +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ApplicationAcceleratorName +The name of the application accelerator. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AuthSettingAuthType +The type of the auth setting. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +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 +``` + +### -Description +. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisplayName +. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryBranch +Git repository branch to be used. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryCommit +Git repository commit to be used. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryGitTag +Git repository tag to be used. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryIntervalInSecond +Interval for checking for updates to Git or image repository. + +```yaml +Type: System.Int32 +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitRepositoryUrl +Git repository URL for the accelerator. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IconUrl +. + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: ValidateViaIdentity, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the customized accelerator. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: CustomizedAcceleratorName + +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 +``` + +### -Property +Customized accelerator properties payload +To construct, see NOTES section for PROPERTY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties +Parameter Sets: Validate, ValidateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +`PROPERTY `: Customized accelerator properties payload + - `AuthSettingAuthType `: The type of the auth setting. + - `GitRepositoryUrl `: Git repository URL for the accelerator. + - `[AcceleratorTag ]`: + - `[Description ]`: + - `[DisplayName ]`: + - `[GitRepositoryBranch ]`: Git repository branch to be used. + - `[GitRepositoryCommit ]`: Git repository commit to be used. + - `[GitRepositoryGitTag ]`: Git repository tag to be used. + - `[GitRepositoryIntervalInSecond ]`: Interval for checking for updates to Git or image repository. + - `[IconUrl ]`: + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Test-AzAppPlatformGatewayDomain.md b/swaggerci/appplatform/docs/Test-AzAppPlatformGatewayDomain.md new file mode 100644 index 000000000000..5d18ca433cd0 --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformGatewayDomain.md @@ -0,0 +1,283 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformgatewaydomain +schema: 2.0.0 +--- + +# Test-AzAppPlatformGatewayDomain + +## SYNOPSIS +Check the domains are valid as well as not in use. + +## SYNTAX + +### ValidateExpanded (Default) +``` +Test-AzAppPlatformGatewayDomain -GatewayName -ResourceGroupName -ServiceName + -Name [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### Validate +``` +Test-AzAppPlatformGatewayDomain -GatewayName -ResourceGroupName -ServiceName + -ValidatePayload [-SubscriptionId ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### ValidateViaIdentity +``` +Test-AzAppPlatformGatewayDomain -InputObject + -ValidatePayload [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### ValidateViaIdentityExpanded +``` +Test-AzAppPlatformGatewayDomain -InputObject -Name + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Check the domains are valid as well as not in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -GatewayName +The name of Spring Cloud Gateway. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: ValidateViaIdentity, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name to be validated + +```yaml +Type: System.String +Parameter Sets: ValidateExpanded, ValidateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Gets subscription ID which uniquely identify the Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Validate, ValidateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ValidatePayload +Custom domain validate payload. +To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +Parameter Sets: Validate, ValidateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +`VALIDATEPAYLOAD `: Custom domain validate payload. + - `Name `: Name to be validated + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Test-AzAppPlatformServiceNameAvailability.md b/swaggerci/appplatform/docs/Test-AzAppPlatformServiceNameAvailability.md new file mode 100644 index 000000000000..7bdba6f59f43 --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformServiceNameAvailability.md @@ -0,0 +1,267 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformservicenameavailability +schema: 2.0.0 +--- + +# Test-AzAppPlatformServiceNameAvailability + +## SYNOPSIS +Checks that the resource name is valid and is not already in use. + +## SYNTAX + +### CheckExpanded (Default) +``` +Test-AzAppPlatformServiceNameAvailability -Location -Name -Type + [-SubscriptionId ] [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +### Check +``` +Test-AzAppPlatformServiceNameAvailability -Location + -AvailabilityParameter [-SubscriptionId ] [-DefaultProfile ] + [-Confirm] [-WhatIf] [] +``` + +### CheckViaIdentity +``` +Test-AzAppPlatformServiceNameAvailability -InputObject + -AvailabilityParameter [-DefaultProfile ] [-Confirm] [-WhatIf] + [] +``` + +### CheckViaIdentityExpanded +``` +Test-AzAppPlatformServiceNameAvailability -InputObject -Name -Type + [-DefaultProfile ] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Checks that the resource name is valid and is not already in use. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AvailabilityParameter +Name availability parameters payload +To construct, see NOTES section for AVAILABILITYPARAMETER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: CheckViaIdentity, CheckViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +the region + +```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 +Name to be checked + +```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 ID which uniquely identify the 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 +Type of the resource to check name availability + +```yaml +Type: System.String +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.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + +## 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. + + +`AVAILABILITYPARAMETER `: Name availability parameters payload + - `Name `: Name to be checked + - `Type `: Type of the resource to check name availability + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Update-AzAppPlatformApp.md b/swaggerci/appplatform/docs/Update-AzAppPlatformApp.md new file mode 100644 index 000000000000..89a6cc8c6fb6 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformApp.md @@ -0,0 +1,621 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformapp +schema: 2.0.0 +--- + +# Update-AzAppPlatformApp + +## SYNOPSIS +Operation to update an exiting App. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzAppPlatformApp -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-AddonConfig ] [-ClientAuthCertificate ] + [-CustomPersistentDisk ] [-EnableEndToEndTl] [-HttpsOnly] + [-IdentityPrincipalId ] [-IdentityTenantId ] [-IdentityType ] + [-IdentityUserAssignedIdentity ] [-IngressSettingBackendProtocol ] + [-IngressSettingReadTimeoutInSecond ] [-IngressSettingSendTimeoutInSecond ] + [-IngressSettingSessionAffinity ] [-IngressSettingSessionCookieMaxAge ] + [-LoadedCertificate ] [-Location ] [-PersistentDiskMountPath ] + [-PersistentDiskSizeInGb ] [-Public] [-TemporaryDiskMountPath ] + [-TemporaryDiskSizeInGb ] [-VnetAddonPublicEndpoint] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformApp -InputObject [-AddonConfig ] + [-ClientAuthCertificate ] [-CustomPersistentDisk ] + [-EnableEndToEndTl] [-HttpsOnly] [-IdentityPrincipalId ] [-IdentityTenantId ] + [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-IngressSettingBackendProtocol ] [-IngressSettingReadTimeoutInSecond ] + [-IngressSettingSendTimeoutInSecond ] [-IngressSettingSessionAffinity ] + [-IngressSettingSessionCookieMaxAge ] [-LoadedCertificate ] [-Location ] + [-PersistentDiskMountPath ] [-PersistentDiskSizeInGb ] [-Public] + [-TemporaryDiskMountPath ] [-TemporaryDiskSizeInGb ] [-VnetAddonPublicEndpoint] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Operation to update an exiting App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AddonConfig +Collection of addons + +```yaml +Type: System.Collections.Hashtable +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 +``` + +### -ClientAuthCertificate +Collection of certificate 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 +``` + +### -CustomPersistentDisk +List of custom persistent disks +To construct, see NOTES section for CUSTOMPERSISTENTDISK properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] +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 +``` + +### -EnableEndToEndTl +Indicate if end to end TLS 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 +``` + +### -HttpsOnly +Indicate if only https is allowed. + +```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 +``` + +### -IdentityPrincipalId +Principal Id of system-assigned managed identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +Tenant Id of system-assigned managed identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityType +Type of the managed identity + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +Properties of user-assigned managed identities + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingBackendProtocol +How ingress should communicate with this app backend service. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingReadTimeoutInSecond +Ingress read time out in seconds. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingSendTimeoutInSecond +Ingress send time out in seconds. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingSessionAffinity +Type of the affinity, set this to Cookie to enable session affinity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IngressSettingSessionCookieMaxAge +Time in seconds until the cookie expires. + +```yaml +Type: System.Int32 +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -LoadedCertificate +Collection of loaded certificates +To construct, see NOTES section for LOADEDCERTIFICATE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +The GEO location of the application, always the same with its parent resource + +```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 App resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: AppName + +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 +``` + +### -PersistentDiskMountPath +Mount path of the persistent disk + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PersistentDiskSizeInGb +Size of the persistent disk in GB + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Public +Indicates whether the App exposes public endpoint + +```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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -TemporaryDiskMountPath +Mount path of the temporary disk + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TemporaryDiskSizeInGb +Size of the temporary disk in GB + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetAddonPublicEndpoint +Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + +```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 +``` + +### -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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + +## 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. + + +`CUSTOMPERSISTENTDISK `: List of custom persistent disks + - `StorageId `: The resource id of Azure Spring Apps Storage resource. + - `[CustomPersistentDiskPropertyMountOption ]`: These are the mount options for a persistent disk. + - `[CustomPersistentDiskPropertyMountPath ]`: The mount path of the persistent disk. + - `[CustomPersistentDiskPropertyReadOnly ]`: Indicates whether the persistent disk is a readOnly one. + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +`LOADEDCERTIFICATE `: Collection of loaded certificates + - `ResourceId `: Resource Id of loaded certificate + - `[LoadTrustStore ]`: Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Update-AzAppPlatformBinding.md b/swaggerci/appplatform/docs/Update-AzAppPlatformBinding.md new file mode 100644 index 000000000000..2708b66adcb5 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformBinding.md @@ -0,0 +1,324 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformbinding +schema: 2.0.0 +--- + +# Update-AzAppPlatformBinding + +## SYNOPSIS +Operation to update an exiting Binding. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzAppPlatformBinding -AppName -Name -ResourceGroupName -ServiceName + [-SubscriptionId ] [-BindingParameter ] [-Key ] [-ResourceId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformBinding -InputObject [-BindingParameter ] + [-Key ] [-ResourceId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Operation to update an exiting Binding. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +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 +``` + +### -BindingParameter +Binding parameters of the Binding resource + +```yaml +Type: System.Collections.Hashtable +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Key +The key of the bound resource + +```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 Binding resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: BindingName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceId +The Azure resource id of the bound resource + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Update-AzAppPlatformConfigServerPatch.md b/swaggerci/appplatform/docs/Update-AzAppPlatformConfigServerPatch.md new file mode 100644 index 000000000000..99dd31042b61 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformConfigServerPatch.md @@ -0,0 +1,450 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformconfigserverpatch +schema: 2.0.0 +--- + +# Update-AzAppPlatformConfigServerPatch + +## SYNOPSIS +Update the config server. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzAppPlatformConfigServerPatch -ResourceGroupName -ServiceName + [-SubscriptionId ] [-Code ] [-GitPropertyHostKey ] + [-GitPropertyHostKeyAlgorithm ] [-GitPropertyLabel ] [-GitPropertyPassword ] + [-GitPropertyPrivateKey ] [-GitPropertyRepository ] + [-GitPropertySearchPath ] [-GitPropertyStrictHostKeyChecking] [-GitPropertyUri ] + [-GitPropertyUsername ] [-Message ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformConfigServerPatch -InputObject [-Code ] + [-GitPropertyHostKey ] [-GitPropertyHostKeyAlgorithm ] [-GitPropertyLabel ] + [-GitPropertyPassword ] [-GitPropertyPrivateKey ] + [-GitPropertyRepository ] [-GitPropertySearchPath ] + [-GitPropertyStrictHostKeyChecking] [-GitPropertyUri ] [-GitPropertyUsername ] + [-Message ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update the config server. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -Code +The code of error. + +```yaml +Type: System.String +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 +``` + +### -GitPropertyHostKey +Public sshKey of git repository. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyHostKeyAlgorithm +SshKey algorithm of git repository. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyLabel +Label of the repository + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyPassword +Password of git repository basic auth. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyPrivateKey +Private sshKey algorithm of git repository. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyRepository +Repositories of git. +To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertySearchPath +Searching path of the repository + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyStrictHostKeyChecking +Strict host key checking 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 +``` + +### -GitPropertyUri +URI of the repository + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -GitPropertyUsername +Username of git repository basic auth. + +```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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Message +The message of error. + +```yaml +Type: System.String +Parameter Sets: (All) +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + +## 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. + + +`GITPROPERTYREPOSITORY `: Repositories of git. + - `Name `: Name of the repository + - `Uri `: URI of the repository + - `[HostKey ]`: Public sshKey of git repository. + - `[HostKeyAlgorithm ]`: SshKey algorithm of git repository. + - `[Label ]`: Label of the repository + - `[Password ]`: Password of git repository basic auth. + - `[Pattern ]`: Collection of pattern of the repository + - `[PrivateKey ]`: Private sshKey algorithm of git repository. + - `[SearchPath ]`: Searching path of the repository + - `[StrictHostKeyChecking ]`: Strict host key checking or not. + - `[Username ]`: Username of git repository basic auth. + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Update-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/docs/Update-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..77d4204ecf43 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformCustomDomain.md @@ -0,0 +1,309 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformcustomdomain +schema: 2.0.0 +--- + +# Update-AzAppPlatformCustomDomain + +## SYNOPSIS +Update custom domain of one lifecycle application. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzAppPlatformCustomDomain -AppName -DomainName -ResourceGroupName + -ServiceName [-SubscriptionId ] [-CertName ] [-Thumbprint ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformCustomDomain -InputObject [-CertName ] + [-Thumbprint ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Update custom domain of one lifecycle application. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +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 +``` + +### -CertName +The bound certificate name of domain. + +```yaml +Type: System.String +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 +``` + +### -DomainName +The name of the custom domain resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: UpdateViaIdentityExpanded +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -Thumbprint +The thumbprint of bound certificate. + +```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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Update-AzAppPlatformDeployment.md b/swaggerci/appplatform/docs/Update-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..549f0ef64a6f --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformDeployment.md @@ -0,0 +1,419 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformdeployment +schema: 2.0.0 +--- + +# Update-AzAppPlatformDeployment + +## SYNOPSIS +Operation to update an exiting Deployment. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzAppPlatformDeployment -AppName -Name -ResourceGroupName + -ServiceName [-SubscriptionId ] [-Active] [-DeploymentSetting ] + [-SkuCapacity ] [-SkuName ] [-SkuTier ] [-SourceType ] + [-SourceVersion ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformDeployment -InputObject [-Active] + [-DeploymentSetting ] [-SkuCapacity ] [-SkuName ] [-SkuTier ] + [-SourceType ] [-SourceVersion ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Operation to update an exiting Deployment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -Active +Indicates whether the Deployment is active + +```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 +``` + +### -AppName +The name of the App resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +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 +``` + +### -DeploymentSetting +Deployment settings of the Deployment +To construct, see NOTES section for DEPLOYMENTSETTING properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings +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.AppPlatform.Models.IAppPlatformIdentity +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 Deployment resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: DeploymentName + +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 that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +Current capacity of the target resource + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +Tier of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceType +Type of the source uploaded + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceVersion +Version of the source + +```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 ID which uniquely identify the 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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + +## 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. + + +`DEPLOYMENTSETTING `: Deployment settings of the Deployment + - `[AddonConfig ]`: Collection of addons + - `[(Any) ]`: This indicates any property can be added to this object. + - `[ContainerProbeSettingDisableProbe ]`: Indicates whether disable the liveness and readiness probe + - `[EnvironmentVariable ]`: Collection of environment variables + - `[(Any) ]`: This indicates any property can be added to this object. + - `[LivenessProbeActionType ]`: The type of the action to take to perform the health check. + - `[LivenessProbeDisableProbe ]`: Indicate whether the probe is disabled. + - `[LivenessProbeFailureThreshold ]`: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + - `[LivenessProbeInitialDelaySecond ]`: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + - `[LivenessProbePeriodSecond ]`: How often (in seconds) to perform the probe. Minimum value is 1. + - `[LivenessProbeSuccessThreshold ]`: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + - `[LivenessProbeTimeoutSecond ]`: Number of seconds after which the probe times out. Minimum value is 1. + - `[ReadinessProbeActionType ]`: The type of the action to take to perform the health check. + - `[ReadinessProbeDisableProbe ]`: Indicate whether the probe is disabled. + - `[ReadinessProbeFailureThreshold ]`: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + - `[ReadinessProbeInitialDelaySecond ]`: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + - `[ReadinessProbePeriodSecond ]`: How often (in seconds) to perform the probe. Minimum value is 1. + - `[ReadinessProbeSuccessThreshold ]`: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + - `[ReadinessProbeTimeoutSecond ]`: Number of seconds after which the probe times out. Minimum value is 1. + - `[ResourceRequestCpu ]`: Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. + - `[ResourceRequestMemory ]`: Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. + - `[StartupProbeActionType ]`: The type of the action to take to perform the health check. + - `[StartupProbeDisableProbe ]`: Indicate whether the probe is disabled. + - `[StartupProbeFailureThreshold ]`: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + - `[StartupProbeInitialDelaySecond ]`: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + - `[StartupProbePeriodSecond ]`: How often (in seconds) to perform the probe. Minimum value is 1. + - `[StartupProbeSuccessThreshold ]`: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + - `[StartupProbeTimeoutSecond ]`: Number of seconds after which the probe times out. Minimum value is 1. + - `[TerminationGracePeriodSecond ]`: Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. + +`INPUTOBJECT `: Identity Parameter + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Update-AzAppPlatformMonitoringSettingPatch.md b/swaggerci/appplatform/docs/Update-AzAppPlatformMonitoringSettingPatch.md new file mode 100644 index 000000000000..e8cf950c7ac0 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformMonitoringSettingPatch.md @@ -0,0 +1,327 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformmonitoringsettingpatch +schema: 2.0.0 +--- + +# Update-AzAppPlatformMonitoringSettingPatch + +## SYNOPSIS +Update the Monitoring Setting. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzAppPlatformMonitoringSettingPatch -ResourceGroupName -ServiceName + [-SubscriptionId ] [-AppInsightsInstrumentationKey ] [-AppInsightsSamplingRate ] + [-Code ] [-Message ] [-TraceEnabled] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformMonitoringSettingPatch -InputObject + [-AppInsightsInstrumentationKey ] [-AppInsightsSamplingRate ] [-Code ] + [-Message ] [-TraceEnabled] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Update the Monitoring Setting. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AppInsightsInstrumentationKey +Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AppInsightsSamplingRate +Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + +```yaml +Type: System.Double +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 +``` + +### -Code +The code of error. + +```yaml +Type: System.String +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Message +The message of error. + +```yaml +Type: System.String +Parameter Sets: (All) +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ServiceName +The name of the Service resource. + +```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 ID which uniquely identify the 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 +``` + +### -TraceEnabled +Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. +Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings 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 +``` + +### -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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/Update-AzAppPlatformService.md b/swaggerci/appplatform/docs/Update-AzAppPlatformService.md new file mode 100644 index 000000000000..6180d9e452f5 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformService.md @@ -0,0 +1,515 @@ +--- +external help file: +Module Name: Az.AppPlatform +online version: https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformservice +schema: 2.0.0 +--- + +# Update-AzAppPlatformService + +## SYNOPSIS +Operation to update an exiting Service. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzAppPlatformService -Name -ResourceGroupName [-SubscriptionId ] + [-IngressConfigReadTimeoutInSecond ] [-Location ] [-MarketplaceResourcePlan ] + [-MarketplaceResourceProduct ] [-MarketplaceResourcePublisher ] + [-NetworkProfileAppNetworkResourceGroup ] [-NetworkProfileAppSubnetId ] + [-NetworkProfileOutboundType ] [-NetworkProfileServiceCidr ] + [-NetworkProfileServiceRuntimeNetworkResourceGroup ] [-NetworkProfileServiceRuntimeSubnetId ] + [-SkuCapacity ] [-SkuName ] [-SkuTier ] [-Tag ] + [-VnetAddonLogStreamPublicEndpoint] [-ZoneRedundant] [-DefaultProfile ] [-AsJob] [-NoWait] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformService -InputObject [-IngressConfigReadTimeoutInSecond ] + [-Location ] [-MarketplaceResourcePlan ] [-MarketplaceResourceProduct ] + [-MarketplaceResourcePublisher ] [-NetworkProfileAppNetworkResourceGroup ] + [-NetworkProfileAppSubnetId ] [-NetworkProfileOutboundType ] + [-NetworkProfileServiceCidr ] [-NetworkProfileServiceRuntimeNetworkResourceGroup ] + [-NetworkProfileServiceRuntimeSubnetId ] [-SkuCapacity ] [-SkuName ] + [-SkuTier ] [-Tag ] [-VnetAddonLogStreamPublicEndpoint] [-ZoneRedundant] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Operation to update an exiting Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ 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 +``` + +### -IngressConfigReadTimeoutInSecond +Ingress read time out in seconds. + +```yaml +Type: System.Int32 +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.AppPlatform.Models.IAppPlatformIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Location +The GEO location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MarketplaceResourcePlan +The plan id of the 3rd Party Artifact that is being procured. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MarketplaceResourceProduct +The 3rd Party artifact that is being procured. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MarketplaceResourcePublisher +The publisher id of the 3rd Party Artifact that is being bought. + +```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 Service resource. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ServiceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileAppNetworkResourceGroup +Name of the resource group containing network resources for customer apps in Azure Spring Apps + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileAppSubnetId +Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileOutboundType +The egress traffic type of Azure Spring Apps VNet instances. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileServiceCidr +Azure Spring Apps service reserved CIDR + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileServiceRuntimeNetworkResourceGroup +Name of the resource group containing network resources of Azure Spring Apps Service Runtime + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NetworkProfileServiceRuntimeSubnetId +Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + +```yaml +Type: System.String +Parameter Sets: (All) +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 +``` + +### -ResourceGroupName +The name of the resource group that contains the resource. +You can obtain this value from the Azure Resource Manager API or the portal. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuCapacity +Current capacity of the target resource + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +Name of the Sku + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuTier +Tier of the Sku + +```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 ID which uniquely identify the 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 +Tags of the service which is a list of key value pairs that describe the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VnetAddonLogStreamPublicEndpoint +Indicates whether the log stream in vnet injection instance could be accessed from internet. + +```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 +``` + +### -ZoneRedundant +. + +```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 +``` + +### -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.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + +## 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 + - `[AgentPoolName ]`: The name of the build service agent pool resource. + - `[ApiPortalName ]`: The name of API portal. + - `[AppName ]`: The name of the App resource. + - `[ApplicationAcceleratorName ]`: The name of the application accelerator. + - `[ApplicationLiveViewName ]`: The name of Application Live View. + - `[BindingName ]`: The name of the Binding resource. + - `[BuildName ]`: The name of the build resource. + - `[BuildResultName ]`: The name of the build result resource. + - `[BuildServiceName ]`: The name of the build service resource. + - `[BuilderName ]`: The name of the builder resource. + - `[BuildpackBindingName ]`: The name of the Buildpack Binding Name + - `[BuildpackName ]`: The name of the buildpack resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[ConfigurationServiceName ]`: The name of Application Configuration Service. + - `[CustomizedAcceleratorName ]`: The name of the customized accelerator. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DevToolPortalName ]`: The name of Dev Tool Portal. + - `[DomainName ]`: The name of the custom domain resource. + - `[GatewayName ]`: The name of Spring Cloud Gateway. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[PredefinedAcceleratorName ]`: The name of the predefined accelerator. + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[RouteConfigName ]`: The name of the Spring Cloud Gateway route config. + - `[ServiceName ]`: The name of the Service resource. + - `[ServiceRegistryName ]`: The name of Service Registry. + - `[StackName ]`: The name of the stack resource. + - `[StorageName ]`: The name of the storage resource. + - `[SubscriptionId ]`: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +## RELATED LINKS + diff --git a/swaggerci/appplatform/examples/Disable-AzAppPlatformDeploymentRemoteDebugging.md b/swaggerci/appplatform/examples/Disable-AzAppPlatformDeploymentRemoteDebugging.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Disable-AzAppPlatformDeploymentRemoteDebugging.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Disable-AzAppPlatformPredefinedAccelerator.md b/swaggerci/appplatform/examples/Disable-AzAppPlatformPredefinedAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Disable-AzAppPlatformPredefinedAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Disable-AzAppPlatformServiceTestEndpoint.md b/swaggerci/appplatform/examples/Disable-AzAppPlatformServiceTestEndpoint.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Disable-AzAppPlatformServiceTestEndpoint.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Enable-AzAppPlatformDeploymentRemoteDebugging.md b/swaggerci/appplatform/examples/Enable-AzAppPlatformDeploymentRemoteDebugging.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Enable-AzAppPlatformDeploymentRemoteDebugging.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Enable-AzAppPlatformPredefinedAccelerator.md b/swaggerci/appplatform/examples/Enable-AzAppPlatformPredefinedAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Enable-AzAppPlatformPredefinedAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Enable-AzAppPlatformServiceTestEndpoint.md b/swaggerci/appplatform/examples/Enable-AzAppPlatformServiceTestEndpoint.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Enable-AzAppPlatformServiceTestEndpoint.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformApiPortal.md b/swaggerci/appplatform/examples/Get-AzAppPlatformApiPortal.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformApiPortal.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformApiPortalCustomDomain.md b/swaggerci/appplatform/examples/Get-AzAppPlatformApiPortalCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformApiPortalCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformApp.md b/swaggerci/appplatform/examples/Get-AzAppPlatformApp.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformApp.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformAppResourceUploadUrl.md b/swaggerci/appplatform/examples/Get-AzAppPlatformAppResourceUploadUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformAppResourceUploadUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformApplicationAccelerator.md b/swaggerci/appplatform/examples/Get-AzAppPlatformApplicationAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformApplicationAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformApplicationLiveView.md b/swaggerci/appplatform/examples/Get-AzAppPlatformApplicationLiveView.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformApplicationLiveView.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBinding.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBinding.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBinding.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildService.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceAgentPool.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceAgentPool.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceAgentPool.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuild.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuild.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuild.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuildResult.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuildResult.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuildResult.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuildResultLog.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuildResultLog.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuildResultLog.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuilder.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuilder.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuilder.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuilderDeployment.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuilderDeployment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceBuilderDeployment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceResourceUploadUrl.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceResourceUploadUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceResourceUploadUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceSupportedBuildpack.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceSupportedBuildpack.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceSupportedBuildpack.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceSupportedStack.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceSupportedStack.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildServiceSupportedStack.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBuildpackBinding.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildpackBinding.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBuildpackBinding.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformCertificate.md b/swaggerci/appplatform/examples/Get-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformConfigServer.md b/swaggerci/appplatform/examples/Get-AzAppPlatformConfigServer.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformConfigServer.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformConfigurationService.md b/swaggerci/appplatform/examples/Get-AzAppPlatformConfigurationService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformConfigurationService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/examples/Get-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformCustomizedAccelerator.md b/swaggerci/appplatform/examples/Get-AzAppPlatformCustomizedAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformCustomizedAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Get-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformDeployment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentLogFileUrl.md b/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentLogFileUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentLogFileUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md b/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformDevToolPortal.md b/swaggerci/appplatform/examples/Get-AzAppPlatformDevToolPortal.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformDevToolPortal.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformGateway.md b/swaggerci/appplatform/examples/Get-AzAppPlatformGateway.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformGateway.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayCustomDomain.md b/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayEnvSecret.md b/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayEnvSecret.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayEnvSecret.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayRouteConfig.md b/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayRouteConfig.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformGatewayRouteConfig.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformMonitoringSetting.md b/swaggerci/appplatform/examples/Get-AzAppPlatformMonitoringSetting.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformMonitoringSetting.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformPredefinedAccelerator.md b/swaggerci/appplatform/examples/Get-AzAppPlatformPredefinedAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformPredefinedAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformRuntimeVersion.md b/swaggerci/appplatform/examples/Get-AzAppPlatformRuntimeVersion.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformRuntimeVersion.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformService.md b/swaggerci/appplatform/examples/Get-AzAppPlatformService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformServiceRegistry.md b/swaggerci/appplatform/examples/Get-AzAppPlatformServiceRegistry.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformServiceRegistry.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformServiceTestKey.md b/swaggerci/appplatform/examples/Get-AzAppPlatformServiceTestKey.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformServiceTestKey.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformSku.md b/swaggerci/appplatform/examples/Get-AzAppPlatformSku.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformSku.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformStorage.md b/swaggerci/appplatform/examples/Get-AzAppPlatformStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformApiPortal.md b/swaggerci/appplatform/examples/New-AzAppPlatformApiPortal.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformApiPortal.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformApiPortalCustomDomain.md b/swaggerci/appplatform/examples/New-AzAppPlatformApiPortalCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformApiPortalCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformApp.md b/swaggerci/appplatform/examples/New-AzAppPlatformApp.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformApp.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformApplicationAccelerator.md b/swaggerci/appplatform/examples/New-AzAppPlatformApplicationAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformApplicationAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformApplicationLiveView.md b/swaggerci/appplatform/examples/New-AzAppPlatformApplicationLiveView.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformApplicationLiveView.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformBinding.md b/swaggerci/appplatform/examples/New-AzAppPlatformBinding.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformBinding.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformBuildServiceBuild.md b/swaggerci/appplatform/examples/New-AzAppPlatformBuildServiceBuild.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformBuildServiceBuild.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformBuildServiceBuilder.md b/swaggerci/appplatform/examples/New-AzAppPlatformBuildServiceBuilder.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformBuildServiceBuilder.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformBuildpackBinding.md b/swaggerci/appplatform/examples/New-AzAppPlatformBuildpackBinding.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformBuildpackBinding.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformCertificate.md b/swaggerci/appplatform/examples/New-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformConfigurationService.md b/swaggerci/appplatform/examples/New-AzAppPlatformConfigurationService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformConfigurationService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/examples/New-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformCustomizedAccelerator.md b/swaggerci/appplatform/examples/New-AzAppPlatformCustomizedAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformCustomizedAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/New-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformDeployment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformDeploymentHeapDump.md b/swaggerci/appplatform/examples/New-AzAppPlatformDeploymentHeapDump.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformDeploymentHeapDump.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformDeploymentThreadDump.md b/swaggerci/appplatform/examples/New-AzAppPlatformDeploymentThreadDump.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformDeploymentThreadDump.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformDevToolPortal.md b/swaggerci/appplatform/examples/New-AzAppPlatformDevToolPortal.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformDevToolPortal.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformGateway.md b/swaggerci/appplatform/examples/New-AzAppPlatformGateway.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformGateway.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformGatewayCustomDomain.md b/swaggerci/appplatform/examples/New-AzAppPlatformGatewayCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformGatewayCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformGatewayRouteConfig.md b/swaggerci/appplatform/examples/New-AzAppPlatformGatewayRouteConfig.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformGatewayRouteConfig.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformService.md b/swaggerci/appplatform/examples/New-AzAppPlatformService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformServiceTestKey.md b/swaggerci/appplatform/examples/New-AzAppPlatformServiceTestKey.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformServiceTestKey.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformStorage.md b/swaggerci/appplatform/examples/New-AzAppPlatformStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformApiPortal.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformApiPortal.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformApiPortal.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformApiPortalCustomDomain.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformApiPortalCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformApiPortalCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformApp.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformApp.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformApp.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformApplicationAccelerator.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformApplicationAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformApplicationAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformApplicationLiveView.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformApplicationLiveView.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformApplicationLiveView.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformBinding.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformBinding.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformBinding.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformBuildServiceBuilder.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformBuildServiceBuilder.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformBuildServiceBuilder.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformBuildpackBinding.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformBuildpackBinding.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformBuildpackBinding.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformCertificate.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformCertificate.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformConfigurationService.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformConfigurationService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformConfigurationService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomizedAccelerator.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomizedAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomizedAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformDeployment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformDevToolPortal.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformDevToolPortal.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformDevToolPortal.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformGateway.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformGateway.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformGateway.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformGatewayCustomDomain.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformGatewayCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformGatewayCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformGatewayRouteConfig.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformGatewayRouteConfig.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformGatewayRouteConfig.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformService.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformServiceRegistry.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformServiceRegistry.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformServiceRegistry.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformStorage.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformStorage.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformStorage.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Restart-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Restart-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Restart-AzAppPlatformDeployment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Start-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Start-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Start-AzAppPlatformDeployment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Start-AzAppPlatformDeploymentJfr.md b/swaggerci/appplatform/examples/Start-AzAppPlatformDeploymentJfr.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Start-AzAppPlatformDeploymentJfr.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Start-AzAppPlatformService.md b/swaggerci/appplatform/examples/Start-AzAppPlatformService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Start-AzAppPlatformService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Stop-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Stop-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Stop-AzAppPlatformDeployment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Stop-AzAppPlatformService.md b/swaggerci/appplatform/examples/Stop-AzAppPlatformService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Stop-AzAppPlatformService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformApiPortalDomain.md b/swaggerci/appplatform/examples/Test-AzAppPlatformApiPortalDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformApiPortalDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformAppDomain.md b/swaggerci/appplatform/examples/Test-AzAppPlatformAppDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformAppDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformConfigServer.md b/swaggerci/appplatform/examples/Test-AzAppPlatformConfigServer.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformConfigServer.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformConfigurationService.md b/swaggerci/appplatform/examples/Test-AzAppPlatformConfigurationService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformConfigurationService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformCustomizedAccelerator.md b/swaggerci/appplatform/examples/Test-AzAppPlatformCustomizedAccelerator.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformCustomizedAccelerator.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformGatewayDomain.md b/swaggerci/appplatform/examples/Test-AzAppPlatformGatewayDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformGatewayDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformServiceNameAvailability.md b/swaggerci/appplatform/examples/Test-AzAppPlatformServiceNameAvailability.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformServiceNameAvailability.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformApp.md b/swaggerci/appplatform/examples/Update-AzAppPlatformApp.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformApp.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformBinding.md b/swaggerci/appplatform/examples/Update-AzAppPlatformBinding.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformBinding.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformConfigServerPatch.md b/swaggerci/appplatform/examples/Update-AzAppPlatformConfigServerPatch.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformConfigServerPatch.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/examples/Update-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformCustomDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Update-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformDeployment.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformMonitoringSettingPatch.md b/swaggerci/appplatform/examples/Update-AzAppPlatformMonitoringSettingPatch.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformMonitoringSettingPatch.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformService.md b/swaggerci/appplatform/examples/Update-AzAppPlatformService.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformService.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/export-surface.ps1 b/swaggerci/appplatform/export-surface.ps1 new file mode 100644 index 000000000000..f2f5fdc61147 --- /dev/null +++ b/swaggerci/appplatform/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.AppPlatform.private.dll' +if(-not (Test-Path $dll)) { + Write-Error "Unable to find output assembly in '$binFolder'." +} +$null = Import-Module -Name $dll + +$moduleName = 'Az.AppPlatform' +$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/appplatform/exports/Disable-AzAppPlatformDeploymentRemoteDebugging.ps1 b/swaggerci/appplatform/exports/Disable-AzAppPlatformDeploymentRemoteDebugging.ps1 new file mode 100644 index 000000000000..1640f49a5a97 --- /dev/null +++ b/swaggerci/appplatform/exports/Disable-AzAppPlatformDeploymentRemoteDebugging.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disable remote debugging. +.Description +Disable remote debugging. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/disable-azappplatformdeploymentremotedebugging +#> +function Disable-AzAppPlatformDeploymentRemoteDebugging { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging])] +[CmdletBinding(DefaultParameterSetName='Disable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DisableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Disable = 'Az.AppPlatform.private\Disable-AzAppPlatformDeploymentRemoteDebugging_Disable'; + DisableViaIdentity = 'Az.AppPlatform.private\Disable-AzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity'; + } + if (('Disable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Disable-AzAppPlatformPredefinedAccelerator.ps1 b/swaggerci/appplatform/exports/Disable-AzAppPlatformPredefinedAccelerator.ps1 new file mode 100644 index 000000000000..063e24f37e9f --- /dev/null +++ b/swaggerci/appplatform/exports/Disable-AzAppPlatformPredefinedAccelerator.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Disable predefined accelerator. +.Description +Disable predefined accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/disable-azappplatformpredefinedaccelerator +#> +function Disable-AzAppPlatformPredefinedAccelerator { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Disable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Alias('PredefinedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the predefined accelerator. + ${Name}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DisableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Disable = 'Az.AppPlatform.private\Disable-AzAppPlatformPredefinedAccelerator_Disable'; + DisableViaIdentity = 'Az.AppPlatform.private\Disable-AzAppPlatformPredefinedAccelerator_DisableViaIdentity'; + } + if (('Disable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Disable-AzAppPlatformServiceTestEndpoint.ps1 b/swaggerci/appplatform/exports/Disable-AzAppPlatformServiceTestEndpoint.ps1 new file mode 100644 index 000000000000..ab29697e5827 --- /dev/null +++ b/swaggerci/appplatform/exports/Disable-AzAppPlatformServiceTestEndpoint.ps1 @@ -0,0 +1,223 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Disable test endpoint functionality for a Service. +.Description +Disable test endpoint functionality for a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/disable-azappplatformservicetestendpoint +#> +function Disable-AzAppPlatformServiceTestEndpoint { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Disable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DisableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Disable = 'Az.AppPlatform.private\Disable-AzAppPlatformServiceTestEndpoint_Disable'; + DisableViaIdentity = 'Az.AppPlatform.private\Disable-AzAppPlatformServiceTestEndpoint_DisableViaIdentity'; + } + if (('Disable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Enable-AzAppPlatformDeploymentRemoteDebugging.ps1 b/swaggerci/appplatform/exports/Enable-AzAppPlatformDeploymentRemoteDebugging.ps1 new file mode 100644 index 000000000000..41135846f8d3 --- /dev/null +++ b/swaggerci/appplatform/exports/Enable-AzAppPlatformDeploymentRemoteDebugging.ps1 @@ -0,0 +1,269 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Enable remote debugging. +.Description +Enable remote debugging. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +REMOTEDEBUGGINGPAYLOAD : Remote debugging payload. + [Port ]: Application debugging port. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/enable-azappplatformdeploymentremotedebugging +#> +function Enable-AzAppPlatformDeploymentRemoteDebugging { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging])] +[CmdletBinding(DefaultParameterSetName='EnableExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Enable', Mandatory)] + [Parameter(ParameterSetName='EnableExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Parameter(ParameterSetName='EnableExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Parameter(ParameterSetName='EnableExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Parameter(ParameterSetName='EnableExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Enable')] + [Parameter(ParameterSetName='EnableExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='EnableViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='EnableViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Enable', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='EnableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload] + # Remote debugging payload. + # To construct, see NOTES section for REMOTEDEBUGGINGPAYLOAD properties and create a hash table. + ${RemoteDebuggingPayload}, + + [Parameter(ParameterSetName='EnableExpanded')] + [Parameter(ParameterSetName='EnableViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Application debugging port. + ${Port}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Enable = 'Az.AppPlatform.private\Enable-AzAppPlatformDeploymentRemoteDebugging_Enable'; + EnableExpanded = 'Az.AppPlatform.private\Enable-AzAppPlatformDeploymentRemoteDebugging_EnableExpanded'; + EnableViaIdentity = 'Az.AppPlatform.private\Enable-AzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity'; + EnableViaIdentityExpanded = 'Az.AppPlatform.private\Enable-AzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded'; + } + if (('Enable', 'EnableExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Enable-AzAppPlatformPredefinedAccelerator.ps1 b/swaggerci/appplatform/exports/Enable-AzAppPlatformPredefinedAccelerator.ps1 new file mode 100644 index 000000000000..846da970aa67 --- /dev/null +++ b/swaggerci/appplatform/exports/Enable-AzAppPlatformPredefinedAccelerator.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Enable predefined accelerator. +.Description +Enable predefined accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/enable-azappplatformpredefinedaccelerator +#> +function Enable-AzAppPlatformPredefinedAccelerator { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Enable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Alias('PredefinedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the predefined accelerator. + ${Name}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Enable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='EnableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Enable = 'Az.AppPlatform.private\Enable-AzAppPlatformPredefinedAccelerator_Enable'; + EnableViaIdentity = 'Az.AppPlatform.private\Enable-AzAppPlatformPredefinedAccelerator_EnableViaIdentity'; + } + if (('Enable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Enable-AzAppPlatformServiceTestEndpoint.ps1 b/swaggerci/appplatform/exports/Enable-AzAppPlatformServiceTestEndpoint.ps1 new file mode 100644 index 000000000000..0104fa71c481 --- /dev/null +++ b/swaggerci/appplatform/exports/Enable-AzAppPlatformServiceTestEndpoint.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Enable test endpoint functionality for a Service. +.Description +Enable test endpoint functionality for a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/enable-azappplatformservicetestendpoint +#> +function Enable-AzAppPlatformServiceTestEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys])] +[CmdletBinding(DefaultParameterSetName='Enable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Enable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='EnableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Enable = 'Az.AppPlatform.private\Enable-AzAppPlatformServiceTestEndpoint_Enable'; + EnableViaIdentity = 'Az.AppPlatform.private\Enable-AzAppPlatformServiceTestEndpoint_EnableViaIdentity'; + } + if (('Enable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformApiPortal.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformApiPortal.ps1 new file mode 100644 index 000000000000..144a4b8722ab --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformApiPortal.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the API portal and its properties. +.Description +Get the API portal and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapiportal +#> +function Get-AzAppPlatformApiPortal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApiPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortal_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortal_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformApiPortalCustomDomain.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformApiPortalCustomDomain.ps1 new file mode 100644 index 000000000000..53d499aa7477 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformApiPortalCustomDomain.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the API portal custom domain. +.Description +Get the API portal custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapiportalcustomdomain +#> +function Get-AzAppPlatformApiPortalCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${ApiPortalName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the API portal custom domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortalCustomDomain_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortalCustomDomain_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortalCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformApp.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformApp.ps1 new file mode 100644 index 000000000000..fabf3f95a783 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformApp.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get an App and its properties. +.Description +Get an App and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapp +#> +function Get-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('AppName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='GetViaIdentity')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Query')] + [System.String] + # Indicates whether sync status + ${SyncStatus}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApp_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApp_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApp_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformAppResourceUploadUrl.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformAppResourceUploadUrl.ps1 new file mode 100644 index 000000000000..7687b5af0da7 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformAppResourceUploadUrl.ps1 @@ -0,0 +1,223 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get an resource upload URL for an App, which may be artifacts or source archive. +.Description +Get an resource upload URL for an App, which may be artifacts or source archive. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformappresourceuploadurl +#> +function Get-AzAppPlatformAppResourceUploadUrl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformAppResourceUploadUrl_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformAppResourceUploadUrl_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformApplicationAccelerator.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformApplicationAccelerator.ps1 new file mode 100644 index 000000000000..439a08c4e40c --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformApplicationAccelerator.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the application accelerator. +.Description +Get the application accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapplicationaccelerator +#> +function Get-AzAppPlatformApplicationAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApplicationAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationAccelerator_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationAccelerator_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformApplicationLiveView.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformApplicationLiveView.ps1 new file mode 100644 index 000000000000..57427e8933ee --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformApplicationLiveView.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the Application Live and its properties. +.Description +Get the Application Live and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapplicationliveview +#> +function Get-AzAppPlatformApplicationLiveView { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApplicationLiveViewName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Live View. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationLiveView_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationLiveView_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationLiveView_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBinding.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBinding.ps1 new file mode 100644 index 000000000000..807b41737961 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBinding.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a Binding and its properties. +.Description +Get a Binding and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbinding +#> +function Get-AzAppPlatformBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('BindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Binding resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBinding_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBinding_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildService.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildService.ps1 new file mode 100644 index 000000000000..c15da03813f3 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildService.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get a build service resource. +.Description +Get a build service resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservice +#> +function Get-AzAppPlatformBuildService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('BuildServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildService_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildService_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceAgentPool.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceAgentPool.ps1 new file mode 100644 index 000000000000..9abcace686d4 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceAgentPool.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get build service agent pool. +.Description +Get build service agent pool. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildserviceagentpool +#> +function Get-AzAppPlatformBuildServiceAgentPool { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service agent pool resource. + ${AgentPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceAgentPool_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceAgentPool_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceAgentPool_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuild.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuild.ps1 new file mode 100644 index 000000000000..e944a55efb46 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuild.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a KPack build. +.Description +Get a KPack build. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicebuild +#> +function Get-AzAppPlatformBuildServiceBuild { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build resource. + ${BuildName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuild_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuild_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuild_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuildResult.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuildResult.ps1 new file mode 100644 index 000000000000..46a973d2de9f --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuildResult.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a KPack build result. +.Description +Get a KPack build result. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicebuildresult +#> +function Get-AzAppPlatformBuildServiceBuildResult { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build resource. + ${BuildName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build result resource. + ${BuildResultName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResult_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResult_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResult_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuildResultLog.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuildResultLog.ps1 new file mode 100644 index 000000000000..c205710803f5 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuildResultLog.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a KPack build result log download URL. +.Description +Get a KPack build result log download URL. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicebuildresultlog +#> +function Get-AzAppPlatformBuildServiceBuildResultLog { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build resource. + ${BuildName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build result resource. + ${BuildResultName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResultLog_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResultLog_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuilder.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuilder.ps1 new file mode 100644 index 000000000000..5dfab5d2fa4f --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuilder.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a KPack builder. +.Description +Get a KPack builder. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicebuilder +#> +function Get-AzAppPlatformBuildServiceBuilder { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuilder_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuilder_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuilder_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuilderDeployment.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuilderDeployment.ps1 new file mode 100644 index 000000000000..b5569ca605d6 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceBuilderDeployment.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 +List deployments that are using the builder. +.Description +List deployments that are using the builder. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicebuilderdeployment +#> +function Get-AzAppPlatformBuildServiceBuilderDeployment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuilderDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceResourceUploadUrl.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceResourceUploadUrl.ps1 new file mode 100644 index 000000000000..6ba9edbc40f6 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceResourceUploadUrl.ps1 @@ -0,0 +1,223 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get an resource upload URL for build service, which may be artifacts or source archive. +.Description +Get an resource upload URL for build service, which may be artifacts or source archive. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildserviceresourceuploadurl +#> +function Get-AzAppPlatformBuildServiceResourceUploadUrl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceResourceUploadUrl_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceResourceUploadUrl_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceSupportedBuildpack.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceSupportedBuildpack.ps1 new file mode 100644 index 000000000000..280d7a99d075 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceSupportedBuildpack.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the supported buildpack resource. +.Description +Get the supported buildpack resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicesupportedbuildpack +#> +function Get-AzAppPlatformBuildServiceSupportedBuildpack { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource], [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the buildpack resource. + ${BuildpackName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedBuildpack_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedBuildpack_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedBuildpack_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceSupportedStack.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceSupportedStack.ps1 new file mode 100644 index 000000000000..37086876b5d5 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildServiceSupportedStack.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the supported stack resource. +.Description +Get the supported stack resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicesupportedstack +#> +function Get-AzAppPlatformBuildServiceSupportedStack { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource], [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the stack resource. + ${StackName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedStack_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedStack_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedStack_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformBuildpackBinding.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildpackBinding.ps1 new file mode 100644 index 000000000000..288e0dfe479c --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBuildpackBinding.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a buildpack binding by name. +.Description +Get a buildpack binding by name. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildpackbinding +#> +function Get-AzAppPlatformBuildpackBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('BuildpackBindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Buildpack Binding Name + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildpackBinding_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildpackBinding_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildpackBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformCertificate.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformCertificate.ps1 new file mode 100644 index 000000000000..7dbf7913d6a9 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformCertificate.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the certificate resource. +.Description +Get the certificate resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformcertificate +#> +function Get-AzAppPlatformCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the certificate resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformCertificate_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformCertificate_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformCertificate_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformConfigServer.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformConfigServer.ps1 new file mode 100644 index 000000000000..45f2d13cfb09 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformConfigServer.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the config server and its properties. +.Description +Get the config server and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformconfigserver +#> +function Get-AzAppPlatformConfigServer { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformConfigServer_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformConfigServer_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformConfigurationService.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformConfigurationService.ps1 new file mode 100644 index 000000000000..20a8b241f1e0 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformConfigurationService.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the Application Configuration Service and its properties. +.Description +Get the Application Configuration Service and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformconfigurationservice +#> +function Get-AzAppPlatformConfigurationService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ConfigurationServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Configuration Service. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformConfigurationService_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformConfigurationService_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformConfigurationService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformCustomDomain.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformCustomDomain.ps1 new file mode 100644 index 000000000000..5151db48beba --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformCustomDomain.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the custom domain of one lifecycle application. +.Description +Get the custom domain of one lifecycle application. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformcustomdomain +#> +function Get-AzAppPlatformCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the custom domain resource. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformCustomDomain_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformCustomDomain_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformCustomizedAccelerator.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformCustomizedAccelerator.ps1 new file mode 100644 index 000000000000..ad05b2b516b0 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformCustomizedAccelerator.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the customized accelerator. +.Description +Get the customized accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformcustomizedaccelerator +#> +function Get-AzAppPlatformCustomizedAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('CustomizedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the customized accelerator. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformCustomizedAccelerator_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformCustomizedAccelerator_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformCustomizedAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..ca649ed50871 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformDeployment.ps1 @@ -0,0 +1,247 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get a Deployment and its properties. +.Description +Get a Deployment and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformdeployment +#> +function Get-AzAppPlatformDeployment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Query')] + [System.String[]] + # Version of the deployments to be listed + ${Version}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformDeployment_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformDeployment_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformDeployment_List'; + List1 = 'Az.AppPlatform.private\Get-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentLogFileUrl.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentLogFileUrl.ps1 new file mode 100644 index 000000000000..f705eac06816 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentLogFileUrl.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get deployment log file URL +.Description +Get deployment log file URL +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformdeploymentlogfileurl +#> +function Get-AzAppPlatformDeploymentLogFileUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformDeploymentLogFileUrl_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformDeploymentLogFileUrl_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.ps1 new file mode 100644 index 000000000000..734c94068a5c --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.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 +Get remote debugging config. +.Description +Get remote debugging config. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformdeploymentremotedebuggingconfig +#> +function Get-AzAppPlatformDeploymentRemoteDebuggingConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformDeploymentRemoteDebuggingConfig_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformDeploymentRemoteDebuggingConfig_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformDevToolPortal.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformDevToolPortal.ps1 new file mode 100644 index 000000000000..eb3f81e53b61 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformDevToolPortal.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the Application Live and its properties. +.Description +Get the Application Live and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformdevtoolportal +#> +function Get-AzAppPlatformDevToolPortal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DevToolPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Dev Tool Portal. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformDevToolPortal_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformDevToolPortal_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformDevToolPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformGateway.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformGateway.ps1 new file mode 100644 index 000000000000..8d65eab3a4fe --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformGateway.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the Spring Cloud Gateway and its properties. +.Description +Get the Spring Cloud Gateway and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformgateway +#> +function Get-AzAppPlatformGateway { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('GatewayName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformGateway_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformGateway_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformGateway_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayCustomDomain.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayCustomDomain.ps1 new file mode 100644 index 000000000000..bfb8ffc53329 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayCustomDomain.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the Spring Cloud Gateway custom domain. +.Description +Get the Spring Cloud Gateway custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformgatewaycustomdomain +#> +function Get-AzAppPlatformGatewayCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway custom domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayCustomDomain_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayCustomDomain_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayEnvSecret.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayEnvSecret.ps1 new file mode 100644 index 000000000000..5602cea43193 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayEnvSecret.ps1 @@ -0,0 +1,178 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +List sensitive environment variables of Spring Cloud Gateway. +.Description +List sensitive environment variables of Spring Cloud Gateway. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformgatewayenvsecret +#> +function Get-AzAppPlatformGatewayEnvSecret { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayEnvSecret_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayRouteConfig.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayRouteConfig.ps1 new file mode 100644 index 000000000000..5119ce83e794 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformGatewayRouteConfig.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the Spring Cloud Gateway route configs. +.Description +Get the Spring Cloud Gateway route configs. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformgatewayrouteconfig +#> +function Get-AzAppPlatformGatewayRouteConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway route config. + ${RouteConfigName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayRouteConfig_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayRouteConfig_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayRouteConfig_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformMonitoringSetting.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformMonitoringSetting.ps1 new file mode 100644 index 000000000000..9f536f30f54e --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformMonitoringSetting.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the Monitoring Setting and its properties. +.Description +Get the Monitoring Setting and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformmonitoringsetting +#> +function Get-AzAppPlatformMonitoringSetting { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformMonitoringSetting_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformMonitoringSetting_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformPredefinedAccelerator.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformPredefinedAccelerator.ps1 new file mode 100644 index 000000000000..660b5b7adf22 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformPredefinedAccelerator.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the predefined accelerator. +.Description +Get the predefined accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformpredefinedaccelerator +#> +function Get-AzAppPlatformPredefinedAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PredefinedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the predefined accelerator. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformPredefinedAccelerator_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformPredefinedAccelerator_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformPredefinedAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformRuntimeVersion.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformRuntimeVersion.ps1 new file mode 100644 index 000000000000..458d89d9ffea --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformRuntimeVersion.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Lists all of the available runtime versions supported by Microsoft.AppPlatform provider. +.Description +Lists all of the available runtime versions supported by Microsoft.AppPlatform provider. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformruntimeversion +#> +function Get-AzAppPlatformRuntimeVersion { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformRuntimeVersion_List'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..738366a39188 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformService.ps1 @@ -0,0 +1,223 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get a Service and its properties. +.Description +Get a Service and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformservice +#> +function Get-AzAppPlatformService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformService_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformService_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformService_List'; + List1 = 'Az.AppPlatform.private\Get-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformServiceRegistry.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformServiceRegistry.ps1 new file mode 100644 index 000000000000..4b8ce36c4e83 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformServiceRegistry.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the Service Registry and its properties. +.Description +Get the Service Registry and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformserviceregistry +#> +function Get-AzAppPlatformServiceRegistry { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ServiceRegistryName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Service Registry. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformServiceRegistry_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformServiceRegistry_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformServiceRegistry_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformServiceTestKey.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformServiceTestKey.ps1 new file mode 100644 index 000000000000..f9b9c65de175 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformServiceTestKey.ps1 @@ -0,0 +1,172 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +List test keys for a Service. +.Description +List test keys for a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformservicetestkey +#> +function Get-AzAppPlatformServiceTestKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformServiceTestKey_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformSku.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformSku.ps1 new file mode 100644 index 000000000000..a64265a7f3d3 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformSku.ps1 @@ -0,0 +1,159 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 all of the available skus of the Microsoft.AppPlatform provider. +.Description +Lists all of the available skus of the Microsoft.AppPlatform provider. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformsku +#> +function Get-AzAppPlatformSku { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformSku_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Get-AzAppPlatformStorage.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformStorage.ps1 new file mode 100644 index 000000000000..4efd6f56d5d8 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformStorage.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Get the storage resource. +.Description +Get the storage resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformstorage +#> +function Get-AzAppPlatformStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('StorageName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the storage resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformStorage_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformStorage_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformStorage_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformApiPortal.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformApiPortal.ps1 new file mode 100644 index 000000000000..8163aebde046 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformApiPortal.ps1 @@ -0,0 +1,260 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 the default API portal or update the existing API portal. +.Description +Create the default API portal or update the existing API portal. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapiportal +#> +function New-AzAppPlatformApiPortal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApiPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # The array of resource Ids of gateway to integrate with API portal. + ${GatewayId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if only https is allowed. + ${HttpsOnly}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the API portal exposes endpoint. + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Collection of OpenAPI source URL locations. + ${SourceUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The public identifier for the application + ${SsoPropertyClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The secret known only to the application and the authorization server + ${SsoPropertyClientSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The URI of Issuer Identifier + ${SsoPropertyIssuerUri}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # It defines the specific actions applications can be allowed to do on a user's behalf + ${SsoPropertyScope}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApiPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformApiPortalCustomDomain.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformApiPortalCustomDomain.ps1 new file mode 100644 index 000000000000..31b981b07e38 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformApiPortalCustomDomain.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 +Create or update the API portal custom domain. +.Description +Create or update the API portal custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapiportalcustomdomain +#> +function New-AzAppPlatformApiPortalCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${ApiPortalName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the API portal custom domain. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The thumbprint of bound certificate. + ${Thumbprint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApiPortalCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformApp.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformApp.ps1 new file mode 100644 index 000000000000..61ec2ea02749 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformApp.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new App or update an exiting App. +.Description +Create a new App or update an exiting App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource +.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. + +CUSTOMPERSISTENTDISK : List of custom persistent disks + StorageId : The resource id of Azure Spring Apps Storage resource. + [CustomPersistentDiskPropertyMountOption ]: These are the mount options for a persistent disk. + [CustomPersistentDiskPropertyMountPath ]: The mount path of the persistent disk. + [CustomPersistentDiskPropertyReadOnly ]: Indicates whether the persistent disk is a readOnly one. + +LOADEDCERTIFICATE : Collection of loaded certificates + ResourceId : Resource Id of loaded certificate + [LoadTrustStore ]: Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapp +#> +function New-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('AppName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs]))] + [System.Collections.Hashtable] + # Collection of addons + ${AddonConfig}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Collection of certificate resource id. + ${ClientAuthCertificate}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[]] + # List of custom persistent disks + # To construct, see NOTES section for CUSTOMPERSISTENTDISK properties and create a hash table. + ${CustomPersistentDisk}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if end to end TLS is enabled. + ${EnableEndToEndTl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if only https is allowed. + ${HttpsOnly}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Principal Id of system-assigned managed identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tenant Id of system-assigned managed identity. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType] + # Type of the managed identity + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities]))] + [System.Collections.Hashtable] + # Properties of user-assigned managed identities + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol] + # How ingress should communicate with this app backend service. + ${IngressSettingBackendProtocol}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress read time out in seconds. + ${IngressSettingReadTimeoutInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress send time out in seconds. + ${IngressSettingSendTimeoutInSecond}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity] + # Type of the affinity, set this to Cookie to enable session affinity. + ${IngressSettingSessionAffinity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Time in seconds until the cookie expires. + ${IngressSettingSessionCookieMaxAge}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[]] + # Collection of loaded certificates + # To construct, see NOTES section for LOADEDCERTIFICATE properties and create a hash table. + ${LoadedCertificate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The GEO location of the application, always the same with its parent resource + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Mount path of the persistent disk + ${PersistentDiskMountPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Size of the persistent disk in GB + ${PersistentDiskSizeInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the App exposes public endpoint + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Mount path of the temporary disk + ${TemporaryDiskMountPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Size of the temporary disk in GB + ${TemporaryDiskSizeInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + ${VnetAddonPublicEndpoint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApp_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformApplicationAccelerator.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformApplicationAccelerator.ps1 new file mode 100644 index 000000000000..831a2e54110f --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformApplicationAccelerator.ps1 @@ -0,0 +1,209 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 the application accelerator. +.Description +Create or update the application accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapplicationaccelerator +#> +function New-AzAppPlatformApplicationAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApplicationAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApplicationAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformApplicationLiveView.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformApplicationLiveView.ps1 new file mode 100644 index 000000000000..d07e617233b3 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformApplicationLiveView.ps1 @@ -0,0 +1,191 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 the default Application Live View or update the existing Application Live View. +.Description +Create the default Application Live View or update the existing Application Live View. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapplicationliveview +#> +function New-AzAppPlatformApplicationLiveView { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApplicationLiveViewName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Live View. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApplicationLiveView_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformBinding.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformBinding.ps1 new file mode 100644 index 000000000000..826c231238f8 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformBinding.ps1 @@ -0,0 +1,216 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 new Binding or update an exiting Binding. +.Description +Create a new Binding or update an exiting Binding. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbinding +#> +function New-AzAppPlatformBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(Mandatory)] + [Alias('BindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Binding resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters]))] + [System.Collections.Hashtable] + # Binding parameters of the Binding resource + ${BindingParameter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The key of the bound resource + ${Key}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The Azure resource id of the bound resource + ${ResourceId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformBuildServiceBuild.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformBuildServiceBuild.ps1 new file mode 100644 index 000000000000..573f567bf940 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformBuildServiceBuild.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 +Create or update a KPack build. +.Description +Create or update a KPack build. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildservicebuild +#> +function New-AzAppPlatformBuildServiceBuild { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build resource. + ${BuildName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The resource id of agent pool + ${AgentPool}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The resource id of builder to build the source code + ${Builder}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv]))] + [System.Collections.Hashtable] + # The environment variables for this build + ${Env}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The relative path of source code + ${RelativePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Optional Cpu allocated to the build resource. + # 1 core can be represented by 1 or 1000m. + # The default value is 1, this should not exceed build service agent pool cpu size. + ${ResourceRequestCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Optional Memory allocated to the build resource. + # 1 GB can be represented by 1Gi or 1024Mi. + # The default value is 2Gi, this should not exceed build service agent pool memory size. + ${ResourceRequestMemory}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBuildServiceBuild_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformBuildServiceBuilder.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformBuildServiceBuilder.ps1 new file mode 100644 index 000000000000..b2794ebf3899 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformBuildServiceBuilder.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 +Create or update a KPack builder. +.Description +Create or update a KPack builder. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource +.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. + +BUILDPACKGROUP : Builder buildpack groups. + [Buildpack ]: Buildpacks in the buildpack group + [Id ]: Id of the buildpack + [Name ]: Buildpack group name +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildservicebuilder +#> +function New-AzAppPlatformBuildServiceBuilder { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[]] + # Builder buildpack groups. + # To construct, see NOTES section for BUILDPACKGROUP properties and create a hash table. + ${BuildpackGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Id of the ClusterStack. + ${StackId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Version of the ClusterStack + ${StackVersion}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBuildServiceBuilder_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformBuildpackBinding.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformBuildpackBinding.ps1 new file mode 100644 index 000000000000..737e1ced3860 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformBuildpackBinding.ps1 @@ -0,0 +1,224 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 buildpack binding. +.Description +Create or update a buildpack binding. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildpackbinding +#> +function New-AzAppPlatformBuildpackBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(Mandatory)] + [Alias('BuildpackBindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Buildpack Binding Name + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType] + # Buildpack Binding Type + ${BindingType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties]))] + [System.Collections.Hashtable] + # Non-sensitive properties for launchProperties + ${LaunchProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets]))] + [System.Collections.Hashtable] + # Sensitive properties for launchProperties + ${LaunchPropertySecret}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBuildpackBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformCertificate.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformCertificate.ps1 new file mode 100644 index 000000000000..031e638e19c8 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformCertificate.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update certificate resource. +.Description +Create or update certificate resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcertificate +#> +function New-AzAppPlatformCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the certificate resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The type of the certificate source. + ${PropertiesType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCertificate_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformConfigurationService.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformConfigurationService.ps1 new file mode 100644 index 000000000000..99f4553c5dfd --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformConfigurationService.ps1 @@ -0,0 +1,216 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 the default Application Configuration Service or update the existing Application Configuration Service. +.Description +Create the default Application Configuration Service or update the existing Application Configuration Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource +.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. + +GITPROPERTYREPOSITORY : Repositories of Application Configuration Service git property. + Label : Label of the repository + Name : Name of the repository + Pattern : Collection of patterns of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Password ]: Password of git repository basic auth. + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformconfigurationservice +#> +function New-AzAppPlatformConfigurationService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ConfigurationServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Configuration Service. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]] + # Repositories of Application Configuration Service git property. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformConfigurationService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformCustomDomain.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformCustomDomain.ps1 new file mode 100644 index 000000000000..7a1031cc6582 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformCustomDomain.ps1 @@ -0,0 +1,208 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 custom domain of one lifecycle application. +.Description +Create or update custom domain of one lifecycle application. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcustomdomain +#> +function New-AzAppPlatformCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the custom domain resource. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The bound certificate name of domain. + ${CertName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The thumbprint of bound certificate. + ${Thumbprint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformCustomizedAccelerator.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformCustomizedAccelerator.ps1 new file mode 100644 index 000000000000..6065ad64320c --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformCustomizedAccelerator.ps1 @@ -0,0 +1,276 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 the customized accelerator. +.Description +Create or update the customized accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcustomizedaccelerator +#> +function New-AzAppPlatformCustomizedAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(Mandatory)] + [Alias('CustomizedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the customized accelerator. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # . + ${AcceleratorTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The type of the auth setting. + ${AuthSettingAuthType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${DisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository branch to be used. + ${GitRepositoryBranch}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository commit to be used. + ${GitRepositoryCommit}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository tag to be used. + ${GitRepositoryGitTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Interval for checking for updates to Git or image repository. + ${GitRepositoryIntervalInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository URL for the accelerator. + ${GitRepositoryUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${IconUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCustomizedAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..fa9f0f2d065c --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformDeployment.ps1 @@ -0,0 +1,275 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 new Deployment or update an exiting Deployment. +.Description +Create a new Deployment or update an exiting Deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource +.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. + +DEPLOYMENTSETTING : Deployment settings of the Deployment + [AddonConfig ]: Collection of addons + [(Any) ]: This indicates any property can be added to this object. + [ContainerProbeSettingDisableProbe ]: Indicates whether disable the liveness and readiness probe + [EnvironmentVariable ]: Collection of environment variables + [(Any) ]: This indicates any property can be added to this object. + [LivenessProbeActionType ]: The type of the action to take to perform the health check. + [LivenessProbeDisableProbe ]: Indicate whether the probe is disabled. + [LivenessProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [LivenessProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [LivenessProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [LivenessProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [LivenessProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [ReadinessProbeActionType ]: The type of the action to take to perform the health check. + [ReadinessProbeDisableProbe ]: Indicate whether the probe is disabled. + [ReadinessProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [ReadinessProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [ReadinessProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [ReadinessProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [ReadinessProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [ResourceRequestCpu ]: Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. + [ResourceRequestMemory ]: Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. + [StartupProbeActionType ]: The type of the action to take to perform the health check. + [StartupProbeDisableProbe ]: Indicate whether the probe is disabled. + [StartupProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [StartupProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [StartupProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [StartupProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [StartupProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [TerminationGracePeriodSecond ]: Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdeployment +#> +function New-AzAppPlatformDeployment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the Deployment is active + ${Active}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings] + # Deployment settings of the Deployment + # To construct, see NOTES section for DEPLOYMENTSETTING properties and create a hash table. + ${DeploymentSetting}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Type of the source uploaded + ${SourceType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Version of the source + ${SourceVersion}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformDeploymentHeapDump.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformDeploymentHeapDump.ps1 new file mode 100644 index 000000000000..7980166b4dc5 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformDeploymentHeapDump.ps1 @@ -0,0 +1,292 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Generate Heap Dump +.Description +Generate Heap Dump +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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. + +DIAGNOSTICPARAMETER : Diagnostic parameters of diagnostic operations + [AppInstance ]: App instance name + [Duration ]: Duration of your JFR. 1 min can be represented by 1m or 60s. + [FilePath ]: Your target file path in your own BYOS + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/new-azappplatformdeploymentheapdump +#> +function New-AzAppPlatformDeploymentHeapDump { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Generate')] + [Parameter(ParameterSetName='GenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Generate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters] + # Diagnostic parameters of diagnostic operations + # To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + ${DiagnosticParameter}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # App instance name + ${AppInstance}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Duration of your JFR. + # 1 min can be represented by 1m or 60s. + ${Duration}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Your target file path in your own BYOS + ${FilePath}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Generate = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentHeapDump_Generate'; + GenerateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentHeapDump_GenerateExpanded'; + GenerateViaIdentity = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentHeapDump_GenerateViaIdentity'; + GenerateViaIdentityExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded'; + } + if (('Generate', 'GenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformDeploymentThreadDump.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformDeploymentThreadDump.ps1 new file mode 100644 index 000000000000..e6085746ab12 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformDeploymentThreadDump.ps1 @@ -0,0 +1,292 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Generate Thread Dump +.Description +Generate Thread Dump +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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. + +DIAGNOSTICPARAMETER : Diagnostic parameters of diagnostic operations + [AppInstance ]: App instance name + [Duration ]: Duration of your JFR. 1 min can be represented by 1m or 60s. + [FilePath ]: Your target file path in your own BYOS + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/new-azappplatformdeploymentthreaddump +#> +function New-AzAppPlatformDeploymentThreadDump { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Generate')] + [Parameter(ParameterSetName='GenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Generate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters] + # Diagnostic parameters of diagnostic operations + # To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + ${DiagnosticParameter}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # App instance name + ${AppInstance}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Duration of your JFR. + # 1 min can be represented by 1m or 60s. + ${Duration}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Your target file path in your own BYOS + ${FilePath}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Generate = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentThreadDump_Generate'; + GenerateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentThreadDump_GenerateExpanded'; + GenerateViaIdentity = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentThreadDump_GenerateViaIdentity'; + GenerateViaIdentityExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded'; + } + if (('Generate', 'GenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformDevToolPortal.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformDevToolPortal.ps1 new file mode 100644 index 000000000000..b4c8af577903 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformDevToolPortal.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create the default Dev Tool Portal or update the existing Dev Tool Portal. +.Description +Create the default Dev Tool Portal or update the existing Dev Tool Portal. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdevtoolportal +#> +function New-AzAppPlatformDevToolPortal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('DevToolPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Dev Tool Portal. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState] + # State of the plugin + ${ApplicationAcceleratorState}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState] + # State of the plugin + ${ApplicationLiveViewState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the resource exposes public endpoint + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The public identifier for the application + ${SsoPropertyClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The secret known only to the application and the authorization server + ${SsoPropertyClientSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The URI of a JSON file with generic OIDC provider configuration. + ${SsoPropertyMetadataUrl}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # It defines the specific actions applications can be allowed to do on a user's behalf + ${SsoPropertyScope}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDevToolPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformGateway.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformGateway.ps1 new file mode 100644 index 000000000000..2bb50fef4bc3 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformGateway.ps1 @@ -0,0 +1,355 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. +.Description +Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgateway +#> +function New-AzAppPlatformGateway { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('GatewayName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes the API routes configured.`) + ${ApiMetadataPropertyDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Location of additional documentation for the APIs available on the Gateway instance + ${ApiMetadataPropertyDocumentation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Base URL that API consumers will use to access APIs on the Gateway instance. + ${ApiMetadataPropertyServerUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + ${ApiMetadataPropertyTitle}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Version of APIs available on this Gateway instance (default: `unspecified`). + ${ApiMetadataPropertyVersion}, + + [Parameter()] + [AllowEmptyCollection()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[]] + # Collection of APM type used in Spring Cloud Gateway + ${ApmType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether user credentials are supported on cross-site requests. + # Valid values: `true`, `false`. + ${CorPropertyAllowCredentials}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Allowed headers in cross-site requests. + # The special value `*` allows actual requests to send any header. + ${CorPropertyAllowedHeader}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Allowed HTTP methods on cross-site requests. + # The special value `*` allows all methods. + # If not set, `GET` and `HEAD` are allowed by default. + ${CorPropertyAllowedMethod}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Allowed origins to make cross-site requests. + # The special value `*` allows all domains. + ${CorPropertyAllowedOrigin}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # HTTP response headers to expose for cross-site requests. + ${CorPropertyExposedHeader}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # How long, in seconds, the response from a pre-flight request can be cached by clients. + ${CorPropertyMaxAge}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties]))] + [System.Collections.Hashtable] + # Non-sensitive properties + ${EnvironmentVariableProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets]))] + [System.Collections.Hashtable] + # Sensitive properties + ${EnvironmentVariableSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if only https is allowed. + ${HttpsOnly}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the Spring Cloud Gateway exposes endpoint. + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Cpu allocated to each Spring Cloud Gateway instance. + ${ResourceRequestsCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Memory allocated to each Spring Cloud Gateway instance. + ${ResourceRequestsMemory}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The public identifier for the application + ${SsoPropertyClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The secret known only to the application and the authorization server + ${SsoPropertyClientSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The URI of Issuer Identifier + ${SsoPropertyIssuerUri}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # It defines the specific actions applications can be allowed to do on a user's behalf + ${SsoPropertyScope}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformGateway_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformGatewayCustomDomain.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformGatewayCustomDomain.ps1 new file mode 100644 index 000000000000..df884f14871c --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformGatewayCustomDomain.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 +Create or update the Spring Cloud Gateway custom domain. +.Description +Create or update the Spring Cloud Gateway custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgatewaycustomdomain +#> +function New-AzAppPlatformGatewayCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway custom domain. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The thumbprint of bound certificate. + ${Thumbprint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformGatewayCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformGatewayRouteConfig.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformGatewayRouteConfig.ps1 new file mode 100644 index 000000000000..5b3988aa533c --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformGatewayRouteConfig.ps1 @@ -0,0 +1,260 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. +.Description +Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource +.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. + +ROUTE : Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + [Description ]: A description, will be applied to methods in the generated OpenAPI documentation. + [Filter ]: To modify the request before sending it to the target endpoint, or the received response. + [Order ]: Route processing order. + [Predicate ]: A number of conditions to evaluate a route for each request. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request. + [SsoEnabled ]: Enable sso validation. + [Tag ]: Classification tags, will be applied to methods in the generated OpenAPI documentation. + [Title ]: A title, will be applied to methods in the generated OpenAPI documentation. + [TokenRelay ]: Pass currently-authenticated user's identity token to application service, default is 'false' + [Uri ]: Full uri, will override `appName`. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgatewayrouteconfig +#> +function New-AzAppPlatformGatewayRouteConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway route config. + ${RouteConfigName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + ${AppResourceId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # To modify the request before sending it to the target endpoint, or the received response in app level. + ${Filter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The URI of OpenAPI specification. + ${OpenApiUri}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # A number of conditions to evaluate a route for each request in app level. + # Each predicate may be evaluated against request headers and parameter values. + # All of the predicates associated with a route must evaluate to true for the route to be matched to the request. + ${Predicate}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol] + # Protocol of routed Azure Spring Apps applications. + ${Protocol}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[]] + # Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + # To construct, see NOTES section for ROUTE properties and create a hash table. + ${Route}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Enable Single Sign-On in app level. + ${SsoEnabled}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformGatewayRouteConfig_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..c2430a85683d --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformService.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new Service or update an exiting Service. +.Description +Create a new Service or update an exiting Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformservice +#> +function New-AzAppPlatformService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress read time out in seconds. + ${IngressConfigReadTimeoutInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The GEO location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The plan id of the 3rd Party Artifact that is being procured. + ${MarketplaceResourcePlan}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + ${MarketplaceResourceProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The publisher id of the 3rd Party Artifact that is being bought. + ${MarketplaceResourcePublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources for customer apps in Azure Spring Apps + ${NetworkProfileAppNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + ${NetworkProfileAppSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The egress traffic type of Azure Spring Apps VNet instances. + ${NetworkProfileOutboundType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Azure Spring Apps service reserved CIDR + ${NetworkProfileServiceCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources of Azure Spring Apps Service Runtime + ${NetworkProfileServiceRuntimeNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + ${NetworkProfileServiceRuntimeSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the service which is a list of key value pairs that describe the resource. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the log stream in vnet injection instance could be accessed from internet. + ${VnetAddonLogStreamPublicEndpoint}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ZoneRedundant}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformServiceTestKey.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformServiceTestKey.ps1 new file mode 100644 index 000000000000..ccfa208c617b --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformServiceTestKey.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Regenerate a test key for a Service. +.Description +Regenerate a test key for a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +REGENERATETESTKEYREQUEST : Regenerate test key request payload + KeyType : Type of the test key +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformservicetestkey +#> +function New-AzAppPlatformServiceTestKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys])] +[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Regenerate')] + [Parameter(ParameterSetName='RegenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload] + # Regenerate test key request payload + # To construct, see NOTES section for REGENERATETESTKEYREQUEST properties and create a hash table. + ${RegenerateTestKeyRequest}, + + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType] + # Type of the test key + ${KeyType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Regenerate = 'Az.AppPlatform.private\New-AzAppPlatformServiceTestKey_Regenerate'; + RegenerateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformServiceTestKey_RegenerateExpanded'; + RegenerateViaIdentity = 'Az.AppPlatform.private\New-AzAppPlatformServiceTestKey_RegenerateViaIdentity'; + RegenerateViaIdentityExpanded = 'Az.AppPlatform.private\New-AzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded'; + } + if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/New-AzAppPlatformStorage.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformStorage.ps1 new file mode 100644 index 000000000000..c9299a66a9e2 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformStorage.ps1 @@ -0,0 +1,191 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 storage resource. +.Description +Create or update storage resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformstorage +#> +function New-AzAppPlatformStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('StorageName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the storage resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformStorage_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/ProxyCmdletDefinitions.ps1 b/swaggerci/appplatform/exports/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..1d7eaccca12d --- /dev/null +++ b/swaggerci/appplatform/exports/ProxyCmdletDefinitions.ps1 @@ -0,0 +1,25529 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Disable remote debugging. +.Description +Disable remote debugging. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/disable-azappplatformdeploymentremotedebugging +#> +function Disable-AzAppPlatformDeploymentRemoteDebugging { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging])] +[CmdletBinding(DefaultParameterSetName='Disable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DisableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Disable = 'Az.AppPlatform.private\Disable-AzAppPlatformDeploymentRemoteDebugging_Disable'; + DisableViaIdentity = 'Az.AppPlatform.private\Disable-AzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity'; + } + if (('Disable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Disable predefined accelerator. +.Description +Disable predefined accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/disable-azappplatformpredefinedaccelerator +#> +function Disable-AzAppPlatformPredefinedAccelerator { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Disable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Alias('PredefinedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the predefined accelerator. + ${Name}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DisableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Disable = 'Az.AppPlatform.private\Disable-AzAppPlatformPredefinedAccelerator_Disable'; + DisableViaIdentity = 'Az.AppPlatform.private\Disable-AzAppPlatformPredefinedAccelerator_DisableViaIdentity'; + } + if (('Disable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Disable test endpoint functionality for a Service. +.Description +Disable test endpoint functionality for a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/disable-azappplatformservicetestendpoint +#> +function Disable-AzAppPlatformServiceTestEndpoint { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Disable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Disable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Disable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DisableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Disable = 'Az.AppPlatform.private\Disable-AzAppPlatformServiceTestEndpoint_Disable'; + DisableViaIdentity = 'Az.AppPlatform.private\Disable-AzAppPlatformServiceTestEndpoint_DisableViaIdentity'; + } + if (('Disable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Enable remote debugging. +.Description +Enable remote debugging. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +REMOTEDEBUGGINGPAYLOAD : Remote debugging payload. + [Port ]: Application debugging port. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/enable-azappplatformdeploymentremotedebugging +#> +function Enable-AzAppPlatformDeploymentRemoteDebugging { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging])] +[CmdletBinding(DefaultParameterSetName='EnableExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Enable', Mandatory)] + [Parameter(ParameterSetName='EnableExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Parameter(ParameterSetName='EnableExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Parameter(ParameterSetName='EnableExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Parameter(ParameterSetName='EnableExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Enable')] + [Parameter(ParameterSetName='EnableExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='EnableViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='EnableViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Enable', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='EnableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload] + # Remote debugging payload. + # To construct, see NOTES section for REMOTEDEBUGGINGPAYLOAD properties and create a hash table. + ${RemoteDebuggingPayload}, + + [Parameter(ParameterSetName='EnableExpanded')] + [Parameter(ParameterSetName='EnableViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Application debugging port. + ${Port}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Enable = 'Az.AppPlatform.private\Enable-AzAppPlatformDeploymentRemoteDebugging_Enable'; + EnableExpanded = 'Az.AppPlatform.private\Enable-AzAppPlatformDeploymentRemoteDebugging_EnableExpanded'; + EnableViaIdentity = 'Az.AppPlatform.private\Enable-AzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity'; + EnableViaIdentityExpanded = 'Az.AppPlatform.private\Enable-AzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded'; + } + if (('Enable', 'EnableExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Enable predefined accelerator. +.Description +Enable predefined accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/enable-azappplatformpredefinedaccelerator +#> +function Enable-AzAppPlatformPredefinedAccelerator { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Enable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Alias('PredefinedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the predefined accelerator. + ${Name}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Enable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='EnableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Enable = 'Az.AppPlatform.private\Enable-AzAppPlatformPredefinedAccelerator_Enable'; + EnableViaIdentity = 'Az.AppPlatform.private\Enable-AzAppPlatformPredefinedAccelerator_EnableViaIdentity'; + } + if (('Enable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Enable test endpoint functionality for a Service. +.Description +Enable test endpoint functionality for a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/enable-azappplatformservicetestendpoint +#> +function Enable-AzAppPlatformServiceTestEndpoint { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys])] +[CmdletBinding(DefaultParameterSetName='Enable', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Enable', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Enable')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='EnableViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Enable = 'Az.AppPlatform.private\Enable-AzAppPlatformServiceTestEndpoint_Enable'; + EnableViaIdentity = 'Az.AppPlatform.private\Enable-AzAppPlatformServiceTestEndpoint_EnableViaIdentity'; + } + if (('Enable') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the API portal custom domain. +.Description +Get the API portal custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapiportalcustomdomain +#> +function Get-AzAppPlatformApiPortalCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${ApiPortalName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the API portal custom domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortalCustomDomain_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortalCustomDomain_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortalCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the API portal and its properties. +.Description +Get the API portal and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapiportal +#> +function Get-AzAppPlatformApiPortal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApiPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortal_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortal_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApiPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the application accelerator. +.Description +Get the application accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapplicationaccelerator +#> +function Get-AzAppPlatformApplicationAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApplicationAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationAccelerator_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationAccelerator_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Application Live and its properties. +.Description +Get the Application Live and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapplicationliveview +#> +function Get-AzAppPlatformApplicationLiveView { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ApplicationLiveViewName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Live View. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationLiveView_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationLiveView_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApplicationLiveView_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get an resource upload URL for an App, which may be artifacts or source archive. +.Description +Get an resource upload URL for an App, which may be artifacts or source archive. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformappresourceuploadurl +#> +function Get-AzAppPlatformAppResourceUploadUrl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformAppResourceUploadUrl_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformAppResourceUploadUrl_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get an App and its properties. +.Description +Get an App and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformapp +#> +function Get-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('AppName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='GetViaIdentity')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Query')] + [System.String] + # Indicates whether sync status + ${SyncStatus}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformApp_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformApp_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformApp_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a Binding and its properties. +.Description +Get a Binding and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbinding +#> +function Get-AzAppPlatformBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('BindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Binding resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBinding_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBinding_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a buildpack binding by name. +.Description +Get a buildpack binding by name. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildpackbinding +#> +function Get-AzAppPlatformBuildpackBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('BuildpackBindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Buildpack Binding Name + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildpackBinding_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildpackBinding_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildpackBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get build service agent pool. +.Description +Get build service agent pool. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildserviceagentpool +#> +function Get-AzAppPlatformBuildServiceAgentPool { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service agent pool resource. + ${AgentPoolName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceAgentPool_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceAgentPool_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceAgentPool_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List deployments that are using the builder. +.Description +List deployments that are using the builder. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +System.String +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformbuildservicebuilderdeployment +#> +function Get-AzAppPlatformBuildServiceBuilderDeployment { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuilderDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a KPack builder. +.Description +Get a KPack builder. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicebuilder +#> +function Get-AzAppPlatformBuildServiceBuilder { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuilder_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuilder_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuilder_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a KPack build result log download URL. +.Description +Get a KPack build result log download URL. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicebuildresultlog +#> +function Get-AzAppPlatformBuildServiceBuildResultLog { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build resource. + ${BuildName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build result resource. + ${BuildResultName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResultLog_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResultLog_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a KPack build result. +.Description +Get a KPack build result. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicebuildresult +#> +function Get-AzAppPlatformBuildServiceBuildResult { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build resource. + ${BuildName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build result resource. + ${BuildResultName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResult_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResult_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuildResult_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a KPack build. +.Description +Get a KPack build. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicebuild +#> +function Get-AzAppPlatformBuildServiceBuild { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build resource. + ${BuildName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuild_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuild_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceBuild_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get an resource upload URL for build service, which may be artifacts or source archive. +.Description +Get an resource upload URL for build service, which may be artifacts or source archive. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildserviceresourceuploadurl +#> +function Get-AzAppPlatformBuildServiceResourceUploadUrl { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceResourceUploadUrl_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceResourceUploadUrl_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the supported buildpack resource. +.Description +Get the supported buildpack resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicesupportedbuildpack +#> +function Get-AzAppPlatformBuildServiceSupportedBuildpack { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource], [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the buildpack resource. + ${BuildpackName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedBuildpack_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedBuildpack_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedBuildpack_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the supported stack resource. +.Description +Get the supported stack resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservicesupportedstack +#> +function Get-AzAppPlatformBuildServiceSupportedStack { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource], [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the stack resource. + ${StackName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedStack_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedStack_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildServiceSupportedStack_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a build service resource. +.Description +Get a build service resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformbuildservice +#> +function Get-AzAppPlatformBuildService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('BuildServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformBuildService_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformBuildService_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformBuildService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the certificate resource. +.Description +Get the certificate resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformcertificate +#> +function Get-AzAppPlatformCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the certificate resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformCertificate_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformCertificate_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformCertificate_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the config server and its properties. +.Description +Get the config server and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformconfigserver +#> +function Get-AzAppPlatformConfigServer { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformConfigServer_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformConfigServer_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Application Configuration Service and its properties. +.Description +Get the Application Configuration Service and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformconfigurationservice +#> +function Get-AzAppPlatformConfigurationService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ConfigurationServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Configuration Service. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformConfigurationService_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformConfigurationService_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformConfigurationService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the custom domain of one lifecycle application. +.Description +Get the custom domain of one lifecycle application. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformcustomdomain +#> +function Get-AzAppPlatformCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the custom domain resource. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformCustomDomain_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformCustomDomain_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the customized accelerator. +.Description +Get the customized accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformcustomizedaccelerator +#> +function Get-AzAppPlatformCustomizedAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('CustomizedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the customized accelerator. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformCustomizedAccelerator_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformCustomizedAccelerator_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformCustomizedAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get deployment log file URL +.Description +Get deployment log file URL +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformdeploymentlogfileurl +#> +function Get-AzAppPlatformDeploymentLogFileUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformDeploymentLogFileUrl_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformDeploymentLogFileUrl_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get remote debugging config. +.Description +Get remote debugging config. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformdeploymentremotedebuggingconfig +#> +function Get-AzAppPlatformDeploymentRemoteDebuggingConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformDeploymentRemoteDebuggingConfig_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformDeploymentRemoteDebuggingConfig_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a Deployment and its properties. +.Description +Get a Deployment and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformdeployment +#> +function Get-AzAppPlatformDeployment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Query')] + [System.String[]] + # Version of the deployments to be listed + ${Version}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformDeployment_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformDeployment_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformDeployment_List'; + List1 = 'Az.AppPlatform.private\Get-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Application Live and its properties. +.Description +Get the Application Live and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformdevtoolportal +#> +function Get-AzAppPlatformDevToolPortal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DevToolPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Dev Tool Portal. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformDevToolPortal_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformDevToolPortal_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformDevToolPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Spring Cloud Gateway custom domain. +.Description +Get the Spring Cloud Gateway custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformgatewaycustomdomain +#> +function Get-AzAppPlatformGatewayCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway custom domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayCustomDomain_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayCustomDomain_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List sensitive environment variables of Spring Cloud Gateway. +.Description +List sensitive environment variables of Spring Cloud Gateway. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformgatewayenvsecret +#> +function Get-AzAppPlatformGatewayEnvSecret { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayEnvSecret_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Spring Cloud Gateway route configs. +.Description +Get the Spring Cloud Gateway route configs. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformgatewayrouteconfig +#> +function Get-AzAppPlatformGatewayRouteConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway route config. + ${RouteConfigName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayRouteConfig_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayRouteConfig_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformGatewayRouteConfig_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Spring Cloud Gateway and its properties. +.Description +Get the Spring Cloud Gateway and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformgateway +#> +function Get-AzAppPlatformGateway { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('GatewayName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformGateway_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformGateway_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformGateway_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Monitoring Setting and its properties. +.Description +Get the Monitoring Setting and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformmonitoringsetting +#> +function Get-AzAppPlatformMonitoringSetting { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformMonitoringSetting_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformMonitoringSetting_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the predefined accelerator. +.Description +Get the predefined accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformpredefinedaccelerator +#> +function Get-AzAppPlatformPredefinedAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PredefinedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the predefined accelerator. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformPredefinedAccelerator_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformPredefinedAccelerator_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformPredefinedAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Lists all of the available runtime versions supported by Microsoft.AppPlatform provider. +.Description +Lists all of the available runtime versions supported by Microsoft.AppPlatform provider. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformruntimeversion +#> +function Get-AzAppPlatformRuntimeVersion { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformRuntimeVersion_List'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the Service Registry and its properties. +.Description +Get the Service Registry and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformserviceregistry +#> +function Get-AzAppPlatformServiceRegistry { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ServiceRegistryName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Service Registry. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformServiceRegistry_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformServiceRegistry_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformServiceRegistry_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List test keys for a Service. +.Description +List test keys for a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformservicetestkey +#> +function Get-AzAppPlatformServiceTestKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformServiceTestKey_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a Service and its properties. +.Description +Get a Service and its properties. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformservice +#> +function Get-AzAppPlatformService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformService_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformService_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformService_List'; + List1 = 'Az.AppPlatform.private\Get-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Lists all of the available skus of the Microsoft.AppPlatform provider. +.Description +Lists all of the available skus of the Microsoft.AppPlatform provider. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformsku +#> +function Get-AzAppPlatformSku { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformSku_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the storage resource. +.Description +Get the storage resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/get-azappplatformstorage +#> +function Get-AzAppPlatformStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('StorageName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the storage resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.AppPlatform.private\Get-AzAppPlatformStorage_Get'; + GetViaIdentity = 'Az.AppPlatform.private\Get-AzAppPlatformStorage_GetViaIdentity'; + List = 'Az.AppPlatform.private\Get-AzAppPlatformStorage_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update the API portal custom domain. +.Description +Create or update the API portal custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapiportalcustomdomain +#> +function New-AzAppPlatformApiPortalCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${ApiPortalName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the API portal custom domain. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The thumbprint of bound certificate. + ${Thumbprint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApiPortalCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create the default API portal or update the existing API portal. +.Description +Create the default API portal or update the existing API portal. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapiportal +#> +function New-AzAppPlatformApiPortal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApiPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # The array of resource Ids of gateway to integrate with API portal. + ${GatewayId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if only https is allowed. + ${HttpsOnly}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the API portal exposes endpoint. + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Collection of OpenAPI source URL locations. + ${SourceUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The public identifier for the application + ${SsoPropertyClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The secret known only to the application and the authorization server + ${SsoPropertyClientSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The URI of Issuer Identifier + ${SsoPropertyIssuerUri}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # It defines the specific actions applications can be allowed to do on a user's behalf + ${SsoPropertyScope}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApiPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update the application accelerator. +.Description +Create or update the application accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapplicationaccelerator +#> +function New-AzAppPlatformApplicationAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApplicationAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApplicationAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create the default Application Live View or update the existing Application Live View. +.Description +Create the default Application Live View or update the existing Application Live View. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapplicationliveview +#> +function New-AzAppPlatformApplicationLiveView { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ApplicationLiveViewName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Live View. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApplicationLiveView_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create a new App or update an exiting App. +.Description +Create a new App or update an exiting App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource +.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. + +CUSTOMPERSISTENTDISK : List of custom persistent disks + StorageId : The resource id of Azure Spring Apps Storage resource. + [CustomPersistentDiskPropertyMountOption ]: These are the mount options for a persistent disk. + [CustomPersistentDiskPropertyMountPath ]: The mount path of the persistent disk. + [CustomPersistentDiskPropertyReadOnly ]: Indicates whether the persistent disk is a readOnly one. + +LOADEDCERTIFICATE : Collection of loaded certificates + ResourceId : Resource Id of loaded certificate + [LoadTrustStore ]: Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapp +#> +function New-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('AppName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs]))] + [System.Collections.Hashtable] + # Collection of addons + ${AddonConfig}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Collection of certificate resource id. + ${ClientAuthCertificate}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[]] + # List of custom persistent disks + # To construct, see NOTES section for CUSTOMPERSISTENTDISK properties and create a hash table. + ${CustomPersistentDisk}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if end to end TLS is enabled. + ${EnableEndToEndTl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if only https is allowed. + ${HttpsOnly}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Principal Id of system-assigned managed identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tenant Id of system-assigned managed identity. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType] + # Type of the managed identity + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities]))] + [System.Collections.Hashtable] + # Properties of user-assigned managed identities + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol] + # How ingress should communicate with this app backend service. + ${IngressSettingBackendProtocol}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress read time out in seconds. + ${IngressSettingReadTimeoutInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress send time out in seconds. + ${IngressSettingSendTimeoutInSecond}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity] + # Type of the affinity, set this to Cookie to enable session affinity. + ${IngressSettingSessionAffinity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Time in seconds until the cookie expires. + ${IngressSettingSessionCookieMaxAge}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[]] + # Collection of loaded certificates + # To construct, see NOTES section for LOADEDCERTIFICATE properties and create a hash table. + ${LoadedCertificate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The GEO location of the application, always the same with its parent resource + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Mount path of the persistent disk + ${PersistentDiskMountPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Size of the persistent disk in GB + ${PersistentDiskSizeInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the App exposes public endpoint + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Mount path of the temporary disk + ${TemporaryDiskMountPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Size of the temporary disk in GB + ${TemporaryDiskSizeInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + ${VnetAddonPublicEndpoint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApp_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create a new Binding or update an exiting Binding. +.Description +Create a new Binding or update an exiting Binding. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbinding +#> +function New-AzAppPlatformBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(Mandatory)] + [Alias('BindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Binding resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters]))] + [System.Collections.Hashtable] + # Binding parameters of the Binding resource + ${BindingParameter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The key of the bound resource + ${Key}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The Azure resource id of the bound resource + ${ResourceId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update a buildpack binding. +.Description +Create or update a buildpack binding. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildpackbinding +#> +function New-AzAppPlatformBuildpackBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(Mandatory)] + [Alias('BuildpackBindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Buildpack Binding Name + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType] + # Buildpack Binding Type + ${BindingType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties]))] + [System.Collections.Hashtable] + # Non-sensitive properties for launchProperties + ${LaunchProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets]))] + [System.Collections.Hashtable] + # Sensitive properties for launchProperties + ${LaunchPropertySecret}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBuildpackBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update a KPack builder. +.Description +Create or update a KPack builder. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource +.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. + +BUILDPACKGROUP : Builder buildpack groups. + [Buildpack ]: Buildpacks in the buildpack group + [Id ]: Id of the buildpack + [Name ]: Buildpack group name +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildservicebuilder +#> +function New-AzAppPlatformBuildServiceBuilder { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[]] + # Builder buildpack groups. + # To construct, see NOTES section for BUILDPACKGROUP properties and create a hash table. + ${BuildpackGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Id of the ClusterStack. + ${StackId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Version of the ClusterStack + ${StackVersion}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBuildServiceBuilder_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update a KPack build. +.Description +Create or update a KPack build. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbuildservicebuild +#> +function New-AzAppPlatformBuildServiceBuild { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build resource. + ${BuildName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The resource id of agent pool + ${AgentPool}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The resource id of builder to build the source code + ${Builder}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv]))] + [System.Collections.Hashtable] + # The environment variables for this build + ${Env}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The relative path of source code + ${RelativePath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Optional Cpu allocated to the build resource. + # 1 core can be represented by 1 or 1000m. + # The default value is 1, this should not exceed build service agent pool cpu size. + ${ResourceRequestCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Optional Memory allocated to the build resource. + # 1 GB can be represented by 1Gi or 1024Mi. + # The default value is 2Gi, this should not exceed build service agent pool memory size. + ${ResourceRequestMemory}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBuildServiceBuild_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update certificate resource. +.Description +Create or update certificate resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcertificate +#> +function New-AzAppPlatformCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the certificate resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The type of the certificate source. + ${PropertiesType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCertificate_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create the default Application Configuration Service or update the existing Application Configuration Service. +.Description +Create the default Application Configuration Service or update the existing Application Configuration Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource +.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. + +GITPROPERTYREPOSITORY : Repositories of Application Configuration Service git property. + Label : Label of the repository + Name : Name of the repository + Pattern : Collection of patterns of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Password ]: Password of git repository basic auth. + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformconfigurationservice +#> +function New-AzAppPlatformConfigurationService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ConfigurationServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Configuration Service. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]] + # Repositories of Application Configuration Service git property. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformConfigurationService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update custom domain of one lifecycle application. +.Description +Create or update custom domain of one lifecycle application. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcustomdomain +#> +function New-AzAppPlatformCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the custom domain resource. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The bound certificate name of domain. + ${CertName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The thumbprint of bound certificate. + ${Thumbprint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update the customized accelerator. +.Description +Create or update the customized accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcustomizedaccelerator +#> +function New-AzAppPlatformCustomizedAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(Mandatory)] + [Alias('CustomizedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the customized accelerator. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # . + ${AcceleratorTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The type of the auth setting. + ${AuthSettingAuthType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${DisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository branch to be used. + ${GitRepositoryBranch}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository commit to be used. + ${GitRepositoryCommit}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository tag to be used. + ${GitRepositoryGitTag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Interval for checking for updates to Git or image repository. + ${GitRepositoryIntervalInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository URL for the accelerator. + ${GitRepositoryUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${IconUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCustomizedAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Generate Heap Dump +.Description +Generate Heap Dump +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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. + +DIAGNOSTICPARAMETER : Diagnostic parameters of diagnostic operations + [AppInstance ]: App instance name + [Duration ]: Duration of your JFR. 1 min can be represented by 1m or 60s. + [FilePath ]: Your target file path in your own BYOS + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/new-azappplatformdeploymentheapdump +#> +function New-AzAppPlatformDeploymentHeapDump { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Generate')] + [Parameter(ParameterSetName='GenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Generate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters] + # Diagnostic parameters of diagnostic operations + # To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + ${DiagnosticParameter}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # App instance name + ${AppInstance}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Duration of your JFR. + # 1 min can be represented by 1m or 60s. + ${Duration}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Your target file path in your own BYOS + ${FilePath}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Generate = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentHeapDump_Generate'; + GenerateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentHeapDump_GenerateExpanded'; + GenerateViaIdentity = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentHeapDump_GenerateViaIdentity'; + GenerateViaIdentityExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded'; + } + if (('Generate', 'GenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Generate Thread Dump +.Description +Generate Thread Dump +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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. + +DIAGNOSTICPARAMETER : Diagnostic parameters of diagnostic operations + [AppInstance ]: App instance name + [Duration ]: Duration of your JFR. 1 min can be represented by 1m or 60s. + [FilePath ]: Your target file path in your own BYOS + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/new-azappplatformdeploymentthreaddump +#> +function New-AzAppPlatformDeploymentThreadDump { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='GenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Generate', Mandatory)] + [Parameter(ParameterSetName='GenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Generate')] + [Parameter(ParameterSetName='GenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Generate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='GenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters] + # Diagnostic parameters of diagnostic operations + # To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + ${DiagnosticParameter}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # App instance name + ${AppInstance}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Duration of your JFR. + # 1 min can be represented by 1m or 60s. + ${Duration}, + + [Parameter(ParameterSetName='GenerateExpanded')] + [Parameter(ParameterSetName='GenerateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Your target file path in your own BYOS + ${FilePath}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Generate = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentThreadDump_Generate'; + GenerateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentThreadDump_GenerateExpanded'; + GenerateViaIdentity = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentThreadDump_GenerateViaIdentity'; + GenerateViaIdentityExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded'; + } + if (('Generate', 'GenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create a new Deployment or update an exiting Deployment. +.Description +Create a new Deployment or update an exiting Deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource +.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. + +DEPLOYMENTSETTING : Deployment settings of the Deployment + [AddonConfig ]: Collection of addons + [(Any) ]: This indicates any property can be added to this object. + [ContainerProbeSettingDisableProbe ]: Indicates whether disable the liveness and readiness probe + [EnvironmentVariable ]: Collection of environment variables + [(Any) ]: This indicates any property can be added to this object. + [LivenessProbeActionType ]: The type of the action to take to perform the health check. + [LivenessProbeDisableProbe ]: Indicate whether the probe is disabled. + [LivenessProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [LivenessProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [LivenessProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [LivenessProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [LivenessProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [ReadinessProbeActionType ]: The type of the action to take to perform the health check. + [ReadinessProbeDisableProbe ]: Indicate whether the probe is disabled. + [ReadinessProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [ReadinessProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [ReadinessProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [ReadinessProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [ReadinessProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [ResourceRequestCpu ]: Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. + [ResourceRequestMemory ]: Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. + [StartupProbeActionType ]: The type of the action to take to perform the health check. + [StartupProbeDisableProbe ]: Indicate whether the probe is disabled. + [StartupProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [StartupProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [StartupProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [StartupProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [StartupProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [TerminationGracePeriodSecond ]: Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdeployment +#> +function New-AzAppPlatformDeployment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the Deployment is active + ${Active}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings] + # Deployment settings of the Deployment + # To construct, see NOTES section for DEPLOYMENTSETTING properties and create a hash table. + ${DeploymentSetting}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Type of the source uploaded + ${SourceType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Version of the source + ${SourceVersion}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create the default Dev Tool Portal or update the existing Dev Tool Portal. +.Description +Create the default Dev Tool Portal or update the existing Dev Tool Portal. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdevtoolportal +#> +function New-AzAppPlatformDevToolPortal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('DevToolPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Dev Tool Portal. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState] + # State of the plugin + ${ApplicationAcceleratorState}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState] + # State of the plugin + ${ApplicationLiveViewState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the resource exposes public endpoint + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The public identifier for the application + ${SsoPropertyClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The secret known only to the application and the authorization server + ${SsoPropertyClientSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The URI of a JSON file with generic OIDC provider configuration. + ${SsoPropertyMetadataUrl}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # It defines the specific actions applications can be allowed to do on a user's behalf + ${SsoPropertyScope}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDevToolPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update the Spring Cloud Gateway custom domain. +.Description +Create or update the Spring Cloud Gateway custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgatewaycustomdomain +#> +function New-AzAppPlatformGatewayCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway custom domain. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The thumbprint of bound certificate. + ${Thumbprint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformGatewayCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. +.Description +Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource +.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. + +ROUTE : Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + [Description ]: A description, will be applied to methods in the generated OpenAPI documentation. + [Filter ]: To modify the request before sending it to the target endpoint, or the received response. + [Order ]: Route processing order. + [Predicate ]: A number of conditions to evaluate a route for each request. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request. + [SsoEnabled ]: Enable sso validation. + [Tag ]: Classification tags, will be applied to methods in the generated OpenAPI documentation. + [Title ]: A title, will be applied to methods in the generated OpenAPI documentation. + [TokenRelay ]: Pass currently-authenticated user's identity token to application service, default is 'false' + [Uri ]: Full uri, will override `appName`. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgatewayrouteconfig +#> +function New-AzAppPlatformGatewayRouteConfig { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway route config. + ${RouteConfigName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + ${AppResourceId}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # To modify the request before sending it to the target endpoint, or the received response in app level. + ${Filter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The URI of OpenAPI specification. + ${OpenApiUri}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # A number of conditions to evaluate a route for each request in app level. + # Each predicate may be evaluated against request headers and parameter values. + # All of the predicates associated with a route must evaluate to true for the route to be matched to the request. + ${Predicate}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol] + # Protocol of routed Azure Spring Apps applications. + ${Protocol}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[]] + # Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + # To construct, see NOTES section for ROUTE properties and create a hash table. + ${Route}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Enable Single Sign-On in app level. + ${SsoEnabled}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformGatewayRouteConfig_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. +.Description +Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformgateway +#> +function New-AzAppPlatformGateway { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('GatewayName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes the API routes configured.`) + ${ApiMetadataPropertyDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Location of additional documentation for the APIs available on the Gateway instance + ${ApiMetadataPropertyDocumentation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Base URL that API consumers will use to access APIs on the Gateway instance. + ${ApiMetadataPropertyServerUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + ${ApiMetadataPropertyTitle}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Version of APIs available on this Gateway instance (default: `unspecified`). + ${ApiMetadataPropertyVersion}, + + [Parameter()] + [AllowEmptyCollection()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[]] + # Collection of APM type used in Spring Cloud Gateway + ${ApmType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Whether user credentials are supported on cross-site requests. + # Valid values: `true`, `false`. + ${CorPropertyAllowCredentials}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Allowed headers in cross-site requests. + # The special value `*` allows actual requests to send any header. + ${CorPropertyAllowedHeader}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Allowed HTTP methods on cross-site requests. + # The special value `*` allows all methods. + # If not set, `GET` and `HEAD` are allowed by default. + ${CorPropertyAllowedMethod}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Allowed origins to make cross-site requests. + # The special value `*` allows all domains. + ${CorPropertyAllowedOrigin}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # HTTP response headers to expose for cross-site requests. + ${CorPropertyExposedHeader}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # How long, in seconds, the response from a pre-flight request can be cached by clients. + ${CorPropertyMaxAge}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties]))] + [System.Collections.Hashtable] + # Non-sensitive properties + ${EnvironmentVariableProperty}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets]))] + [System.Collections.Hashtable] + # Sensitive properties + ${EnvironmentVariableSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if only https is allowed. + ${HttpsOnly}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the Spring Cloud Gateway exposes endpoint. + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Cpu allocated to each Spring Cloud Gateway instance. + ${ResourceRequestsCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Memory allocated to each Spring Cloud Gateway instance. + ${ResourceRequestsMemory}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The public identifier for the application + ${SsoPropertyClientId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The secret known only to the application and the authorization server + ${SsoPropertyClientSecret}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The URI of Issuer Identifier + ${SsoPropertyIssuerUri}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # It defines the specific actions applications can be allowed to do on a user's behalf + ${SsoPropertyScope}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformGateway_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Regenerate a test key for a Service. +.Description +Regenerate a test key for a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +REGENERATETESTKEYREQUEST : Regenerate test key request payload + KeyType : Type of the test key +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformservicetestkey +#> +function New-AzAppPlatformServiceTestKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys])] +[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Regenerate')] + [Parameter(ParameterSetName='RegenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload] + # Regenerate test key request payload + # To construct, see NOTES section for REGENERATETESTKEYREQUEST properties and create a hash table. + ${RegenerateTestKeyRequest}, + + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType] + # Type of the test key + ${KeyType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Regenerate = 'Az.AppPlatform.private\New-AzAppPlatformServiceTestKey_Regenerate'; + RegenerateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformServiceTestKey_RegenerateExpanded'; + RegenerateViaIdentity = 'Az.AppPlatform.private\New-AzAppPlatformServiceTestKey_RegenerateViaIdentity'; + RegenerateViaIdentityExpanded = 'Az.AppPlatform.private\New-AzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded'; + } + if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create a new Service or update an exiting Service. +.Description +Create a new Service or update an exiting Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformservice +#> +function New-AzAppPlatformService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress read time out in seconds. + ${IngressConfigReadTimeoutInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The GEO location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The plan id of the 3rd Party Artifact that is being procured. + ${MarketplaceResourcePlan}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + ${MarketplaceResourceProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The publisher id of the 3rd Party Artifact that is being bought. + ${MarketplaceResourcePublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources for customer apps in Azure Spring Apps + ${NetworkProfileAppNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + ${NetworkProfileAppSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The egress traffic type of Azure Spring Apps VNet instances. + ${NetworkProfileOutboundType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Azure Spring Apps service reserved CIDR + ${NetworkProfileServiceCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources of Azure Spring Apps Service Runtime + ${NetworkProfileServiceRuntimeNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + ${NetworkProfileServiceRuntimeSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the service which is a list of key value pairs that describe the resource. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the log stream in vnet injection instance could be accessed from internet. + ${VnetAddonLogStreamPublicEndpoint}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ZoneRedundant}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Create or update storage resource. +.Description +Create or update storage resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformstorage +#> +function New-AzAppPlatformStorage { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('StorageName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the storage resource. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformStorage_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the API portal custom domain. +.Description +Delete the API portal custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapiportalcustomdomain +#> +function Remove-AzAppPlatformApiPortalCustomDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${ApiPortalName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the API portal custom domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApiPortalCustomDomain_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApiPortalCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the default API portal. +.Description +Delete the default API portal. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapiportal +#> +function Remove-AzAppPlatformApiPortal { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApiPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApiPortal_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApiPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the application accelerator. +.Description +Delete the application accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapplicationaccelerator +#> +function Remove-AzAppPlatformApplicationAccelerator { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApplicationAccelerator_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApplicationAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Disable the default Application Live View. +.Description +Disable the default Application Live View. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapplicationliveview +#> +function Remove-AzAppPlatformApplicationLiveView { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationLiveViewName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Live View. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApplicationLiveView_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApplicationLiveView_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to delete an App. +.Description +Operation to delete an App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapp +#> +function Remove-AzAppPlatformApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('AppName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApp_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApp_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to delete a Binding. +.Description +Operation to delete a Binding. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformbinding +#> +function Remove-AzAppPlatformBinding { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('BindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Binding resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformBinding_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to delete a Buildpack Binding +.Description +Operation to delete a Buildpack Binding +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformbuildpackbinding +#> +function Remove-AzAppPlatformBuildpackBinding { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('BuildpackBindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Buildpack Binding Name + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformBuildpackBinding_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformBuildpackBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a KPack builder. +.Description +Delete a KPack builder. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformbuildservicebuilder +#> +function Remove-AzAppPlatformBuildServiceBuilder { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformBuildServiceBuilder_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformBuildServiceBuilder_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the certificate resource. +.Description +Delete the certificate resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformcertificate +#> +function Remove-AzAppPlatformCertificate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the certificate resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformCertificate_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformCertificate_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Disable the default Application Configuration Service. +.Description +Disable the default Application Configuration Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformconfigurationservice +#> +function Remove-AzAppPlatformConfigurationService { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ConfigurationServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Configuration Service. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformConfigurationService_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformConfigurationService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the custom domain of one lifecycle application. +.Description +Delete the custom domain of one lifecycle application. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformcustomdomain +#> +function Remove-AzAppPlatformCustomDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the custom domain resource. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformCustomDomain_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the customized accelerator. +.Description +Delete the customized accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformcustomizedaccelerator +#> +function Remove-AzAppPlatformCustomizedAccelerator { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('CustomizedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the customized accelerator. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformCustomizedAccelerator_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformCustomizedAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to delete a Deployment. +.Description +Operation to delete a Deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformdeployment +#> +function Remove-AzAppPlatformDeployment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformDeployment_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Disable the default Dev Tool Portal. +.Description +Disable the default Dev Tool Portal. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformdevtoolportal +#> +function Remove-AzAppPlatformDevToolPortal { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DevToolPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Dev Tool Portal. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformDevToolPortal_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformDevToolPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the Spring Cloud Gateway custom domain. +.Description +Delete the Spring Cloud Gateway custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformgatewaycustomdomain +#> +function Remove-AzAppPlatformGatewayCustomDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway custom domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformGatewayCustomDomain_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformGatewayCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the Spring Cloud Gateway route config. +.Description +Delete the Spring Cloud Gateway route config. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformgatewayrouteconfig +#> +function Remove-AzAppPlatformGatewayRouteConfig { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway route config. + ${RouteConfigName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformGatewayRouteConfig_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformGatewayRouteConfig_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Disable the default Spring Cloud Gateway. +.Description +Disable the default Spring Cloud Gateway. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformgateway +#> +function Remove-AzAppPlatformGateway { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('GatewayName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformGateway_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformGateway_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Disable the default Service Registry. +.Description +Disable the default Service Registry. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformserviceregistry +#> +function Remove-AzAppPlatformServiceRegistry { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ServiceRegistryName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Service Registry. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformServiceRegistry_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformServiceRegistry_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to delete a Service. +.Description +Operation to delete a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformservice +#> +function Remove-AzAppPlatformService { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformService_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete the storage resource. +.Description +Delete the storage resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformstorage +#> +function Remove-AzAppPlatformStorage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('StorageName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the storage resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformStorage_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformStorage_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Restart the deployment. +.Description +Restart the deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/restart-azappplatformdeployment +#> +function Restart-AzAppPlatformDeployment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Restart', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Restart')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RestartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Restart = 'Az.AppPlatform.private\Restart-AzAppPlatformDeployment_Restart'; + RestartViaIdentity = 'Az.AppPlatform.private\Restart-AzAppPlatformDeployment_RestartViaIdentity'; + } + if (('Restart') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Start JFR +.Description +Start JFR +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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. + +DIAGNOSTICPARAMETER : Diagnostic parameters of diagnostic operations + [AppInstance ]: App instance name + [Duration ]: Duration of your JFR. 1 min can be represented by 1m or 60s. + [FilePath ]: Your target file path in your own BYOS + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/start-azappplatformdeploymentjfr +#> +function Start-AzAppPlatformDeploymentJfr { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='StartExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory)] + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Start')] + [Parameter(ParameterSetName='StartExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='StartViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Start', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters] + # Diagnostic parameters of diagnostic operations + # To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + ${DiagnosticParameter}, + + [Parameter(ParameterSetName='StartExpanded')] + [Parameter(ParameterSetName='StartViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # App instance name + ${AppInstance}, + + [Parameter(ParameterSetName='StartExpanded')] + [Parameter(ParameterSetName='StartViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Duration of your JFR. + # 1 min can be represented by 1m or 60s. + ${Duration}, + + [Parameter(ParameterSetName='StartExpanded')] + [Parameter(ParameterSetName='StartViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Your target file path in your own BYOS + ${FilePath}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Start = 'Az.AppPlatform.private\Start-AzAppPlatformDeploymentJfr_Start'; + StartExpanded = 'Az.AppPlatform.private\Start-AzAppPlatformDeploymentJfr_StartExpanded'; + StartViaIdentity = 'Az.AppPlatform.private\Start-AzAppPlatformDeploymentJfr_StartViaIdentity'; + StartViaIdentityExpanded = 'Az.AppPlatform.private\Start-AzAppPlatformDeploymentJfr_StartViaIdentityExpanded'; + } + if (('Start', 'StartExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Start the deployment. +.Description +Start the deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/start-azappplatformdeployment +#> +function Start-AzAppPlatformDeployment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Start')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Start = 'Az.AppPlatform.private\Start-AzAppPlatformDeployment_Start'; + StartViaIdentity = 'Az.AppPlatform.private\Start-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Start a Service. +.Description +Start a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/start-azappplatformservice +#> +function Start-AzAppPlatformService { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Start')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Start = 'Az.AppPlatform.private\Start-AzAppPlatformService_Start'; + StartViaIdentity = 'Az.AppPlatform.private\Start-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Stop the deployment. +.Description +Stop the deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/stop-azappplatformdeployment +#> +function Stop-AzAppPlatformDeployment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Stop', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Stop')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Stop = 'Az.AppPlatform.private\Stop-AzAppPlatformDeployment_Stop'; + StopViaIdentity = 'Az.AppPlatform.private\Stop-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Stop a Service. +.Description +Stop a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/stop-azappplatformservice +#> +function Stop-AzAppPlatformService { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Stop', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Stop', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Stop')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Stop = 'Az.AppPlatform.private\Stop-AzAppPlatformService_Stop'; + StopViaIdentity = 'Az.AppPlatform.private\Stop-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Check the domains are valid as well as not in use. +.Description +Check the domains are valid as well as not in use. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALIDATEPAYLOAD : Custom domain validate payload. + Name : Name to be validated +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformapiportaldomain +#> +function Test-AzAppPlatformApiPortalDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${ApiPortalName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload] + # Custom domain validate payload. + # To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + ${ValidatePayload}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name to be validated + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformApiPortalDomain_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformApiPortalDomain_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformApiPortalDomain_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Check the resource name is valid as well as not in use. +.Description +Check the resource name is valid as well as not in use. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALIDATEPAYLOAD : Custom domain validate payload. + Name : Name to be validated +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformappdomain +#> +function Test-AzAppPlatformAppDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload] + # Custom domain validate payload. + # To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + ${ValidatePayload}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name to be validated + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformAppDomain_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformAppDomain_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformAppDomain_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformAppDomain_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Check if the config server settings are valid. +.Description +Check if the config server settings are valid. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult +.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. + +CONFIGSERVERSETTING : The settings of config server. + [GitPropertyHostKey ]: Public sshKey of git repository. + [GitPropertyHostKeyAlgorithm ]: SshKey algorithm of git repository. + [GitPropertyLabel ]: Label of the repository + [GitPropertyPassword ]: Password of git repository basic auth. + [GitPropertyPrivateKey ]: Private sshKey algorithm of git repository. + [GitPropertyRepository ]: Repositories of git. + Name : Name of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Label ]: Label of the repository + [Password ]: Password of git repository basic auth. + [Pattern ]: Collection of pattern of the repository + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. + [GitPropertySearchPath ]: Searching path of the repository + [GitPropertyStrictHostKeyChecking ]: Strict host key checking or not. + [GitPropertyUri ]: URI of the repository + [GitPropertyUsername ]: Username of git repository basic auth. + +GITPROPERTYREPOSITORY : Repositories of git. + Name : Name of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Label ]: Label of the repository + [Password ]: Password of git repository basic auth. + [Pattern ]: Collection of pattern of the repository + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/test-azappplatformconfigserver +#> +function Test-AzAppPlatformConfigServer { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings] + # The settings of config server. + # To construct, see NOTES section for CONFIGSERVERSETTING properties and create a hash table. + ${ConfigServerSetting}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Public sshKey of git repository. + ${GitPropertyHostKey}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # SshKey algorithm of git repository. + ${GitPropertyHostKeyAlgorithm}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Label of the repository + ${GitPropertyLabel}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Password of git repository basic auth. + ${GitPropertyPassword}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Private sshKey algorithm of git repository. + ${GitPropertyPrivateKey}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]] + # Repositories of git. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Searching path of the repository + ${GitPropertySearchPath}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Strict host key checking or not. + ${GitPropertyStrictHostKeyChecking}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # URI of the repository + ${GitPropertyUri}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Username of git repository basic auth. + ${GitPropertyUsername}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformConfigServer_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformConfigServer_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformConfigServer_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformConfigServer_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Check if the Application Configuration Service settings are valid. +.Description +Check if the Application Configuration Service settings are valid. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult +.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. + +GITPROPERTYREPOSITORY : Repositories of Application Configuration Service git property. + Label : Label of the repository + Name : Name of the repository + Pattern : Collection of patterns of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Password ]: Password of git repository basic auth. + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +SETTING : The settings of Application Configuration Service. + [GitPropertyRepository ]: Repositories of Application Configuration Service git property. + Label : Label of the repository + Name : Name of the repository + Pattern : Collection of patterns of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Password ]: Password of git repository basic auth. + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformconfigurationservice +#> +function Test-AzAppPlatformConfigurationService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Alias('ConfigurationServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Configuration Service. + ${Name}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings] + # The settings of Application Configuration Service. + # To construct, see NOTES section for SETTING properties and create a hash table. + ${Setting}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]] + # Repositories of Application Configuration Service git property. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformConfigurationService_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformConfigurationService_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformConfigurationService_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformConfigurationService_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Check the customized accelerator are valid. +.Description +Check the customized accelerator are valid. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PROPERTY : Customized accelerator properties payload + AuthSettingAuthType : The type of the auth setting. + GitRepositoryUrl : Git repository URL for the accelerator. + [AcceleratorTag ]: + [Description ]: + [DisplayName ]: + [GitRepositoryBranch ]: Git repository branch to be used. + [GitRepositoryCommit ]: Git repository commit to be used. + [GitRepositoryGitTag ]: Git repository tag to be used. + [GitRepositoryIntervalInSecond ]: Interval for checking for updates to Git or image repository. + [IconUrl ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformcustomizedaccelerator +#> +function Test-AzAppPlatformCustomizedAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Alias('CustomizedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the customized accelerator. + ${Name}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties] + # Customized accelerator properties payload + # To construct, see NOTES section for PROPERTY properties and create a hash table. + ${Property}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The type of the auth setting. + ${AuthSettingAuthType}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository URL for the accelerator. + ${GitRepositoryUrl}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # . + ${AcceleratorTag}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${DisplayName}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository branch to be used. + ${GitRepositoryBranch}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository commit to be used. + ${GitRepositoryCommit}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository tag to be used. + ${GitRepositoryGitTag}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Interval for checking for updates to Git or image repository. + ${GitRepositoryIntervalInSecond}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${IconUrl}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformCustomizedAccelerator_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformCustomizedAccelerator_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformCustomizedAccelerator_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Check the domains are valid as well as not in use. +.Description +Check the domains are valid as well as not in use. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALIDATEPAYLOAD : Custom domain validate payload. + Name : Name to be validated +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformgatewaydomain +#> +function Test-AzAppPlatformGatewayDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload] + # Custom domain validate payload. + # To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + ${ValidatePayload}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name to be validated + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformGatewayDomain_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformGatewayDomain_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformGatewayDomain_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformGatewayDomain_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Checks that the resource name is valid and is not already in use. +.Description +Checks that the resource name is valid and is not already in use. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability +.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. + +AVAILABILITYPARAMETER : Name availability parameters payload + Name : Name to be checked + Type : Type of the resource to check name availability + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/test-azappplatformservicenameavailability +#> +function Test-AzAppPlatformServiceNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # the region + ${Location}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters] + # Name availability parameters payload + # To construct, see NOTES section for AVAILABILITYPARAMETER properties and create a hash table. + ${AvailabilityParameter}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name to be checked + ${Name}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Type of the resource to check name availability + ${Type}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Check = 'Az.AppPlatform.private\Test-AzAppPlatformServiceNameAvailability_Check'; + CheckExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformServiceNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformServiceNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformServiceNameAvailability_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to update an exiting App. +.Description +Operation to update an exiting App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource +.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. + +CUSTOMPERSISTENTDISK : List of custom persistent disks + StorageId : The resource id of Azure Spring Apps Storage resource. + [CustomPersistentDiskPropertyMountOption ]: These are the mount options for a persistent disk. + [CustomPersistentDiskPropertyMountPath ]: The mount path of the persistent disk. + [CustomPersistentDiskPropertyReadOnly ]: Indicates whether the persistent disk is a readOnly one. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +LOADEDCERTIFICATE : Collection of loaded certificates + ResourceId : Resource Id of loaded certificate + [LoadTrustStore ]: Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformapp +#> +function Update-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('AppName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs]))] + [System.Collections.Hashtable] + # Collection of addons + ${AddonConfig}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Collection of certificate resource id. + ${ClientAuthCertificate}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[]] + # List of custom persistent disks + # To construct, see NOTES section for CUSTOMPERSISTENTDISK properties and create a hash table. + ${CustomPersistentDisk}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if end to end TLS is enabled. + ${EnableEndToEndTl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if only https is allowed. + ${HttpsOnly}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Principal Id of system-assigned managed identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tenant Id of system-assigned managed identity. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType] + # Type of the managed identity + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities]))] + [System.Collections.Hashtable] + # Properties of user-assigned managed identities + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol] + # How ingress should communicate with this app backend service. + ${IngressSettingBackendProtocol}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress read time out in seconds. + ${IngressSettingReadTimeoutInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress send time out in seconds. + ${IngressSettingSendTimeoutInSecond}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity] + # Type of the affinity, set this to Cookie to enable session affinity. + ${IngressSettingSessionAffinity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Time in seconds until the cookie expires. + ${IngressSettingSessionCookieMaxAge}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[]] + # Collection of loaded certificates + # To construct, see NOTES section for LOADEDCERTIFICATE properties and create a hash table. + ${LoadedCertificate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The GEO location of the application, always the same with its parent resource + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Mount path of the persistent disk + ${PersistentDiskMountPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Size of the persistent disk in GB + ${PersistentDiskSizeInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the App exposes public endpoint + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Mount path of the temporary disk + ${TemporaryDiskMountPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Size of the temporary disk in GB + ${TemporaryDiskSizeInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + ${VnetAddonPublicEndpoint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformApp_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformApp_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to update an exiting Binding. +.Description +Operation to update an exiting Binding. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformbinding +#> +function Update-AzAppPlatformBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('BindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Binding resource. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters]))] + [System.Collections.Hashtable] + # Binding parameters of the Binding resource + ${BindingParameter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The key of the bound resource + ${Key}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The Azure resource id of the bound resource + ${ResourceId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformBinding_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Update the config server. +.Description +Update the config server. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource +.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. + +GITPROPERTYREPOSITORY : Repositories of git. + Name : Name of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Label ]: Label of the repository + [Password ]: Password of git repository basic auth. + [Pattern ]: Collection of pattern of the repository + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformconfigserverpatch +#> +function Update-AzAppPlatformConfigServerPatch { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The code of error. + ${Code}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Public sshKey of git repository. + ${GitPropertyHostKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # SshKey algorithm of git repository. + ${GitPropertyHostKeyAlgorithm}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Label of the repository + ${GitPropertyLabel}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Password of git repository basic auth. + ${GitPropertyPassword}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Private sshKey algorithm of git repository. + ${GitPropertyPrivateKey}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]] + # Repositories of git. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Searching path of the repository + ${GitPropertySearchPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Strict host key checking or not. + ${GitPropertyStrictHostKeyChecking}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # URI of the repository + ${GitPropertyUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Username of git repository basic auth. + ${GitPropertyUsername}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The message of error. + ${Message}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformConfigServerPatch_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformConfigServerPatch_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Update custom domain of one lifecycle application. +.Description +Update custom domain of one lifecycle application. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformcustomdomain +#> +function Update-AzAppPlatformCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the custom domain resource. + ${DomainName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The bound certificate name of domain. + ${CertName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The thumbprint of bound certificate. + ${Thumbprint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformCustomDomain_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to update an exiting Deployment. +.Description +Operation to update an exiting Deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource +.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. + +DEPLOYMENTSETTING : Deployment settings of the Deployment + [AddonConfig ]: Collection of addons + [(Any) ]: This indicates any property can be added to this object. + [ContainerProbeSettingDisableProbe ]: Indicates whether disable the liveness and readiness probe + [EnvironmentVariable ]: Collection of environment variables + [(Any) ]: This indicates any property can be added to this object. + [LivenessProbeActionType ]: The type of the action to take to perform the health check. + [LivenessProbeDisableProbe ]: Indicate whether the probe is disabled. + [LivenessProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [LivenessProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [LivenessProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [LivenessProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [LivenessProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [ReadinessProbeActionType ]: The type of the action to take to perform the health check. + [ReadinessProbeDisableProbe ]: Indicate whether the probe is disabled. + [ReadinessProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [ReadinessProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [ReadinessProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [ReadinessProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [ReadinessProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [ResourceRequestCpu ]: Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. + [ResourceRequestMemory ]: Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. + [StartupProbeActionType ]: The type of the action to take to perform the health check. + [StartupProbeDisableProbe ]: Indicate whether the probe is disabled. + [StartupProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [StartupProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [StartupProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [StartupProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [StartupProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [TerminationGracePeriodSecond ]: Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformdeployment +#> +function Update-AzAppPlatformDeployment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the Deployment is active + ${Active}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings] + # Deployment settings of the Deployment + # To construct, see NOTES section for DEPLOYMENTSETTING properties and create a hash table. + ${DeploymentSetting}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Type of the source uploaded + ${SourceType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Version of the source + ${SourceVersion}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformDeployment_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Update the Monitoring Setting. +.Description +Update the Monitoring Setting. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformmonitoringsettingpatch +#> +function Update-AzAppPlatformMonitoringSettingPatch { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + ${AppInsightsInstrumentationKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Double] + # Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + ${AppInsightsSamplingRate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The code of error. + ${Code}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The message of error. + ${Message}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. + # Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + ${TraceEnabled}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformMonitoringSettingPatch_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformMonitoringSettingPatch_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Operation to update an exiting Service. +.Description +Operation to update an exiting Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformservice +#> +function Update-AzAppPlatformService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress read time out in seconds. + ${IngressConfigReadTimeoutInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The GEO location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The plan id of the 3rd Party Artifact that is being procured. + ${MarketplaceResourcePlan}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + ${MarketplaceResourceProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The publisher id of the 3rd Party Artifact that is being bought. + ${MarketplaceResourcePublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources for customer apps in Azure Spring Apps + ${NetworkProfileAppNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + ${NetworkProfileAppSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The egress traffic type of Azure Spring Apps VNet instances. + ${NetworkProfileOutboundType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Azure Spring Apps service reserved CIDR + ${NetworkProfileServiceCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources of Azure Spring Apps Service Runtime + ${NetworkProfileServiceRuntimeNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + ${NetworkProfileServiceRuntimeSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the service which is a list of key value pairs that describe the resource. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the log stream in vnet injection instance could be accessed from internet. + ${VnetAddonLogStreamPublicEndpoint}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ZoneRedundant}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformService_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/README.md b/swaggerci/appplatform/exports/README.md new file mode 100644 index 000000000000..72ee86b72a15 --- /dev/null +++ b/swaggerci/appplatform/exports/README.md @@ -0,0 +1,20 @@ +# Exports +This directory contains the cmdlets *exported by* `Az.AppPlatform`. No other cmdlets in this repository are directly exported. What that means is the `Az.AppPlatform` 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.AppPlatform.private.dll`) and from the `../custom/Az.AppPlatform.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.AppPlatform.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/appplatform/exports/Remove-AzAppPlatformApiPortal.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformApiPortal.ps1 new file mode 100644 index 000000000000..ed766f5b1db3 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformApiPortal.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete the default API portal. +.Description +Delete the default API portal. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapiportal +#> +function Remove-AzAppPlatformApiPortal { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApiPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApiPortal_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApiPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformApiPortalCustomDomain.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformApiPortalCustomDomain.ps1 new file mode 100644 index 000000000000..421cdb9ab647 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformApiPortalCustomDomain.ps1 @@ -0,0 +1,247 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Delete the API portal custom domain. +.Description +Delete the API portal custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapiportalcustomdomain +#> +function Remove-AzAppPlatformApiPortalCustomDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${ApiPortalName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the API portal custom domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApiPortalCustomDomain_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApiPortalCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformApp.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformApp.ps1 new file mode 100644 index 000000000000..c71163ca17f9 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformApp.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete an App. +.Description +Operation to delete an App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapp +#> +function Remove-AzAppPlatformApp { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('AppName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApp_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApp_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformApplicationAccelerator.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformApplicationAccelerator.ps1 new file mode 100644 index 000000000000..600ab292084f --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformApplicationAccelerator.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete the application accelerator. +.Description +Delete the application accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapplicationaccelerator +#> +function Remove-AzAppPlatformApplicationAccelerator { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApplicationAccelerator_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApplicationAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformApplicationLiveView.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformApplicationLiveView.ps1 new file mode 100644 index 000000000000..ed1d62202243 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformApplicationLiveView.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disable the default Application Live View. +.Description +Disable the default Application Live View. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformapplicationliveview +#> +function Remove-AzAppPlatformApplicationLiveView { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ApplicationLiveViewName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Live View. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformApplicationLiveView_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformApplicationLiveView_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformBinding.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformBinding.ps1 new file mode 100644 index 000000000000..d96cfa4c2407 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformBinding.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Operation to delete a Binding. +.Description +Operation to delete a Binding. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformbinding +#> +function Remove-AzAppPlatformBinding { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('BindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Binding resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformBinding_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformBuildServiceBuilder.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformBuildServiceBuilder.ps1 new file mode 100644 index 000000000000..35c91aed12bf --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformBuildServiceBuilder.ps1 @@ -0,0 +1,247 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Delete a KPack builder. +.Description +Delete a KPack builder. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformbuildservicebuilder +#> +function Remove-AzAppPlatformBuildServiceBuilder { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformBuildServiceBuilder_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformBuildServiceBuilder_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformBuildpackBinding.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformBuildpackBinding.ps1 new file mode 100644 index 000000000000..0aeae79a6df4 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformBuildpackBinding.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete a Buildpack Binding +.Description +Operation to delete a Buildpack Binding +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformbuildpackbinding +#> +function Remove-AzAppPlatformBuildpackBinding { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the build service resource. + ${BuildServiceName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the builder resource. + ${BuilderName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('BuildpackBindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Buildpack Binding Name + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformBuildpackBinding_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformBuildpackBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformCertificate.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformCertificate.ps1 new file mode 100644 index 000000000000..4388ac62aff5 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformCertificate.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete the certificate resource. +.Description +Delete the certificate resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformcertificate +#> +function Remove-AzAppPlatformCertificate { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('CertificateName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the certificate resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformCertificate_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformCertificate_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformConfigurationService.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformConfigurationService.ps1 new file mode 100644 index 000000000000..816e5462f1bf --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformConfigurationService.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disable the default Application Configuration Service. +.Description +Disable the default Application Configuration Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformconfigurationservice +#> +function Remove-AzAppPlatformConfigurationService { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ConfigurationServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Configuration Service. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformConfigurationService_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformConfigurationService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformCustomDomain.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformCustomDomain.ps1 new file mode 100644 index 000000000000..4062d50180c3 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformCustomDomain.ps1 @@ -0,0 +1,247 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Delete the custom domain of one lifecycle application. +.Description +Delete the custom domain of one lifecycle application. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformcustomdomain +#> +function Remove-AzAppPlatformCustomDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the custom domain resource. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformCustomDomain_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformCustomizedAccelerator.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformCustomizedAccelerator.ps1 new file mode 100644 index 000000000000..2b0027921c12 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformCustomizedAccelerator.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Delete the customized accelerator. +.Description +Delete the customized accelerator. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformcustomizedaccelerator +#> +function Remove-AzAppPlatformCustomizedAccelerator { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('CustomizedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the customized accelerator. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformCustomizedAccelerator_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformCustomizedAccelerator_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..70e4dc5971a0 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformDeployment.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Operation to delete a Deployment. +.Description +Operation to delete a Deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformdeployment +#> +function Remove-AzAppPlatformDeployment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformDeployment_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformDevToolPortal.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformDevToolPortal.ps1 new file mode 100644 index 000000000000..e4e8455dbe43 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformDevToolPortal.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disable the default Dev Tool Portal. +.Description +Disable the default Dev Tool Portal. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformdevtoolportal +#> +function Remove-AzAppPlatformDevToolPortal { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DevToolPortalName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Dev Tool Portal. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformDevToolPortal_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformDevToolPortal_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformGateway.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformGateway.ps1 new file mode 100644 index 000000000000..6b63334cc330 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformGateway.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disable the default Spring Cloud Gateway. +.Description +Disable the default Spring Cloud Gateway. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformgateway +#> +function Remove-AzAppPlatformGateway { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('GatewayName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformGateway_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformGateway_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformGatewayCustomDomain.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformGatewayCustomDomain.ps1 new file mode 100644 index 000000000000..dbff44ab0125 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformGatewayCustomDomain.ps1 @@ -0,0 +1,247 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Delete the Spring Cloud Gateway custom domain. +.Description +Delete the Spring Cloud Gateway custom domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformgatewaycustomdomain +#> +function Remove-AzAppPlatformGatewayCustomDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway custom domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformGatewayCustomDomain_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformGatewayCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformGatewayRouteConfig.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformGatewayRouteConfig.ps1 new file mode 100644 index 000000000000..c7de2fccb6dd --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformGatewayRouteConfig.ps1 @@ -0,0 +1,247 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Delete the Spring Cloud Gateway route config. +.Description +Delete the Spring Cloud Gateway route config. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformgatewayrouteconfig +#> +function Remove-AzAppPlatformGatewayRouteConfig { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Spring Cloud Gateway route config. + ${RouteConfigName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformGatewayRouteConfig_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformGatewayRouteConfig_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..c022ed444420 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformService.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete a Service. +.Description +Operation to delete a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformservice +#> +function Remove-AzAppPlatformService { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformService_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformServiceRegistry.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformServiceRegistry.ps1 new file mode 100644 index 000000000000..4aa7dcec01e7 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformServiceRegistry.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disable the default Service Registry. +.Description +Disable the default Service Registry. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformserviceregistry +#> +function Remove-AzAppPlatformServiceRegistry { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ServiceRegistryName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Service Registry. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformServiceRegistry_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformServiceRegistry_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Remove-AzAppPlatformStorage.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformStorage.ps1 new file mode 100644 index 000000000000..c6fa188dbe22 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformStorage.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete the storage resource. +.Description +Delete the storage resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/remove-azappplatformstorage +#> +function Remove-AzAppPlatformStorage { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('StorageName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the storage resource. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.AppPlatform.private\Remove-AzAppPlatformStorage_Delete'; + DeleteViaIdentity = 'Az.AppPlatform.private\Remove-AzAppPlatformStorage_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Restart-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Restart-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..9e440028b7cb --- /dev/null +++ b/swaggerci/appplatform/exports/Restart-AzAppPlatformDeployment.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Restart the deployment. +.Description +Restart the deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/restart-azappplatformdeployment +#> +function Restart-AzAppPlatformDeployment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Restart', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Restart', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Restart')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RestartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Restart = 'Az.AppPlatform.private\Restart-AzAppPlatformDeployment_Restart'; + RestartViaIdentity = 'Az.AppPlatform.private\Restart-AzAppPlatformDeployment_RestartViaIdentity'; + } + if (('Restart') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Start-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Start-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..7c457b013884 --- /dev/null +++ b/swaggerci/appplatform/exports/Start-AzAppPlatformDeployment.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Start the deployment. +.Description +Start the deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/start-azappplatformdeployment +#> +function Start-AzAppPlatformDeployment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Start')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Start = 'Az.AppPlatform.private\Start-AzAppPlatformDeployment_Start'; + StartViaIdentity = 'Az.AppPlatform.private\Start-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Start-AzAppPlatformDeploymentJfr.ps1 b/swaggerci/appplatform/exports/Start-AzAppPlatformDeploymentJfr.ps1 new file mode 100644 index 000000000000..73487603fb7c --- /dev/null +++ b/swaggerci/appplatform/exports/Start-AzAppPlatformDeploymentJfr.ps1 @@ -0,0 +1,292 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Start JFR +.Description +Start JFR +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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. + +DIAGNOSTICPARAMETER : Diagnostic parameters of diagnostic operations + [AppInstance ]: App instance name + [Duration ]: Duration of your JFR. 1 min can be represented by 1m or 60s. + [FilePath ]: Your target file path in your own BYOS + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/start-azappplatformdeploymentjfr +#> +function Start-AzAppPlatformDeploymentJfr { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='StartExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory)] + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${DeploymentName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Parameter(ParameterSetName='StartExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Start')] + [Parameter(ParameterSetName='StartExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='StartViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Start', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='StartViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters] + # Diagnostic parameters of diagnostic operations + # To construct, see NOTES section for DIAGNOSTICPARAMETER properties and create a hash table. + ${DiagnosticParameter}, + + [Parameter(ParameterSetName='StartExpanded')] + [Parameter(ParameterSetName='StartViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # App instance name + ${AppInstance}, + + [Parameter(ParameterSetName='StartExpanded')] + [Parameter(ParameterSetName='StartViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Duration of your JFR. + # 1 min can be represented by 1m or 60s. + ${Duration}, + + [Parameter(ParameterSetName='StartExpanded')] + [Parameter(ParameterSetName='StartViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Your target file path in your own BYOS + ${FilePath}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Start = 'Az.AppPlatform.private\Start-AzAppPlatformDeploymentJfr_Start'; + StartExpanded = 'Az.AppPlatform.private\Start-AzAppPlatformDeploymentJfr_StartExpanded'; + StartViaIdentity = 'Az.AppPlatform.private\Start-AzAppPlatformDeploymentJfr_StartViaIdentity'; + StartViaIdentityExpanded = 'Az.AppPlatform.private\Start-AzAppPlatformDeploymentJfr_StartViaIdentityExpanded'; + } + if (('Start', 'StartExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Start-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/Start-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..53472ff6d647 --- /dev/null +++ b/swaggerci/appplatform/exports/Start-AzAppPlatformService.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Start a Service. +.Description +Start a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/start-azappplatformservice +#> +function Start-AzAppPlatformService { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Start', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Start', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='Start', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Start')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Start = 'Az.AppPlatform.private\Start-AzAppPlatformService_Start'; + StartViaIdentity = 'Az.AppPlatform.private\Start-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Stop-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Stop-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..46d5769a8ef5 --- /dev/null +++ b/swaggerci/appplatform/exports/Stop-AzAppPlatformDeployment.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Stop the deployment. +.Description +Stop the deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/stop-azappplatformdeployment +#> +function Stop-AzAppPlatformDeployment { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Stop', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Stop')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Stop = 'Az.AppPlatform.private\Stop-AzAppPlatformDeployment_Stop'; + StopViaIdentity = 'Az.AppPlatform.private\Stop-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Stop-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/Stop-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..72fc2ed20ac8 --- /dev/null +++ b/swaggerci/appplatform/exports/Stop-AzAppPlatformService.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Stop a Service. +.Description +Stop a Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/stop-azappplatformservice +#> +function Stop-AzAppPlatformService { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Stop', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Stop', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='Stop', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Stop')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Stop = 'Az.AppPlatform.private\Stop-AzAppPlatformService_Stop'; + StopViaIdentity = 'Az.AppPlatform.private\Stop-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Test-AzAppPlatformApiPortalDomain.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformApiPortalDomain.ps1 new file mode 100644 index 000000000000..a5a82bd72741 --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformApiPortalDomain.ps1 @@ -0,0 +1,250 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Check the domains are valid as well as not in use. +.Description +Check the domains are valid as well as not in use. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALIDATEPAYLOAD : Custom domain validate payload. + Name : Name to be validated +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformapiportaldomain +#> +function Test-AzAppPlatformApiPortalDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of API portal. + ${ApiPortalName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload] + # Custom domain validate payload. + # To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + ${ValidatePayload}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name to be validated + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformApiPortalDomain_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformApiPortalDomain_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformApiPortalDomain_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Test-AzAppPlatformAppDomain.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformAppDomain.ps1 new file mode 100644 index 000000000000..c930e1ee7825 --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformAppDomain.ps1 @@ -0,0 +1,250 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Check the resource name is valid as well as not in use. +.Description +Check the resource name is valid as well as not in use. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALIDATEPAYLOAD : Custom domain validate payload. + Name : Name to be validated +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformappdomain +#> +function Test-AzAppPlatformAppDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload] + # Custom domain validate payload. + # To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + ${ValidatePayload}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name to be validated + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformAppDomain_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformAppDomain_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformAppDomain_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformAppDomain_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Test-AzAppPlatformConfigServer.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformConfigServer.ps1 new file mode 100644 index 000000000000..3290837ffaa9 --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformConfigServer.ps1 @@ -0,0 +1,354 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Check if the config server settings are valid. +.Description +Check if the config server settings are valid. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult +.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. + +CONFIGSERVERSETTING : The settings of config server. + [GitPropertyHostKey ]: Public sshKey of git repository. + [GitPropertyHostKeyAlgorithm ]: SshKey algorithm of git repository. + [GitPropertyLabel ]: Label of the repository + [GitPropertyPassword ]: Password of git repository basic auth. + [GitPropertyPrivateKey ]: Private sshKey algorithm of git repository. + [GitPropertyRepository ]: Repositories of git. + Name : Name of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Label ]: Label of the repository + [Password ]: Password of git repository basic auth. + [Pattern ]: Collection of pattern of the repository + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. + [GitPropertySearchPath ]: Searching path of the repository + [GitPropertyStrictHostKeyChecking ]: Strict host key checking or not. + [GitPropertyUri ]: URI of the repository + [GitPropertyUsername ]: Username of git repository basic auth. + +GITPROPERTYREPOSITORY : Repositories of git. + Name : Name of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Label ]: Label of the repository + [Password ]: Password of git repository basic auth. + [Pattern ]: Collection of pattern of the repository + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/test-azappplatformconfigserver +#> +function Test-AzAppPlatformConfigServer { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings] + # The settings of config server. + # To construct, see NOTES section for CONFIGSERVERSETTING properties and create a hash table. + ${ConfigServerSetting}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Public sshKey of git repository. + ${GitPropertyHostKey}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # SshKey algorithm of git repository. + ${GitPropertyHostKeyAlgorithm}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Label of the repository + ${GitPropertyLabel}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Password of git repository basic auth. + ${GitPropertyPassword}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Private sshKey algorithm of git repository. + ${GitPropertyPrivateKey}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]] + # Repositories of git. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Searching path of the repository + ${GitPropertySearchPath}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Strict host key checking or not. + ${GitPropertyStrictHostKeyChecking}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # URI of the repository + ${GitPropertyUri}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Username of git repository basic auth. + ${GitPropertyUsername}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformConfigServer_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformConfigServer_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformConfigServer_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformConfigServer_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Test-AzAppPlatformConfigurationService.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformConfigurationService.ps1 new file mode 100644 index 000000000000..63dd31510f1a --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformConfigurationService.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Check if the Application Configuration Service settings are valid. +.Description +Check if the Application Configuration Service settings are valid. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult +.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. + +GITPROPERTYREPOSITORY : Repositories of Application Configuration Service git property. + Label : Label of the repository + Name : Name of the repository + Pattern : Collection of patterns of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Password ]: Password of git repository basic auth. + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +SETTING : The settings of Application Configuration Service. + [GitPropertyRepository ]: Repositories of Application Configuration Service git property. + Label : Label of the repository + Name : Name of the repository + Pattern : Collection of patterns of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Password ]: Password of git repository basic auth. + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformconfigurationservice +#> +function Test-AzAppPlatformConfigurationService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Alias('ConfigurationServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Application Configuration Service. + ${Name}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings] + # The settings of Application Configuration Service. + # To construct, see NOTES section for SETTING properties and create a hash table. + ${Setting}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]] + # Repositories of Application Configuration Service git property. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformConfigurationService_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformConfigurationService_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformConfigurationService_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformConfigurationService_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Test-AzAppPlatformCustomizedAccelerator.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformCustomizedAccelerator.ps1 new file mode 100644 index 000000000000..7bc0c74bfd6f --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformCustomizedAccelerator.ps1 @@ -0,0 +1,337 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Check the customized accelerator are valid. +.Description +Check the customized accelerator are valid. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +PROPERTY : Customized accelerator properties payload + AuthSettingAuthType : The type of the auth setting. + GitRepositoryUrl : Git repository URL for the accelerator. + [AcceleratorTag ]: + [Description ]: + [DisplayName ]: + [GitRepositoryBranch ]: Git repository branch to be used. + [GitRepositoryCommit ]: Git repository commit to be used. + [GitRepositoryGitTag ]: Git repository tag to be used. + [GitRepositoryIntervalInSecond ]: Interval for checking for updates to Git or image repository. + [IconUrl ]: +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformcustomizedaccelerator +#> +function Test-AzAppPlatformCustomizedAccelerator { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the application accelerator. + ${ApplicationAcceleratorName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Alias('CustomizedAcceleratorName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the customized accelerator. + ${Name}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties] + # Customized accelerator properties payload + # To construct, see NOTES section for PROPERTY properties and create a hash table. + ${Property}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The type of the auth setting. + ${AuthSettingAuthType}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository URL for the accelerator. + ${GitRepositoryUrl}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # . + ${AcceleratorTag}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${Description}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${DisplayName}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository branch to be used. + ${GitRepositoryBranch}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository commit to be used. + ${GitRepositoryCommit}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Git repository tag to be used. + ${GitRepositoryGitTag}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Interval for checking for updates to Git or image repository. + ${GitRepositoryIntervalInSecond}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # . + ${IconUrl}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformCustomizedAccelerator_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformCustomizedAccelerator_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformCustomizedAccelerator_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Test-AzAppPlatformGatewayDomain.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformGatewayDomain.ps1 new file mode 100644 index 000000000000..085b1a8f26d0 --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformGatewayDomain.ps1 @@ -0,0 +1,250 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Check the domains are valid as well as not in use. +.Description +Check the domains are valid as well as not in use. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +VALIDATEPAYLOAD : Custom domain validate payload. + Name : Name to be validated +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/test-azappplatformgatewaydomain +#> +function Test-AzAppPlatformGatewayDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult])] +[CmdletBinding(DefaultParameterSetName='ValidateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of Spring Cloud Gateway. + ${GatewayName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Validate', Mandatory)] + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='Validate')] + [Parameter(ParameterSetName='ValidateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Validate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='ValidateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload] + # Custom domain validate payload. + # To construct, see NOTES section for VALIDATEPAYLOAD properties and create a hash table. + ${ValidatePayload}, + + [Parameter(ParameterSetName='ValidateExpanded', Mandatory)] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name to be validated + ${Name}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Validate = 'Az.AppPlatform.private\Test-AzAppPlatformGatewayDomain_Validate'; + ValidateExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformGatewayDomain_ValidateExpanded'; + ValidateViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformGatewayDomain_ValidateViaIdentity'; + ValidateViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformGatewayDomain_ValidateViaIdentityExpanded'; + } + if (('Validate', 'ValidateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Test-AzAppPlatformServiceNameAvailability.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformServiceNameAvailability.ps1 new file mode 100644 index 000000000000..ce78a0225042 --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformServiceNameAvailability.ps1 @@ -0,0 +1,243 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 resource name is valid and is not already in use. +.Description +Checks that the resource name is valid and is not already in use. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability +.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. + +AVAILABILITYPARAMETER : Name availability parameters payload + Name : Name to be checked + Type : Type of the resource to check name availability + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/test-azappplatformservicenameavailability +#> +function Test-AzAppPlatformServiceNameAvailability { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability])] +[CmdletBinding(DefaultParameterSetName='CheckExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Check', Mandatory)] + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # the region + ${Location}, + + [Parameter(ParameterSetName='Check')] + [Parameter(ParameterSetName='CheckExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # 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.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters] + # Name availability parameters payload + # To construct, see NOTES section for AVAILABILITYPARAMETER properties and create a hash table. + ${AvailabilityParameter}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name to be checked + ${Name}, + + [Parameter(ParameterSetName='CheckExpanded', Mandatory)] + [Parameter(ParameterSetName='CheckViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Type of the resource to check name availability + ${Type}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Check = 'Az.AppPlatform.private\Test-AzAppPlatformServiceNameAvailability_Check'; + CheckExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformServiceNameAvailability_CheckExpanded'; + CheckViaIdentity = 'Az.AppPlatform.private\Test-AzAppPlatformServiceNameAvailability_CheckViaIdentity'; + CheckViaIdentityExpanded = 'Az.AppPlatform.private\Test-AzAppPlatformServiceNameAvailability_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Update-AzAppPlatformApp.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformApp.ps1 new file mode 100644 index 000000000000..5abcbd004574 --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformApp.ps1 @@ -0,0 +1,388 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Operation to update an exiting App. +.Description +Operation to update an exiting App. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource +.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. + +CUSTOMPERSISTENTDISK : List of custom persistent disks + StorageId : The resource id of Azure Spring Apps Storage resource. + [CustomPersistentDiskPropertyMountOption ]: These are the mount options for a persistent disk. + [CustomPersistentDiskPropertyMountPath ]: The mount path of the persistent disk. + [CustomPersistentDiskPropertyReadOnly ]: Indicates whether the persistent disk is a readOnly one. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + +LOADEDCERTIFICATE : Collection of loaded certificates + ResourceId : Resource Id of loaded certificate + [LoadTrustStore ]: Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/update-azappplatformapp +#> +function Update-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('AppName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs]))] + [System.Collections.Hashtable] + # Collection of addons + ${AddonConfig}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Collection of certificate resource id. + ${ClientAuthCertificate}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[]] + # List of custom persistent disks + # To construct, see NOTES section for CUSTOMPERSISTENTDISK properties and create a hash table. + ${CustomPersistentDisk}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if end to end TLS is enabled. + ${EnableEndToEndTl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicate if only https is allowed. + ${HttpsOnly}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Principal Id of system-assigned managed identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tenant Id of system-assigned managed identity. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType] + # Type of the managed identity + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities]))] + [System.Collections.Hashtable] + # Properties of user-assigned managed identities + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol] + # How ingress should communicate with this app backend service. + ${IngressSettingBackendProtocol}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress read time out in seconds. + ${IngressSettingReadTimeoutInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress send time out in seconds. + ${IngressSettingSendTimeoutInSecond}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity] + # Type of the affinity, set this to Cookie to enable session affinity. + ${IngressSettingSessionAffinity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Time in seconds until the cookie expires. + ${IngressSettingSessionCookieMaxAge}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[]] + # Collection of loaded certificates + # To construct, see NOTES section for LOADEDCERTIFICATE properties and create a hash table. + ${LoadedCertificate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The GEO location of the application, always the same with its parent resource + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Mount path of the persistent disk + ${PersistentDiskMountPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Size of the persistent disk in GB + ${PersistentDiskSizeInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the App exposes public endpoint + ${Public}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Mount path of the temporary disk + ${TemporaryDiskMountPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Size of the temporary disk in GB + ${TemporaryDiskSizeInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + ${VnetAddonPublicEndpoint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformApp_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformApp_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Update-AzAppPlatformBinding.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformBinding.ps1 new file mode 100644 index 000000000000..ded6ca6214dc --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformBinding.ps1 @@ -0,0 +1,261 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Operation to update an exiting Binding. +.Description +Operation to update an exiting Binding. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformbinding +#> +function Update-AzAppPlatformBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('BindingName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Binding resource. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters]))] + [System.Collections.Hashtable] + # Binding parameters of the Binding resource + ${BindingParameter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The key of the bound resource + ${Key}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The Azure resource id of the bound resource + ${ResourceId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformBinding_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformBinding_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Update-AzAppPlatformConfigServerPatch.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformConfigServerPatch.ps1 new file mode 100644 index 000000000000..f7c17c8f7a73 --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformConfigServerPatch.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update the config server. +.Description +Update the config server. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource +.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. + +GITPROPERTYREPOSITORY : Repositories of git. + Name : Name of the repository + Uri : URI of the repository + [HostKey ]: Public sshKey of git repository. + [HostKeyAlgorithm ]: SshKey algorithm of git repository. + [Label ]: Label of the repository + [Password ]: Password of git repository basic auth. + [Pattern ]: Collection of pattern of the repository + [PrivateKey ]: Private sshKey algorithm of git repository. + [SearchPath ]: Searching path of the repository + [StrictHostKeyChecking ]: Strict host key checking or not. + [Username ]: Username of git repository basic auth. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformconfigserverpatch +#> +function Update-AzAppPlatformConfigServerPatch { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The code of error. + ${Code}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Public sshKey of git repository. + ${GitPropertyHostKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # SshKey algorithm of git repository. + ${GitPropertyHostKeyAlgorithm}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Label of the repository + ${GitPropertyLabel}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Password of git repository basic auth. + ${GitPropertyPassword}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Private sshKey algorithm of git repository. + ${GitPropertyPrivateKey}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]] + # Repositories of git. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String[]] + # Searching path of the repository + ${GitPropertySearchPath}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Strict host key checking or not. + ${GitPropertyStrictHostKeyChecking}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # URI of the repository + ${GitPropertyUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Username of git repository basic auth. + ${GitPropertyUsername}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The message of error. + ${Message}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformConfigServerPatch_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformConfigServerPatch_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Update-AzAppPlatformCustomDomain.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformCustomDomain.ps1 new file mode 100644 index 000000000000..7e80e803d68e --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformCustomDomain.ps1 @@ -0,0 +1,253 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 custom domain of one lifecycle application. +.Description +Update custom domain of one lifecycle application. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformcustomdomain +#> +function Update-AzAppPlatformCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the custom domain resource. + ${DomainName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The bound certificate name of domain. + ${CertName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The thumbprint of bound certificate. + ${Thumbprint}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformCustomDomain_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformCustomDomain_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Update-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..d56faa6da897 --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformDeployment.ps1 @@ -0,0 +1,316 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Operation to update an exiting Deployment. +.Description +Operation to update an exiting Deployment. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource +.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. + +DEPLOYMENTSETTING : Deployment settings of the Deployment + [AddonConfig ]: Collection of addons + [(Any) ]: This indicates any property can be added to this object. + [ContainerProbeSettingDisableProbe ]: Indicates whether disable the liveness and readiness probe + [EnvironmentVariable ]: Collection of environment variables + [(Any) ]: This indicates any property can be added to this object. + [LivenessProbeActionType ]: The type of the action to take to perform the health check. + [LivenessProbeDisableProbe ]: Indicate whether the probe is disabled. + [LivenessProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [LivenessProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [LivenessProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [LivenessProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [LivenessProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [ReadinessProbeActionType ]: The type of the action to take to perform the health check. + [ReadinessProbeDisableProbe ]: Indicate whether the probe is disabled. + [ReadinessProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [ReadinessProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [ReadinessProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [ReadinessProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [ReadinessProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [ResourceRequestCpu ]: Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier. + [ResourceRequestMemory ]: Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier. + [StartupProbeActionType ]: The type of the action to take to perform the health check. + [StartupProbeDisableProbe ]: Indicate whether the probe is disabled. + [StartupProbeFailureThreshold ]: Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + [StartupProbeInitialDelaySecond ]: Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + [StartupProbePeriodSecond ]: How often (in seconds) to perform the probe. Minimum value is 1. + [StartupProbeSuccessThreshold ]: Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1. + [StartupProbeTimeoutSecond ]: Number of seconds after which the probe times out. Minimum value is 1. + [TerminationGracePeriodSecond ]: Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. + +INPUTOBJECT : Identity Parameter + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformdeployment +#> +function Update-AzAppPlatformDeployment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the App resource. + ${AppName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DeploymentName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Deployment resource. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the Deployment is active + ${Active}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings] + # Deployment settings of the Deployment + # To construct, see NOTES section for DEPLOYMENTSETTING properties and create a hash table. + ${DeploymentSetting}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Type of the source uploaded + ${SourceType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Version of the source + ${SourceVersion}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformDeployment_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformDeployment_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Update-AzAppPlatformMonitoringSettingPatch.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformMonitoringSettingPatch.ps1 new file mode 100644 index 000000000000..3ccdf2014a40 --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformMonitoringSettingPatch.ps1 @@ -0,0 +1,260 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 the Monitoring Setting. +.Description +Update the Monitoring Setting. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformmonitoringsettingpatch +#> +function Update-AzAppPlatformMonitoringSettingPatch { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${ServiceName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + ${AppInsightsInstrumentationKey}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Double] + # Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + ${AppInsightsSamplingRate}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The code of error. + ${Code}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The message of error. + ${Message}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. + # Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + ${TraceEnabled}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformMonitoringSettingPatch_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformMonitoringSettingPatch_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/exports/Update-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..bb8304f4a54e --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformService.ps1 @@ -0,0 +1,333 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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 +Operation to update an exiting Service. +.Description +Operation to update an exiting Service. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource +.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 + [AgentPoolName ]: The name of the build service agent pool resource. + [ApiPortalName ]: The name of API portal. + [AppName ]: The name of the App resource. + [ApplicationAcceleratorName ]: The name of the application accelerator. + [ApplicationLiveViewName ]: The name of Application Live View. + [BindingName ]: The name of the Binding resource. + [BuildName ]: The name of the build resource. + [BuildResultName ]: The name of the build result resource. + [BuildServiceName ]: The name of the build service resource. + [BuilderName ]: The name of the builder resource. + [BuildpackBindingName ]: The name of the Buildpack Binding Name + [BuildpackName ]: The name of the buildpack resource. + [CertificateName ]: The name of the certificate resource. + [ConfigurationServiceName ]: The name of Application Configuration Service. + [CustomizedAcceleratorName ]: The name of the customized accelerator. + [DeploymentName ]: The name of the Deployment resource. + [DevToolPortalName ]: The name of Dev Tool Portal. + [DomainName ]: The name of the custom domain resource. + [GatewayName ]: The name of Spring Cloud Gateway. + [Id ]: Resource identity path + [Location ]: the region + [PredefinedAcceleratorName ]: The name of the predefined accelerator. + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [RouteConfigName ]: The name of the Spring Cloud Gateway route config. + [ServiceName ]: The name of the Service resource. + [ServiceRegistryName ]: The name of Service Registry. + [StackName ]: The name of the stack resource. + [StorageName ]: The name of the storage resource. + [SubscriptionId ]: Gets subscription ID which uniquely identify the 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.appplatform/update-azappplatformservice +#> +function Update-AzAppPlatformService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ServiceName')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the Service resource. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [System.String] + # The name of the resource group that contains the resource. + # You can obtain this value from the Azure Resource Manager API or the portal. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Gets subscription ID which uniquely identify the 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.AppPlatform.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Ingress read time out in seconds. + ${IngressConfigReadTimeoutInSecond}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The GEO location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The plan id of the 3rd Party Artifact that is being procured. + ${MarketplaceResourcePlan}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The 3rd Party artifact that is being procured. + ${MarketplaceResourceProduct}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The publisher id of the 3rd Party Artifact that is being bought. + ${MarketplaceResourcePublisher}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources for customer apps in Azure Spring Apps + ${NetworkProfileAppNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + ${NetworkProfileAppSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The egress traffic type of Azure Spring Apps VNet instances. + ${NetworkProfileOutboundType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Azure Spring Apps service reserved CIDR + ${NetworkProfileServiceCidr}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources of Azure Spring Apps Service Runtime + ${NetworkProfileServiceRuntimeNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + ${NetworkProfileServiceRuntimeSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Current capacity of the target resource + ${SkuCapacity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the Sku + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tier of the Sku + ${SkuTier}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the service which is a list of key value pairs that describe the resource. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Indicates whether the log stream in vnet injection instance could be accessed from internet. + ${VnetAddonLogStreamPublicEndpoint}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Management.Automation.SwitchParameter] + # . + ${ZoneRedundant}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformService_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.AppPlatform.private\Update-AzAppPlatformService_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.AppPlatform.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 { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/appplatform/generate-help.ps1 b/swaggerci/appplatform/generate-help.ps1 new file mode 100644 index 000000000000..129e036ebe3c --- /dev/null +++ b/swaggerci/appplatform/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.AppPlatform.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.AppPlatform.private.dll') +$instance = [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/Module.cs b/swaggerci/appplatform/generated/Module.cs new file mode 100644 index 000000000000..85a4b7f5f50c --- /dev/null +++ b/swaggerci/appplatform/generated/Module.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 GetTelemetryIdDelegate = global::System.Func; + using TelemetryDelegate = global::System.Action; + 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.AppPlatform.Runtime.HttpPipeline _pipeline; + + /// the ISendAsync pipeline instance (when proxy is enabled) + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.AppPlatformManagementClient 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; } + + /// The delegate to get the telemetry Id. + public GetTelemetryIdDelegate GetTelemetryId { get; set; } + + /// Backing field for property. + private static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module _instance; + + /// the singleton of this module class + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module Instance => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module._instance?? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module._instance = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module()); + + /// The Name of this module + public string Name => @"Az.AppPlatform"; + + /// 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.AppPlatform"; + + /// The delegate for creating a telemetry. + public TelemetryDelegate Telemetry { get; set; } + + /// The from the cmdlet + /// The HttpPipeline for the request + + partial void AfterCreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, ref Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.HttpPipeline for the remote call. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.AppPlatformManagementClient(); + _handler.Proxy = _webProxy; + _pipeline = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient())); + _pipelineWithProxy = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/AppPlatformManagementClient.cs b/swaggerci/appplatform/generated/api/AppPlatformManagementClient.cs new file mode 100644 index 000000000000..c98f576bacf6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/AppPlatformManagementClient.cs @@ -0,0 +1,33009 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Low-level API implementation for the AppPlatformManagementClient service. + /// REST API for Azure Spring Apps + /// + public partial class AppPlatformManagementClient + { + + /// Create or update the API portal custom domain. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// The name of the API portal custom domain. + /// The API portal custom domain for the create or 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.AppPlatform.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 ApiPortalCustomDomainsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals/" + + global::System.Uri.EscapeDataString(apiPortalName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalCustomDomainsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update the API portal custom domain. + /// + /// The API portal custom domain for the create or 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.AppPlatform.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 ApiPortalCustomDomainsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var apiPortalName = _match.Groups["apiPortalName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals/" + + apiPortalName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalCustomDomainsCreateOrUpdate_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.AppPlatform.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 ApiPortalCustomDomainsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// The name of the API portal custom domain. + /// The API portal custom domain for the create or 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 ApiPortalCustomDomainsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(apiPortalName),apiPortalName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the API portal custom domain. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// The name of the API portal custom domain. + /// 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.AppPlatform.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 ApiPortalCustomDomainsDelete(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, string domainName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals/" + + global::System.Uri.EscapeDataString(apiPortalName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalCustomDomainsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the API portal custom domain. + /// + /// 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.AppPlatform.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 ApiPortalCustomDomainsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var apiPortalName = _match.Groups["apiPortalName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals/" + + apiPortalName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalCustomDomainsDelete_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.AppPlatform.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 ApiPortalCustomDomainsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// The name of the API portal custom domain. + /// 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 ApiPortalCustomDomainsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(apiPortalName),apiPortalName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// Get the API portal custom domain. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// The name of the API portal custom domain. + /// 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.AppPlatform.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 ApiPortalCustomDomainsGet(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, string domainName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals/" + + global::System.Uri.EscapeDataString(apiPortalName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalCustomDomainsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the API portal custom domain. + /// + /// 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.AppPlatform.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 ApiPortalCustomDomainsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var apiPortalName = _match.Groups["apiPortalName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals/" + + apiPortalName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalCustomDomainsGet_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.AppPlatform.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 ApiPortalCustomDomainsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// The name of the API portal custom domain. + /// 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 ApiPortalCustomDomainsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(apiPortalName),apiPortalName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// Handle requests to list all API portal custom domains. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// 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.AppPlatform.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 ApiPortalCustomDomainsList(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals/" + + global::System.Uri.EscapeDataString(apiPortalName) + + "/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalCustomDomainsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handle requests to list all API portal custom domains. + /// + /// 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.AppPlatform.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 ApiPortalCustomDomainsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals/(?[^/]+)/domains$", 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.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var apiPortalName = _match.Groups["apiPortalName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals/" + + apiPortalName + + "/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalCustomDomainsList_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.AppPlatform.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 ApiPortalCustomDomainsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// 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 ApiPortalCustomDomainsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(apiPortalName),apiPortalName); + } + } + + /// Create the default API portal or update the existing API portal. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// The API portal for the create or 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.AppPlatform.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 ApiPortalsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals/" + + global::System.Uri.EscapeDataString(apiPortalName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create the default API portal or update the existing API portal. + /// + /// The API portal for the create or 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.AppPlatform.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 ApiPortalsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var apiPortalName = _match.Groups["apiPortalName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals/" + + apiPortalName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsCreateOrUpdate_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.AppPlatform.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 ApiPortalsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// The API portal for the create or 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 ApiPortalsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(apiPortalName),apiPortalName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the default API portal. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// 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.AppPlatform.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 ApiPortalsDelete(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals/" + + global::System.Uri.EscapeDataString(apiPortalName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the default API portal. + /// + /// 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.AppPlatform.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 ApiPortalsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var apiPortalName = _match.Groups["apiPortalName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals/" + + apiPortalName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsDelete_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.AppPlatform.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 ApiPortalsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// 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 ApiPortalsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(apiPortalName),apiPortalName); + } + } + + /// Get the API portal and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// 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.AppPlatform.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 ApiPortalsGet(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals/" + + global::System.Uri.EscapeDataString(apiPortalName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the API portal and its properties. + /// + /// 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.AppPlatform.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 ApiPortalsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var apiPortalName = _match.Groups["apiPortalName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals/" + + apiPortalName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsGet_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.AppPlatform.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 ApiPortalsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// 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 ApiPortalsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(apiPortalName),apiPortalName); + } + } + + /// Handles requests to list all resources in a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ApiPortalsList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in a Service. + /// + /// 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.AppPlatform.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 ApiPortalsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals$", 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.AppPlatform/Spring/{serviceName}/apiPortals'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsList_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.AppPlatform.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 ApiPortalsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ApiPortalsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Check the domains are valid as well as not in use. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// Custom domain payload to be validated + /// 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.AppPlatform.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 ApiPortalsValidateDomain(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apiPortals/" + + global::System.Uri.EscapeDataString(apiPortalName) + + "/validateDomain" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsValidateDomain_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Check the domains are valid as well as not in use. + /// + /// Custom domain payload to be validated + /// 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.AppPlatform.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 ApiPortalsValidateDomainViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apiPortals/(?[^/]+)/validateDomain$", 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.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/validateDomain'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var apiPortalName = _match.Groups["apiPortalName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apiPortals/" + + apiPortalName + + "/validateDomain" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApiPortalsValidateDomain_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.AppPlatform.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 ApiPortalsValidateDomain_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidateResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of API portal. + /// Custom domain payload to be validated + /// 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 ApiPortalsValidateDomain_Validate(string subscriptionId, string resourceGroupName, string serviceName, string apiPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(apiPortalName),apiPortalName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update the application accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The application accelerator for the create or 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.AppPlatform.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 ApplicationAcceleratorsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationAcceleratorsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update the application accelerator. + /// + /// The application accelerator for the create or 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.AppPlatform.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 ApplicationAcceleratorsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationAcceleratorsCreateOrUpdate_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.AppPlatform.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 ApplicationAcceleratorsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The application accelerator for the create or 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 ApplicationAcceleratorsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the application accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// 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.AppPlatform.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 ApplicationAcceleratorsDelete(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationAcceleratorsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the application accelerator. + /// + /// 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.AppPlatform.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 ApplicationAcceleratorsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationAcceleratorsDelete_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.AppPlatform.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 ApplicationAcceleratorsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// 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 ApplicationAcceleratorsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + } + } + + /// Get the application accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// 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.AppPlatform.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 ApplicationAcceleratorsGet(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationAcceleratorsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the application accelerator. + /// + /// 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.AppPlatform.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 ApplicationAcceleratorsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationAcceleratorsGet_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.AppPlatform.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 ApplicationAcceleratorsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// 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 ApplicationAcceleratorsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + } + } + + /// Handle requests to list all application accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ApplicationAcceleratorsList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationAcceleratorsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handle requests to list all application accelerator. + /// + /// 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.AppPlatform.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 ApplicationAcceleratorsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationAcceleratorsList_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.AppPlatform.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 ApplicationAcceleratorsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ApplicationAcceleratorsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// + /// Create the default Application Live View or update the existing Application Live View. + /// + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Live View. + /// Parameters for 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.AppPlatform.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 ApplicationLiveViewsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string applicationLiveViewName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationLiveViews/" + + global::System.Uri.EscapeDataString(applicationLiveViewName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationLiveViewsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Create the default Application Live View or update the existing Application Live View. + /// + /// + /// Parameters for 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.AppPlatform.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 ApplicationLiveViewsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationLiveViews/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationLiveViews/{applicationLiveViewName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationLiveViewName = _match.Groups["applicationLiveViewName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationLiveViews/" + + applicationLiveViewName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationLiveViewsCreateOrUpdate_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.AppPlatform.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 ApplicationLiveViewsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Live View. + /// Parameters for 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 ApplicationLiveViewsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationLiveViewName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationLiveViewName),applicationLiveViewName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Disable the default Application Live View. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Live View. + /// 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.AppPlatform.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 ApplicationLiveViewsDelete(string subscriptionId, string resourceGroupName, string serviceName, string applicationLiveViewName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationLiveViews/" + + global::System.Uri.EscapeDataString(applicationLiveViewName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationLiveViewsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Disable the default Application Live View. + /// + /// 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.AppPlatform.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 ApplicationLiveViewsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationLiveViews/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationLiveViews/{applicationLiveViewName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationLiveViewName = _match.Groups["applicationLiveViewName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationLiveViews/" + + applicationLiveViewName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationLiveViewsDelete_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.AppPlatform.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 ApplicationLiveViewsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Live View. + /// 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 ApplicationLiveViewsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationLiveViewName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationLiveViewName),applicationLiveViewName); + } + } + + /// Get the Application Live and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Live View. + /// 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.AppPlatform.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 ApplicationLiveViewsGet(string subscriptionId, string resourceGroupName, string serviceName, string applicationLiveViewName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationLiveViews/" + + global::System.Uri.EscapeDataString(applicationLiveViewName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationLiveViewsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Application Live and its properties. + /// + /// 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.AppPlatform.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 ApplicationLiveViewsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationLiveViews/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationLiveViews/{applicationLiveViewName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationLiveViewName = _match.Groups["applicationLiveViewName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationLiveViews/" + + applicationLiveViewName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationLiveViewsGet_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.AppPlatform.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 ApplicationLiveViewsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Live View. + /// 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 ApplicationLiveViewsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationLiveViewName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationLiveViewName),applicationLiveViewName); + } + } + + /// Handles requests to list all resources in a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ApplicationLiveViewsList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationLiveViews" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationLiveViewsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in a Service. + /// + /// 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.AppPlatform.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 ApplicationLiveViewsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationLiveViews$", 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.AppPlatform/Spring/{serviceName}/applicationLiveViews'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationLiveViews" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ApplicationLiveViewsList_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.AppPlatform.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 ApplicationLiveViewsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ApplicationLiveViewsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Create a new App or update an exiting App. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Parameters for the create or 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.AppPlatform.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 AppsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create a new App or update an exiting App. + /// + /// Parameters for the create or 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.AppPlatform.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 AppsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsCreateOrUpdate_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.AppPlatform.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 AppsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Parameters for the create or 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 AppsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Operation to delete an App. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// 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.AppPlatform.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 AppsDelete(string subscriptionId, string resourceGroupName, string serviceName, string appName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Operation to delete an App. + /// + /// 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.AppPlatform.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 AppsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsDelete_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.AppPlatform.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 AppsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App 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 AppsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + } + } + + /// Get an App and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Indicates whether sync status + /// 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.AppPlatform.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 AppsGet(string subscriptionId, string resourceGroupName, string serviceName, string appName, string syncStatus, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(syncStatus) ? global::System.String.Empty : "syncStatus=" + global::System.Uri.EscapeDataString(syncStatus)) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Get an resource upload URL for an App, which may be artifacts or source archive. + /// + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App 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.AppPlatform.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 AppsGetResourceUploadUrl(string subscriptionId, string resourceGroupName, string serviceName, string appName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/getResourceUploadUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsGetResourceUploadUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Get an resource upload URL for an App, which may be artifacts or source archive. + /// + /// + /// 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.AppPlatform.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 AppsGetResourceUploadUrlViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/getResourceUploadUrl$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/getResourceUploadUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/getResourceUploadUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsGetResourceUploadUrl_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.AppPlatform.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 AppsGetResourceUploadUrl_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceUploadDefinition.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App 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 AppsGetResourceUploadUrl_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + } + } + + /// Get an App and its properties. + /// + /// Indicates whether sync status + /// 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.AppPlatform.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 AppsGetViaIdentity(global::System.String viaIdentity, string syncStatus, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(syncStatus) ? global::System.String.Empty : "syncStatus=" + global::System.Uri.EscapeDataString(syncStatus)) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsGet_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.AppPlatform.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 AppsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Indicates whether sync status + /// 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 AppsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string syncStatus, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(syncStatus),syncStatus); + } + } + + /// Handles requests to list all resources in a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 AppsList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in a Service. + /// + /// 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.AppPlatform.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 AppsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps$", 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.AppPlatform/Spring/{serviceName}/apps'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsList_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.AppPlatform.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 AppsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 AppsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Set existing Deployment under the app as active + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// A list of Deployment name to be active. + /// 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.AppPlatform.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 AppsSetActiveDeployments(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/setActiveDeployments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsSetActiveDeployments_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Set existing Deployment under the app as active + /// + /// A list of Deployment name to be active. + /// 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.AppPlatform.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 AppsSetActiveDeploymentsViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/setActiveDeployments$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/setActiveDeployments'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/setActiveDeployments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsSetActiveDeployments_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.AppPlatform.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 AppsSetActiveDeployments_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// A list of Deployment name to be active. + /// 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 AppsSetActiveDeployments_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Operation to update an exiting App. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Parameters for 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.AppPlatform.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 AppsUpdate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Operation to update an exiting App. + /// + /// Parameters for 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.AppPlatform.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 AppsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsUpdate_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.AppPlatform.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 AppsUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Parameters for 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 AppsUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Check the resource name is valid as well as not in use. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Custom domain payload to be validated + /// 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.AppPlatform.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 AppsValidateDomain(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/validateDomain" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsValidateDomain_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Check the resource name is valid as well as not in use. + /// + /// Custom domain payload to be validated + /// 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.AppPlatform.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 AppsValidateDomainViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/validateDomain$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/validateDomain'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/validateDomain" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.AppsValidateDomain_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.AppPlatform.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 AppsValidateDomain_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidateResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Custom domain payload to be validated + /// 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 AppsValidateDomain_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create a new Binding or update an exiting Binding. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Binding resource. + /// Parameters for the create or 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.AppPlatform.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 BindingsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string bindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/bindings/" + + global::System.Uri.EscapeDataString(bindingName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create a new Binding or update an exiting Binding. + /// + /// Parameters for the create or 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.AppPlatform.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 BindingsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/bindings/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var bindingName = _match.Groups["bindingName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/bindings/" + + bindingName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsCreateOrUpdate_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.AppPlatform.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 BindingsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Binding resource. + /// Parameters for the create or 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 BindingsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string bindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(bindingName),bindingName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Operation to delete a Binding. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Binding resource. + /// 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.AppPlatform.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 BindingsDelete(string subscriptionId, string resourceGroupName, string serviceName, string appName, string bindingName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/bindings/" + + global::System.Uri.EscapeDataString(bindingName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Operation to delete a Binding. + /// + /// 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.AppPlatform.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 BindingsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/bindings/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var bindingName = _match.Groups["bindingName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/bindings/" + + bindingName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsDelete_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.AppPlatform.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 BindingsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Binding 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 BindingsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string bindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(bindingName),bindingName); + } + } + + /// Get a Binding and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Binding 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.AppPlatform.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 BindingsGet(string subscriptionId, string resourceGroupName, string serviceName, string appName, string bindingName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/bindings/" + + global::System.Uri.EscapeDataString(bindingName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a Binding and its properties. + /// + /// 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.AppPlatform.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 BindingsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/bindings/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var bindingName = _match.Groups["bindingName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/bindings/" + + bindingName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsGet_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.AppPlatform.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 BindingsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Binding 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 BindingsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string bindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(bindingName),bindingName); + } + } + + /// Handles requests to list all resources in an App. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App 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.AppPlatform.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 BindingsList(string subscriptionId, string resourceGroupName, string serviceName, string appName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/bindings" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in an App. + /// + /// 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.AppPlatform.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 BindingsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/bindings$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/bindings" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsList_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.AppPlatform.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 BindingsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App 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 BindingsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + } + } + + /// Operation to update an exiting Binding. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Binding resource. + /// Parameters for 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.AppPlatform.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 BindingsUpdate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string bindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/bindings/" + + global::System.Uri.EscapeDataString(bindingName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Operation to update an exiting Binding. + /// + /// Parameters for 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.AppPlatform.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 BindingsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/bindings/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var bindingName = _match.Groups["bindingName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/bindings/" + + bindingName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BindingsUpdate_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.AppPlatform.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 BindingsUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Binding resource. + /// Parameters for 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 BindingsUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string bindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(bindingName),bindingName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get build service agent pool. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build service agent pool 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.AppPlatform.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 BuildServiceAgentPoolGet(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string agentPoolName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/agentPools/" + + global::System.Uri.EscapeDataString(agentPoolName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceAgentPoolGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get build service agent pool. + /// + /// 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.AppPlatform.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 BuildServiceAgentPoolGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/agentPools/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/agentPools/{agentPoolName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var agentPoolName = _match.Groups["agentPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/agentPools/" + + agentPoolName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceAgentPoolGet_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.AppPlatform.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 BuildServiceAgentPoolGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build service agent pool 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 BuildServiceAgentPoolGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string agentPoolName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(agentPoolName),agentPoolName); + } + } + + /// List build service agent pool. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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.AppPlatform.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 BuildServiceAgentPoolList(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/agentPools" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceAgentPoolList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List build service agent pool. + /// + /// 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.AppPlatform.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 BuildServiceAgentPoolListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/agentPools$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/agentPools'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/agentPools" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceAgentPoolList_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.AppPlatform.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 BuildServiceAgentPoolList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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 BuildServiceAgentPoolList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + } + } + + /// Create or update build service agent pool. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build service agent pool resource. + /// Parameters for 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.AppPlatform.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 BuildServiceAgentPoolUpdatePut(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string agentPoolName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/agentPools/" + + global::System.Uri.EscapeDataString(agentPoolName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceAgentPoolUpdatePut_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update build service agent pool. + /// + /// Parameters for 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.AppPlatform.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 BuildServiceAgentPoolUpdatePutViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/agentPools/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/agentPools/{agentPoolName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var agentPoolName = _match.Groups["agentPoolName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/agentPools/" + + agentPoolName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceAgentPoolUpdatePut_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.AppPlatform.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 BuildServiceAgentPoolUpdatePut_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build service agent pool resource. + /// Parameters for 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 BuildServiceAgentPoolUpdatePut_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string agentPoolName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(agentPoolName),agentPoolName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update a KPack builder. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// The target builder for the create or 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.AppPlatform.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 BuildServiceBuilderCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders/" + + global::System.Uri.EscapeDataString(builderName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update a KPack builder. + /// + /// The target builder for the create or 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.AppPlatform.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 BuildServiceBuilderCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var builderName = _match.Groups["builderName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders/" + + builderName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderCreateOrUpdate_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.AppPlatform.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 BuildServiceBuilderCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// The target builder for the create or 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 BuildServiceBuilderCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(builderName),builderName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete a KPack builder. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// 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.AppPlatform.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 BuildServiceBuilderDelete(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders/" + + global::System.Uri.EscapeDataString(builderName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete a KPack builder. + /// + /// 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.AppPlatform.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 BuildServiceBuilderDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var builderName = _match.Groups["builderName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders/" + + builderName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderDelete_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.AppPlatform.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 BuildServiceBuilderDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder 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 BuildServiceBuilderDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(builderName),builderName); + } + } + + /// Get a KPack builder. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder 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.AppPlatform.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 BuildServiceBuilderGet(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders/" + + global::System.Uri.EscapeDataString(builderName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a KPack builder. + /// + /// 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.AppPlatform.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 BuildServiceBuilderGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var builderName = _match.Groups["builderName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders/" + + builderName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderGet_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.AppPlatform.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 BuildServiceBuilderGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder 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 BuildServiceBuilderGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(builderName),builderName); + } + } + + /// List KPack builders result. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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.AppPlatform.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 BuildServiceBuilderList(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List deployments that are using the builder. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder 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.AppPlatform.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 BuildServiceBuilderListDeployments(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders/" + + global::System.Uri.EscapeDataString(builderName) + + "/listUsingDeployments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderListDeployments_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List deployments that are using the builder. + /// + /// 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.AppPlatform.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 BuildServiceBuilderListDeploymentsViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders/(?[^/]+)/listUsingDeployments$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/listUsingDeployments'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var builderName = _match.Groups["builderName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders/" + + builderName + + "/listUsingDeployments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderListDeployments_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.AppPlatform.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 BuildServiceBuilderListDeployments_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder 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 BuildServiceBuilderListDeployments_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(builderName),builderName); + } + } + + /// List KPack builders result. + /// + /// 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.AppPlatform.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 BuildServiceBuilderListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceBuilderList_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.AppPlatform.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 BuildServiceBuilderList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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 BuildServiceBuilderList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + } + } + + /// Create or update a KPack build. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build resource. + /// Parameters for the create or update operation + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// 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.AppPlatform.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 BuildServiceCreateOrUpdateBuild(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builds/" + + global::System.Uri.EscapeDataString(buildName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceCreateOrUpdateBuild_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Create or update a KPack build. + /// + /// Parameters for the create or update operation + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 201 (Created). + /// 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.AppPlatform.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 BuildServiceCreateOrUpdateBuildViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builds/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var buildName = _match.Groups["buildName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builds/" + + buildName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceCreateOrUpdateBuild_Call(request,onOk,onCreated,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 201 (Created). + /// 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.AppPlatform.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 BuildServiceCreateOrUpdateBuild_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Build.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Build.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build resource. + /// Parameters for the create or 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 BuildServiceCreateOrUpdateBuild_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(buildName),buildName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get a KPack build. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build 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.AppPlatform.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 BuildServiceGetBuild(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builds/" + + global::System.Uri.EscapeDataString(buildName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetBuild_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a KPack build result. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build resource. + /// The name of the build result 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.AppPlatform.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 BuildServiceGetBuildResult(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, string buildResultName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builds/" + + global::System.Uri.EscapeDataString(buildName) + + "/results/" + + global::System.Uri.EscapeDataString(buildResultName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetBuildResult_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a KPack build result log download URL. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build resource. + /// The name of the build result 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.AppPlatform.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 BuildServiceGetBuildResultLog(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, string buildResultName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builds/" + + global::System.Uri.EscapeDataString(buildName) + + "/results/" + + global::System.Uri.EscapeDataString(buildResultName) + + "/getLogFileUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetBuildResultLog_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a KPack build result log download URL. + /// + /// 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.AppPlatform.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 BuildServiceGetBuildResultLogViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builds/(?[^/]+)/results/(?[^/]+)/getLogFileUrl$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}/results/{buildResultName}/getLogFileUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var buildName = _match.Groups["buildName"].Value; + var buildResultName = _match.Groups["buildResultName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builds/" + + buildName + + "/results/" + + buildResultName + + "/getLogFileUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetBuildResultLog_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.AppPlatform.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 BuildServiceGetBuildResultLog_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultLog.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build resource. + /// The name of the build result 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 BuildServiceGetBuildResultLog_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, string buildResultName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(buildName),buildName); + await eventListener.AssertNotNull(nameof(buildResultName),buildResultName); + } + } + + /// Get a KPack build result. + /// + /// 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.AppPlatform.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 BuildServiceGetBuildResultViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builds/(?[^/]+)/results/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}/results/{buildResultName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var buildName = _match.Groups["buildName"].Value; + var buildResultName = _match.Groups["buildResultName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builds/" + + buildName + + "/results/" + + buildResultName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetBuildResult_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.AppPlatform.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 BuildServiceGetBuildResult_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build resource. + /// The name of the build result 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 BuildServiceGetBuildResult_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, string buildResultName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(buildName),buildName); + await eventListener.AssertNotNull(nameof(buildResultName),buildResultName); + } + } + + /// Get a build service resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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.AppPlatform.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 BuildServiceGetBuildService(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetBuildService_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a build service 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.AppPlatform.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 BuildServiceGetBuildServiceViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetBuildService_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.AppPlatform.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 BuildServiceGetBuildService_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildService.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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 BuildServiceGetBuildService_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + } + } + + /// Get a KPack build. + /// + /// 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.AppPlatform.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 BuildServiceGetBuildViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builds/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var buildName = _match.Groups["buildName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builds/" + + buildName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetBuild_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.AppPlatform.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 BuildServiceGetBuild_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Build.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build 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 BuildServiceGetBuild_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(buildName),buildName); + } + } + + /// + /// Get an resource upload URL for build service, which may be artifacts or source archive. + /// + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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.AppPlatform.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 BuildServiceGetResourceUploadUrl(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/getResourceUploadUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetResourceUploadUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Get an resource upload URL for build service, which may be artifacts or source archive. + /// + /// + /// 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.AppPlatform.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 BuildServiceGetResourceUploadUrlViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/getResourceUploadUrl$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/getResourceUploadUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/getResourceUploadUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetResourceUploadUrl_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.AppPlatform.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 BuildServiceGetResourceUploadUrl_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceUploadDefinition.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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 BuildServiceGetResourceUploadUrl_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + } + } + + /// Get the supported buildpack resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the buildpack 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.AppPlatform.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 BuildServiceGetSupportedBuildpack(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildpackName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/supportedBuildpacks/" + + global::System.Uri.EscapeDataString(buildpackName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetSupportedBuildpack_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the supported buildpack 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.AppPlatform.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 BuildServiceGetSupportedBuildpackViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/supportedBuildpacks/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedBuildpacks/{buildpackName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var buildpackName = _match.Groups["buildpackName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/supportedBuildpacks/" + + buildpackName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetSupportedBuildpack_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.AppPlatform.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 BuildServiceGetSupportedBuildpack_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the buildpack 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 BuildServiceGetSupportedBuildpack_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildpackName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(buildpackName),buildpackName); + } + } + + /// Get the supported stack resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the stack 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.AppPlatform.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 BuildServiceGetSupportedStack(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string stackName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/supportedStacks/" + + global::System.Uri.EscapeDataString(stackName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetSupportedStack_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the supported stack 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.AppPlatform.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 BuildServiceGetSupportedStackViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/supportedStacks/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedStacks/{stackName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var stackName = _match.Groups["stackName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/supportedStacks/" + + stackName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceGetSupportedStack_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.AppPlatform.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 BuildServiceGetSupportedStack_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the stack 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 BuildServiceGetSupportedStack_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string stackName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(stackName),stackName); + } + } + + /// List KPack build results. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build 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.AppPlatform.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 BuildServiceListBuildResults(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builds/" + + global::System.Uri.EscapeDataString(buildName) + + "/results" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListBuildResults_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List KPack build 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.AppPlatform.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 BuildServiceListBuildResultsViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builds/(?[^/]+)/results$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}/results'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var buildName = _match.Groups["buildName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builds/" + + buildName + + "/results" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListBuildResults_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.AppPlatform.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 BuildServiceListBuildResults_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the build 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 BuildServiceListBuildResults_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string buildName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(buildName),buildName); + } + } + + /// List build services resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 BuildServiceListBuildServices(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListBuildServices_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List build services 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.AppPlatform.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 BuildServiceListBuildServicesViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices$", 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.AppPlatform/Spring/{serviceName}/buildServices'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListBuildServices_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.AppPlatform.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 BuildServiceListBuildServices_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 BuildServiceListBuildServices_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// List KPack builds. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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.AppPlatform.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 BuildServiceListBuilds(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builds" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListBuilds_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List KPack builds. + /// + /// 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.AppPlatform.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 BuildServiceListBuildsViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builds$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builds" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListBuilds_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.AppPlatform.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 BuildServiceListBuilds_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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 BuildServiceListBuilds_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + } + } + + /// Get all supported buildpacks. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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.AppPlatform.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 BuildServiceListSupportedBuildpacks(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/supportedBuildpacks" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListSupportedBuildpacks_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all supported buildpacks. + /// + /// 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.AppPlatform.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 BuildServiceListSupportedBuildpacksViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/supportedBuildpacks$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedBuildpacks'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/supportedBuildpacks" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListSupportedBuildpacks_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.AppPlatform.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 BuildServiceListSupportedBuildpacks_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpacksCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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 BuildServiceListSupportedBuildpacks_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + } + } + + /// Get all supported stacks. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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.AppPlatform.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 BuildServiceListSupportedStacks(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/supportedStacks" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListSupportedStacks_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all supported stacks. + /// + /// 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.AppPlatform.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 BuildServiceListSupportedStacksViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/supportedStacks$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedStacks'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/supportedStacks" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildServiceListSupportedStacks_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.AppPlatform.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 BuildServiceListSupportedStacks_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStacksCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service 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 BuildServiceListSupportedStacks_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + } + } + + /// Create or update a buildpack binding. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// The name of the Buildpack Binding Name + /// The target buildpack binding for the create or 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.AppPlatform.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 BuildpackBindingCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, string buildpackBindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders/" + + global::System.Uri.EscapeDataString(builderName) + + "/buildpackBindings/" + + global::System.Uri.EscapeDataString(buildpackBindingName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildpackBindingCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update a buildpack binding. + /// + /// The target buildpack binding for the create or 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.AppPlatform.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 BuildpackBindingCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders/(?[^/]+)/buildpackBindings/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings/{buildpackBindingName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var builderName = _match.Groups["builderName"].Value; + var buildpackBindingName = _match.Groups["buildpackBindingName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders/" + + builderName + + "/buildpackBindings/" + + buildpackBindingName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildpackBindingCreateOrUpdate_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.AppPlatform.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 BuildpackBindingCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// The name of the Buildpack Binding Name + /// The target buildpack binding for the create or 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 BuildpackBindingCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, string buildpackBindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(builderName),builderName); + await eventListener.AssertNotNull(nameof(buildpackBindingName),buildpackBindingName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Operation to delete a Buildpack Binding + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// The name of the Buildpack Binding 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.AppPlatform.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 BuildpackBindingDelete(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, string buildpackBindingName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders/" + + global::System.Uri.EscapeDataString(builderName) + + "/buildpackBindings/" + + global::System.Uri.EscapeDataString(buildpackBindingName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildpackBindingDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Operation to delete a Buildpack Binding + /// + /// 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.AppPlatform.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 BuildpackBindingDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders/(?[^/]+)/buildpackBindings/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings/{buildpackBindingName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var builderName = _match.Groups["builderName"].Value; + var buildpackBindingName = _match.Groups["buildpackBindingName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders/" + + builderName + + "/buildpackBindings/" + + buildpackBindingName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildpackBindingDelete_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.AppPlatform.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 BuildpackBindingDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// The name of the Buildpack Binding Name + /// 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 BuildpackBindingDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, string buildpackBindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(builderName),builderName); + await eventListener.AssertNotNull(nameof(buildpackBindingName),buildpackBindingName); + } + } + + /// Get a buildpack binding by name. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// The name of the Buildpack Binding Name + /// 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.AppPlatform.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 BuildpackBindingGet(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, string buildpackBindingName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders/" + + global::System.Uri.EscapeDataString(builderName) + + "/buildpackBindings/" + + global::System.Uri.EscapeDataString(buildpackBindingName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildpackBindingGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a buildpack binding by name. + /// + /// 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.AppPlatform.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 BuildpackBindingGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders/(?[^/]+)/buildpackBindings/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings/{buildpackBindingName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var builderName = _match.Groups["builderName"].Value; + var buildpackBindingName = _match.Groups["buildpackBindingName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders/" + + builderName + + "/buildpackBindings/" + + buildpackBindingName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildpackBindingGet_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.AppPlatform.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 BuildpackBindingGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder resource. + /// The name of the Buildpack Binding Name + /// 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 BuildpackBindingGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, string buildpackBindingName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(builderName),builderName); + await eventListener.AssertNotNull(nameof(buildpackBindingName),buildpackBindingName); + } + } + + /// Handles requests to list all buildpack bindings in a builder. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder 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.AppPlatform.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 BuildpackBindingList(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/buildServices/" + + global::System.Uri.EscapeDataString(buildServiceName) + + "/builders/" + + global::System.Uri.EscapeDataString(builderName) + + "/buildpackBindings" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildpackBindingList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all buildpack bindings in a builder. + /// + /// 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.AppPlatform.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 BuildpackBindingListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/buildServices/(?[^/]+)/builders/(?[^/]+)/buildpackBindings$", 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.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var buildServiceName = _match.Groups["buildServiceName"].Value; + var builderName = _match.Groups["builderName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/buildServices/" + + buildServiceName + + "/builders/" + + builderName + + "/buildpackBindings" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.BuildpackBindingList_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.AppPlatform.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 BuildpackBindingList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the build service resource. + /// The name of the builder 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 BuildpackBindingList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string buildServiceName, string builderName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(buildServiceName),buildServiceName); + await eventListener.AssertNotNull(nameof(builderName),builderName); + } + } + + /// Create or update certificate resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the certificate resource. + /// Parameters for the create or 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.AppPlatform.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 CertificatesCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update certificate resource. + /// + /// Parameters for the create or 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.AppPlatform.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 CertificatesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/certificates/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesCreateOrUpdate_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.AppPlatform.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 CertificatesCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the certificate resource. + /// Parameters for the create or 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 CertificatesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the certificate resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the certificate resource. + /// 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.AppPlatform.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 CertificatesDelete(string subscriptionId, string resourceGroupName, string serviceName, string certificateName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the certificate resource. + /// + /// 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.AppPlatform.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 CertificatesDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/certificates/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesDelete_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.AppPlatform.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 CertificatesDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the certificate 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 CertificatesDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + } + } + + /// Get the certificate resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the certificate 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.AppPlatform.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 CertificatesGet(string subscriptionId, string resourceGroupName, string serviceName, string certificateName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/certificates/" + + global::System.Uri.EscapeDataString(certificateName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the certificate 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.AppPlatform.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 CertificatesGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/certificates/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/certificates/{certificateName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var certificateName = _match.Groups["certificateName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/certificates/" + + certificateName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesGet_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.AppPlatform.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 CertificatesGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the certificate 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 CertificatesGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string certificateName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(certificateName),certificateName); + } + } + + /// List all the certificates of one user. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 CertificatesList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/certificates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the certificates of one user. + /// + /// 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.AppPlatform.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 CertificatesListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/certificates$", 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.AppPlatform/Spring/{serviceName}/certificates'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/certificates" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CertificatesList_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.AppPlatform.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 CertificatesList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 CertificatesList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Get the config server and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ConfigServersGet(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configServers/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigServersGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the config server and its properties. + /// + /// 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.AppPlatform.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 ConfigServersGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configServers/default$", 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.AppPlatform/Spring/{serviceName}/configServers/default'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configServers/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigServersGet_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.AppPlatform.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 ConfigServersGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ConfigServersGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Update the config server. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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.AppPlatform.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 ConfigServersUpdatePatch(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configServers/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigServersUpdatePatch_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update the config server. + /// + /// Parameters for 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.AppPlatform.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 ConfigServersUpdatePatchViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configServers/default$", 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.AppPlatform/Spring/{serviceName}/configServers/default'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configServers/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigServersUpdatePatch_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.AppPlatform.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 ConfigServersUpdatePatch_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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 ConfigServersUpdatePatch_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Update the config server. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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.AppPlatform.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 ConfigServersUpdatePut(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configServers/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigServersUpdatePut_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update the config server. + /// + /// Parameters for 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.AppPlatform.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 ConfigServersUpdatePutViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configServers/default$", 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.AppPlatform/Spring/{serviceName}/configServers/default'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configServers/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigServersUpdatePut_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.AppPlatform.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 ConfigServersUpdatePut_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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 ConfigServersUpdatePut_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Check if the config server settings are valid. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Config server settings to be validated + /// 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.AppPlatform.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 ConfigServersValidate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configServers/validate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigServersValidate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Check if the config server settings are valid. + /// + /// Config server settings to be validated + /// 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.AppPlatform.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 ConfigServersValidateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configServers/validate$", 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.AppPlatform/Spring/{serviceName}/configServers/validate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configServers/validate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigServersValidate_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.AppPlatform.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 ConfigServersValidate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsValidateResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Config server settings to be validated + /// 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 ConfigServersValidate_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Create the default Application Configuration Service or update the existing Application Configuration Service. + /// + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Configuration Service. + /// Parameters for 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.AppPlatform.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 ConfigurationServicesCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string configurationServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configurationServices/" + + global::System.Uri.EscapeDataString(configurationServiceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Create the default Application Configuration Service or update the existing Application Configuration Service. + /// + /// + /// Parameters for 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.AppPlatform.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 ConfigurationServicesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configurationServices/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var configurationServiceName = _match.Groups["configurationServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configurationServices/" + + configurationServiceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesCreateOrUpdate_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.AppPlatform.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 ConfigurationServicesCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Configuration Service. + /// Parameters for 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 ConfigurationServicesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string configurationServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(configurationServiceName),configurationServiceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Disable the default Application Configuration Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Configuration Service. + /// 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.AppPlatform.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 ConfigurationServicesDelete(string subscriptionId, string resourceGroupName, string serviceName, string configurationServiceName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configurationServices/" + + global::System.Uri.EscapeDataString(configurationServiceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Disable the default Application Configuration Service. + /// + /// 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.AppPlatform.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 ConfigurationServicesDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configurationServices/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var configurationServiceName = _match.Groups["configurationServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configurationServices/" + + configurationServiceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesDelete_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.AppPlatform.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 ConfigurationServicesDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Configuration Service. + /// 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 ConfigurationServicesDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string configurationServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(configurationServiceName),configurationServiceName); + } + } + + /// Get the Application Configuration Service and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Configuration Service. + /// 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.AppPlatform.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 ConfigurationServicesGet(string subscriptionId, string resourceGroupName, string serviceName, string configurationServiceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configurationServices/" + + global::System.Uri.EscapeDataString(configurationServiceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Application Configuration Service and its properties. + /// + /// 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.AppPlatform.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 ConfigurationServicesGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configurationServices/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var configurationServiceName = _match.Groups["configurationServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configurationServices/" + + configurationServiceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesGet_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.AppPlatform.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 ConfigurationServicesGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Configuration Service. + /// 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 ConfigurationServicesGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string configurationServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(configurationServiceName),configurationServiceName); + } + } + + /// Handles requests to list all resources in a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ConfigurationServicesList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configurationServices" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in a Service. + /// + /// 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.AppPlatform.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 ConfigurationServicesListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configurationServices$", 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.AppPlatform/Spring/{serviceName}/configurationServices'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configurationServices" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesList_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.AppPlatform.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 ConfigurationServicesList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ConfigurationServicesList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Check if the Application Configuration Service settings are valid. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Configuration Service. + /// Application Configuration Service settings to be validated + /// 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.AppPlatform.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 ConfigurationServicesValidate(string subscriptionId, string resourceGroupName, string serviceName, string configurationServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/configurationServices/" + + global::System.Uri.EscapeDataString(configurationServiceName) + + "/validate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesValidate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Check if the Application Configuration Service settings are valid. + /// + /// Application Configuration Service settings to be validated + /// 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.AppPlatform.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 ConfigurationServicesValidateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/configurationServices/(?[^/]+)/validate$", 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.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}/validate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var configurationServiceName = _match.Groups["configurationServiceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/configurationServices/" + + configurationServiceName + + "/validate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ConfigurationServicesValidate_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.AppPlatform.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 ConfigurationServicesValidate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettingsValidateResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Application Configuration Service. + /// Application Configuration Service settings to be validated + /// 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 ConfigurationServicesValidate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string configurationServiceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(configurationServiceName),configurationServiceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update custom domain of one lifecycle application. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the custom domain resource. + /// Parameters for the create or 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.AppPlatform.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 CustomDomainsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update custom domain of one lifecycle application. + /// + /// Parameters for the create or 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.AppPlatform.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 CustomDomainsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsCreateOrUpdate_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.AppPlatform.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 CustomDomainsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the custom domain resource. + /// Parameters for the create or 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 CustomDomainsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the custom domain of one lifecycle application. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the custom domain resource. + /// 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.AppPlatform.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 CustomDomainsDelete(string subscriptionId, string resourceGroupName, string serviceName, string appName, string domainName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the custom domain of one lifecycle application. + /// + /// 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.AppPlatform.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 CustomDomainsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsDelete_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.AppPlatform.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 CustomDomainsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the custom domain 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 CustomDomainsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// Get the custom domain of one lifecycle application. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the custom domain 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.AppPlatform.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 CustomDomainsGet(string subscriptionId, string resourceGroupName, string serviceName, string appName, string domainName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the custom domain of one lifecycle application. + /// + /// 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.AppPlatform.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 CustomDomainsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsGet_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.AppPlatform.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 CustomDomainsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the custom domain 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 CustomDomainsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// List the custom domains of one lifecycle application. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App 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.AppPlatform.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 CustomDomainsList(string subscriptionId, string resourceGroupName, string serviceName, string appName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List the custom domains of one lifecycle application. + /// + /// 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.AppPlatform.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 CustomDomainsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/domains$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/domains'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsList_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.AppPlatform.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 CustomDomainsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App 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 CustomDomainsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + } + } + + /// Update custom domain of one lifecycle application. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the custom domain resource. + /// Parameters for the create or 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.AppPlatform.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 CustomDomainsUpdate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update custom domain of one lifecycle application. + /// + /// Parameters for the create or 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.AppPlatform.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 CustomDomainsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomDomainsUpdate_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.AppPlatform.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 CustomDomainsUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the custom domain resource. + /// Parameters for the create or 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 CustomDomainsUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create or update the customized accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the customized accelerator. + /// The customized accelerator for the create or 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.AppPlatform.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 CustomizedAcceleratorsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string customizedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/customizedAccelerators/" + + global::System.Uri.EscapeDataString(customizedAcceleratorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update the customized accelerator. + /// + /// The customized accelerator for the create or 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.AppPlatform.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 CustomizedAcceleratorsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/customizedAccelerators/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + var customizedAcceleratorName = _match.Groups["customizedAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/customizedAccelerators/" + + customizedAcceleratorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsCreateOrUpdate_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.AppPlatform.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 CustomizedAcceleratorsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the customized accelerator. + /// The customized accelerator for the create or 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 CustomizedAcceleratorsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string customizedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + await eventListener.AssertNotNull(nameof(customizedAcceleratorName),customizedAcceleratorName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the customized accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the customized accelerator. + /// 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.AppPlatform.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 CustomizedAcceleratorsDelete(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string customizedAcceleratorName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/customizedAccelerators/" + + global::System.Uri.EscapeDataString(customizedAcceleratorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the customized accelerator. + /// + /// 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.AppPlatform.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 CustomizedAcceleratorsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/customizedAccelerators/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + var customizedAcceleratorName = _match.Groups["customizedAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/customizedAccelerators/" + + customizedAcceleratorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsDelete_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.AppPlatform.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 CustomizedAcceleratorsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the customized accelerator. + /// 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 CustomizedAcceleratorsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string customizedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + await eventListener.AssertNotNull(nameof(customizedAcceleratorName),customizedAcceleratorName); + } + } + + /// Get the customized accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the customized accelerator. + /// 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.AppPlatform.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 CustomizedAcceleratorsGet(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string customizedAcceleratorName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/customizedAccelerators/" + + global::System.Uri.EscapeDataString(customizedAcceleratorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the customized accelerator. + /// + /// 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.AppPlatform.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 CustomizedAcceleratorsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/customizedAccelerators/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + var customizedAcceleratorName = _match.Groups["customizedAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/customizedAccelerators/" + + customizedAcceleratorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsGet_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.AppPlatform.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 CustomizedAcceleratorsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the customized accelerator. + /// 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 CustomizedAcceleratorsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string customizedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + await eventListener.AssertNotNull(nameof(customizedAcceleratorName),customizedAcceleratorName); + } + } + + /// Handle requests to list all customized accelerators. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// 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.AppPlatform.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 CustomizedAcceleratorsList(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/customizedAccelerators" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handle requests to list all customized accelerators. + /// + /// 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.AppPlatform.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 CustomizedAcceleratorsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/customizedAccelerators$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/customizedAccelerators" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsList_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.AppPlatform.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 CustomizedAcceleratorsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// 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 CustomizedAcceleratorsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + } + } + + /// Check the customized accelerator are valid. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the customized accelerator. + /// Customized accelerator properties to be validated + /// 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.AppPlatform.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 CustomizedAcceleratorsValidate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string customizedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onAccepted, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/customizedAccelerators/" + + global::System.Uri.EscapeDataString(customizedAcceleratorName) + + "/validate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsValidate_Call(request,onOk,onAccepted,onDefault,eventListener,sender); + } + } + + /// Check the customized accelerator are valid. + /// + /// Customized accelerator properties to be validated + /// 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.AppPlatform.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 CustomizedAcceleratorsValidateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onAccepted, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/customizedAccelerators/(?[^/]+)/validate$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}/validate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + var customizedAcceleratorName = _match.Groups["customizedAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/customizedAccelerators/" + + customizedAcceleratorName + + "/validate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.CustomizedAcceleratorsValidate_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.AppPlatform.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 CustomizedAcceleratorsValidate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onAccepted, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorValidateResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Accepted: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onAccepted(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the customized accelerator. + /// Customized accelerator properties to be validated + /// 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 CustomizedAcceleratorsValidate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string customizedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + await eventListener.AssertNotNull(nameof(customizedAcceleratorName),customizedAcceleratorName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create a new Deployment or update an exiting Deployment. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for the create or 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.AppPlatform.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 DeploymentsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create a new Deployment or update an exiting Deployment. + /// + /// Parameters for the create or 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.AppPlatform.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 DeploymentsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsCreateOrUpdate_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.AppPlatform.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 DeploymentsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for the create or 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 DeploymentsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Operation to delete a Deployment. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// 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.AppPlatform.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 DeploymentsDelete(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Operation to delete a Deployment. + /// + /// 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.AppPlatform.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 DeploymentsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsDelete_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.AppPlatform.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 DeploymentsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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 DeploymentsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + } + } + + /// Disable remote debugging. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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.AppPlatform.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 DeploymentsDisableRemoteDebugging(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/disableRemoteDebugging" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsDisableRemoteDebugging_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Disable remote debugging. + /// + /// 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.AppPlatform.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 DeploymentsDisableRemoteDebuggingViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/disableRemoteDebugging$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/disableRemoteDebugging'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/disableRemoteDebugging" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsDisableRemoteDebugging_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.AppPlatform.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 DeploymentsDisableRemoteDebugging_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebugging.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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 DeploymentsDisableRemoteDebugging_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + } + } + + /// Enable remote debugging. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for enable remote debugging + /// 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.AppPlatform.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 DeploymentsEnableRemoteDebugging(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/enableRemoteDebugging" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsEnableRemoteDebugging_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Enable remote debugging. + /// + /// Parameters for enable remote debugging + /// 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.AppPlatform.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 DeploymentsEnableRemoteDebuggingViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/enableRemoteDebugging$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/enableRemoteDebugging'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/enableRemoteDebugging" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsEnableRemoteDebugging_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.AppPlatform.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 DeploymentsEnableRemoteDebugging_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebugging.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for enable remote debugging + /// 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 DeploymentsEnableRemoteDebugging_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Generate Heap Dump + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for the diagnostic 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.AppPlatform.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 DeploymentsGenerateHeapDump(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/generateHeapDump" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGenerateHeapDump_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Generate Heap Dump + /// + /// Parameters for the diagnostic 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.AppPlatform.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 DeploymentsGenerateHeapDumpViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/generateHeapDump$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateHeapDump'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/generateHeapDump" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGenerateHeapDump_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.AppPlatform.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 DeploymentsGenerateHeapDump_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for the diagnostic 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 DeploymentsGenerateHeapDump_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Generate Thread Dump + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for the diagnostic 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.AppPlatform.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 DeploymentsGenerateThreadDump(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/generateThreadDump" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGenerateThreadDump_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Generate Thread Dump + /// + /// Parameters for the diagnostic 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.AppPlatform.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 DeploymentsGenerateThreadDumpViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/generateThreadDump$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateThreadDump'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/generateThreadDump" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGenerateThreadDump_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.AppPlatform.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 DeploymentsGenerateThreadDump_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for the diagnostic 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 DeploymentsGenerateThreadDump_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get a Deployment and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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.AppPlatform.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 DeploymentsGet(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get deployment log file URL + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// 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.AppPlatform.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 DeploymentsGetLogFileUrl(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/getLogFileUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGetLogFileUrl_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Get deployment log file URL + /// + /// 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.AppPlatform.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 DeploymentsGetLogFileUrlViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/getLogFileUrl$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/getLogFileUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/getLogFileUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGetLogFileUrl_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.AppPlatform.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 DeploymentsGetLogFileUrl_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogFileUrlResponse.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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 DeploymentsGetLogFileUrl_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + } + } + + /// Get remote debugging config. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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.AppPlatform.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 DeploymentsGetRemoteDebuggingConfig(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/getRemoteDebuggingConfig" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGetRemoteDebuggingConfig_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get remote debugging config. + /// + /// 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.AppPlatform.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 DeploymentsGetRemoteDebuggingConfigViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/getRemoteDebuggingConfig$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/getRemoteDebuggingConfig'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/getRemoteDebuggingConfig" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGetRemoteDebuggingConfig_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.AppPlatform.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 DeploymentsGetRemoteDebuggingConfig_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebugging.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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 DeploymentsGetRemoteDebuggingConfig_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + } + } + + /// Get a Deployment and its properties. + /// + /// 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.AppPlatform.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 DeploymentsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsGet_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.AppPlatform.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 DeploymentsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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 DeploymentsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + } + } + + /// Handles requests to list all resources in an App. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Version of the deployments to be listed + /// 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.AppPlatform.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 DeploymentsList(string subscriptionId, string resourceGroupName, string serviceName, string appName, string[] version, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null != version && version.Length > 0 ? "version=" + global::System.Uri.EscapeDataString(global::System.Linq.Enumerable.Aggregate(version, (current, each) => current + "," + ( global::System.Uri.EscapeDataString(null == each ? global::System.String.Empty : each.ToString()) ))) : global::System.String.Empty) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List deployments for a certain service + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Version of the deployments to be listed + /// 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.AppPlatform.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 DeploymentsListForCluster(string subscriptionId, string resourceGroupName, string serviceName, string[] version, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/deployments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null != version && version.Length > 0 ? "version=" + global::System.Uri.EscapeDataString(global::System.Linq.Enumerable.Aggregate(version, (current, each) => current + "," + ( global::System.Uri.EscapeDataString(null == each ? global::System.String.Empty : each.ToString()) ))) : global::System.String.Empty) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsListForCluster_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List deployments for a certain service + /// + /// Version of the deployments to be listed + /// 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.AppPlatform.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 DeploymentsListForClusterViaIdentity(global::System.String viaIdentity, string[] version, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/deployments$", 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.AppPlatform/Spring/{serviceName}/deployments'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/deployments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null != version && version.Length > 0 ? "version=" + global::System.Uri.EscapeDataString(global::System.Linq.Enumerable.Aggregate(version, (current, each) => current + "," + ( global::System.Uri.EscapeDataString(null == each ? global::System.String.Empty : each.ToString()) ))) : global::System.String.Empty) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsListForCluster_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.AppPlatform.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 DeploymentsListForCluster_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Version of the deployments to be listed + /// 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 DeploymentsListForCluster_Validate(string subscriptionId, string resourceGroupName, string serviceName, string[] version, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Handles requests to list all resources in an App. + /// + /// Version of the deployments to be listed + /// 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.AppPlatform.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 DeploymentsListViaIdentity(global::System.String viaIdentity, string[] version, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (null != version && version.Length > 0 ? "version=" + global::System.Uri.EscapeDataString(global::System.Linq.Enumerable.Aggregate(version, (current, each) => current + "," + ( global::System.Uri.EscapeDataString(null == each ? global::System.String.Empty : each.ToString()) ))) : global::System.String.Empty) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsList_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.AppPlatform.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 DeploymentsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// Version of the deployments to be listed + /// 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 DeploymentsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string[] version, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + } + } + + /// Restart the deployment. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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.AppPlatform.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 DeploymentsRestart(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/restart" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsRestart_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Restart the deployment. + /// + /// 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.AppPlatform.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 DeploymentsRestartViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/restart$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/restart'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/restart" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsRestart_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.AppPlatform.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 DeploymentsRestart_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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 DeploymentsRestart_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + } + } + + /// Start the deployment. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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.AppPlatform.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 DeploymentsStart(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/start" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsStart_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Start JFR + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for the diagnostic 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.AppPlatform.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 DeploymentsStartJfr(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/startJFR" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsStartJfr_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Start JFR + /// + /// Parameters for the diagnostic 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.AppPlatform.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 DeploymentsStartJfrViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/startJFR$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/startJFR'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/startJFR" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsStartJfr_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.AppPlatform.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 DeploymentsStartJfr_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for the diagnostic 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 DeploymentsStartJfr_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Start the deployment. + /// + /// 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.AppPlatform.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 DeploymentsStartViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/start'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/start" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsStart_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.AppPlatform.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 DeploymentsStart_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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 DeploymentsStart_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + } + } + + /// Stop the deployment. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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.AppPlatform.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 DeploymentsStop(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "/stop" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsStop_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Stop the deployment. + /// + /// 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.AppPlatform.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 DeploymentsStopViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)/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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/stop'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "/stop" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsStop_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.AppPlatform.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 DeploymentsStop_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment 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 DeploymentsStop_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + } + } + + /// Operation to update an exiting Deployment. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for 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.AppPlatform.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 DeploymentsUpdate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/apps/" + + global::System.Uri.EscapeDataString(appName) + + "/deployments/" + + global::System.Uri.EscapeDataString(deploymentName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Operation to update an exiting Deployment. + /// + /// Parameters for 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.AppPlatform.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 DeploymentsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/apps/(?[^/]+)/deployments/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var appName = _match.Groups["appName"].Value; + var deploymentName = _match.Groups["deploymentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/apps/" + + appName + + "/deployments/" + + deploymentName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DeploymentsUpdate_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.AppPlatform.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 DeploymentsUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the App resource. + /// The name of the Deployment resource. + /// Parameters for 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 DeploymentsUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string appName, string deploymentName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(appName),appName); + await eventListener.AssertNotNull(nameof(deploymentName),deploymentName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Create the default Dev Tool Portal or update the existing Dev Tool Portal. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Dev Tool Portal. + /// Parameters for the create or 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.AppPlatform.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 DevToolPortalsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string devToolPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/DevToolPortals/" + + global::System.Uri.EscapeDataString(devToolPortalName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DevToolPortalsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create the default Dev Tool Portal or update the existing Dev Tool Portal. + /// + /// Parameters for the create or 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.AppPlatform.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 DevToolPortalsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/DevToolPortals/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/DevToolPortals/{devToolPortalName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var devToolPortalName = _match.Groups["devToolPortalName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/DevToolPortals/" + + devToolPortalName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DevToolPortalsCreateOrUpdate_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.AppPlatform.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 DevToolPortalsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Dev Tool Portal. + /// Parameters for the create or 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 DevToolPortalsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string devToolPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(devToolPortalName),devToolPortalName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Disable the default Dev Tool Portal. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Dev Tool Portal. + /// 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.AppPlatform.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 DevToolPortalsDelete(string subscriptionId, string resourceGroupName, string serviceName, string devToolPortalName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/DevToolPortals/" + + global::System.Uri.EscapeDataString(devToolPortalName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DevToolPortalsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Disable the default Dev Tool Portal. + /// + /// 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.AppPlatform.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 DevToolPortalsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/DevToolPortals/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/DevToolPortals/{devToolPortalName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var devToolPortalName = _match.Groups["devToolPortalName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/DevToolPortals/" + + devToolPortalName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DevToolPortalsDelete_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.AppPlatform.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 DevToolPortalsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Dev Tool Portal. + /// 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 DevToolPortalsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string devToolPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(devToolPortalName),devToolPortalName); + } + } + + /// Get the Application Live and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Dev Tool Portal. + /// 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.AppPlatform.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 DevToolPortalsGet(string subscriptionId, string resourceGroupName, string serviceName, string devToolPortalName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/DevToolPortals/" + + global::System.Uri.EscapeDataString(devToolPortalName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DevToolPortalsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Application Live and its properties. + /// + /// 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.AppPlatform.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 DevToolPortalsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/DevToolPortals/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/DevToolPortals/{devToolPortalName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var devToolPortalName = _match.Groups["devToolPortalName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/DevToolPortals/" + + devToolPortalName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DevToolPortalsGet_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.AppPlatform.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 DevToolPortalsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Dev Tool Portal. + /// 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 DevToolPortalsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string devToolPortalName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(devToolPortalName),devToolPortalName); + } + } + + /// Handles requests to list all resources in a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 DevToolPortalsList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/DevToolPortals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DevToolPortalsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in a Service. + /// + /// 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.AppPlatform.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 DevToolPortalsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/DevToolPortals$", 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.AppPlatform/Spring/{serviceName}/DevToolPortals'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/DevToolPortals" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DevToolPortalsList_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.AppPlatform.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 DevToolPortalsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 DevToolPortalsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Create or update the Spring Cloud Gateway custom domain. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway custom domain. + /// The gateway custom domain resource for the create or 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.AppPlatform.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 GatewayCustomDomainsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayCustomDomainsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update the Spring Cloud Gateway custom domain. + /// + /// The gateway custom domain resource for the create or 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.AppPlatform.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 GatewayCustomDomainsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayCustomDomainsCreateOrUpdate_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.AppPlatform.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 GatewayCustomDomainsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway custom domain. + /// The gateway custom domain resource for the create or 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 GatewayCustomDomainsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the Spring Cloud Gateway custom domain. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway custom domain. + /// 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.AppPlatform.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 GatewayCustomDomainsDelete(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string domainName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayCustomDomainsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the Spring Cloud Gateway custom domain. + /// + /// 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.AppPlatform.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 GatewayCustomDomainsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayCustomDomainsDelete_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.AppPlatform.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 GatewayCustomDomainsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway custom domain. + /// 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 GatewayCustomDomainsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// Get the Spring Cloud Gateway custom domain. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway custom domain. + /// 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.AppPlatform.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 GatewayCustomDomainsGet(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string domainName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayCustomDomainsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Spring Cloud Gateway custom domain. + /// + /// 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.AppPlatform.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 GatewayCustomDomainsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/domains/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayCustomDomainsGet_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.AppPlatform.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 GatewayCustomDomainsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway custom domain. + /// 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 GatewayCustomDomainsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// Handle requests to list all Spring Cloud Gateway custom domains. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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.AppPlatform.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 GatewayCustomDomainsList(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayCustomDomainsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handle requests to list all Spring Cloud Gateway custom domains. + /// + /// 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.AppPlatform.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 GatewayCustomDomainsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/domains$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayCustomDomainsList_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.AppPlatform.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 GatewayCustomDomainsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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 GatewayCustomDomainsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + } + } + + /// + /// Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. + /// + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway route config. + /// The Spring Cloud Gateway route config for the create or 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.AppPlatform.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 GatewayRouteConfigsCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string routeConfigName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/routeConfigs/" + + global::System.Uri.EscapeDataString(routeConfigName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayRouteConfigsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. + /// + /// + /// The Spring Cloud Gateway route config for the create or 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.AppPlatform.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 GatewayRouteConfigsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/routeConfigs/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs/{routeConfigName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + var routeConfigName = _match.Groups["routeConfigName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/routeConfigs/" + + routeConfigName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayRouteConfigsCreateOrUpdate_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.AppPlatform.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 GatewayRouteConfigsCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway route config. + /// The Spring Cloud Gateway route config for the create or 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 GatewayRouteConfigsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string routeConfigName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + await eventListener.AssertNotNull(nameof(routeConfigName),routeConfigName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the Spring Cloud Gateway route config. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway route config. + /// 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.AppPlatform.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 GatewayRouteConfigsDelete(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string routeConfigName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/routeConfigs/" + + global::System.Uri.EscapeDataString(routeConfigName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayRouteConfigsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the Spring Cloud Gateway route config. + /// + /// 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.AppPlatform.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 GatewayRouteConfigsDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/routeConfigs/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs/{routeConfigName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + var routeConfigName = _match.Groups["routeConfigName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/routeConfigs/" + + routeConfigName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayRouteConfigsDelete_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.AppPlatform.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 GatewayRouteConfigsDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway route config. + /// 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 GatewayRouteConfigsDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string routeConfigName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + await eventListener.AssertNotNull(nameof(routeConfigName),routeConfigName); + } + } + + /// Get the Spring Cloud Gateway route configs. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway route config. + /// 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.AppPlatform.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 GatewayRouteConfigsGet(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string routeConfigName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/routeConfigs/" + + global::System.Uri.EscapeDataString(routeConfigName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayRouteConfigsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Spring Cloud Gateway route configs. + /// + /// 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.AppPlatform.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 GatewayRouteConfigsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/routeConfigs/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs/{routeConfigName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + var routeConfigName = _match.Groups["routeConfigName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/routeConfigs/" + + routeConfigName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayRouteConfigsGet_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.AppPlatform.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 GatewayRouteConfigsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The name of the Spring Cloud Gateway route config. + /// 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 GatewayRouteConfigsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, string routeConfigName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + await eventListener.AssertNotNull(nameof(routeConfigName),routeConfigName); + } + } + + /// Handle requests to list all Spring Cloud Gateway route configs. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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.AppPlatform.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 GatewayRouteConfigsList(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/routeConfigs" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayRouteConfigsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handle requests to list all Spring Cloud Gateway route configs. + /// + /// 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.AppPlatform.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 GatewayRouteConfigsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/routeConfigs$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/routeConfigs" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewayRouteConfigsList_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.AppPlatform.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 GatewayRouteConfigsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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 GatewayRouteConfigsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + } + } + + /// + /// Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. + /// + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The gateway for the create or 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.AppPlatform.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 GatewaysCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. + /// + /// + /// The gateway for the create or 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.AppPlatform.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 GatewaysCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysCreateOrUpdate_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.AppPlatform.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 GatewaysCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// The gateway for the create or 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 GatewaysCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Disable the default Spring Cloud Gateway. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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.AppPlatform.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 GatewaysDelete(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Disable the default Spring Cloud Gateway. + /// + /// 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.AppPlatform.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 GatewaysDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysDelete_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.AppPlatform.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 GatewaysDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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 GatewaysDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + } + } + + /// Get the Spring Cloud Gateway and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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.AppPlatform.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 GatewaysGet(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Spring Cloud Gateway and its properties. + /// + /// 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.AppPlatform.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 GatewaysGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysGet_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.AppPlatform.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 GatewaysGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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 GatewaysGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + } + } + + /// Handles requests to list all resources in a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 GatewaysList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List sensitive environment variables of Spring Cloud Gateway. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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.AppPlatform.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 GatewaysListEnvSecrets(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/listEnvSecrets" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysListEnvSecrets_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List sensitive environment variables of Spring Cloud Gateway. + /// + /// 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.AppPlatform.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 GatewaysListEnvSecretsViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/listEnvSecrets$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/listEnvSecrets'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/listEnvSecrets" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysListEnvSecrets_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.AppPlatform.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 GatewaysListEnvSecrets_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayEnvSecrets.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// 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 GatewaysListEnvSecrets_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + } + } + + /// Handles requests to list all resources in a Service. + /// + /// 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.AppPlatform.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 GatewaysListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways$", 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.AppPlatform/Spring/{serviceName}/gateways'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysList_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.AppPlatform.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 GatewaysList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 GatewaysList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Check the domains are valid as well as not in use. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// Custom domain payload to be validated + /// 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.AppPlatform.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 GatewaysValidateDomain(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/gateways/" + + global::System.Uri.EscapeDataString(gatewayName) + + "/validateDomain" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysValidateDomain_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Check the domains are valid as well as not in use. + /// + /// Custom domain payload to be validated + /// 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.AppPlatform.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 GatewaysValidateDomainViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/gateways/(?[^/]+)/validateDomain$", 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.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/validateDomain'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var gatewayName = _match.Groups["gatewayName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/gateways/" + + gatewayName + + "/validateDomain" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.GatewaysValidateDomain_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.AppPlatform.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 GatewaysValidateDomain_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidateResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Spring Cloud Gateway. + /// Custom domain payload to be validated + /// 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 GatewaysValidateDomain_Validate(string subscriptionId, string resourceGroupName, string serviceName, string gatewayName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(gatewayName),gatewayName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get the Monitoring Setting and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 MonitoringSettingsGet(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/monitoringSettings/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MonitoringSettingsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Monitoring Setting and its properties. + /// + /// 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.AppPlatform.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 MonitoringSettingsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/monitoringSettings/default$", 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.AppPlatform/Spring/{serviceName}/monitoringSettings/default'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/monitoringSettings/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MonitoringSettingsGet_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.AppPlatform.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 MonitoringSettingsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 MonitoringSettingsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Update the Monitoring Setting. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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.AppPlatform.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 MonitoringSettingsUpdatePatch(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/monitoringSettings/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MonitoringSettingsUpdatePatch_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update the Monitoring Setting. + /// + /// Parameters for 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.AppPlatform.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 MonitoringSettingsUpdatePatchViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/monitoringSettings/default$", 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.AppPlatform/Spring/{serviceName}/monitoringSettings/default'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/monitoringSettings/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MonitoringSettingsUpdatePatch_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.AppPlatform.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 MonitoringSettingsUpdatePatch_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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 MonitoringSettingsUpdatePatch_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Update the Monitoring Setting. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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.AppPlatform.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 MonitoringSettingsUpdatePut(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/monitoringSettings/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MonitoringSettingsUpdatePut_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Update the Monitoring Setting. + /// + /// Parameters for 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.AppPlatform.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 MonitoringSettingsUpdatePutViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/monitoringSettings/default$", 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.AppPlatform/Spring/{serviceName}/monitoringSettings/default'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/monitoringSettings/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.MonitoringSettingsUpdatePut_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.AppPlatform.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 MonitoringSettingsUpdatePut_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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 MonitoringSettingsUpdatePut_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Lists all of the available REST API operations of the Microsoft.AppPlatform 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.AppPlatform.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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.AppPlatform/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Lists all of the available REST API operations of the Microsoft.AppPlatform 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.AppPlatform.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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/providers/Microsoft.AppPlatform/operations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.AppPlatform/operations'"); + } + + // replace URI parameters with values from identity + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.AppPlatform/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AvailableOperations.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + + } + } + + /// Disable predefined accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the predefined accelerator. + /// 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.AppPlatform.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 PredefinedAcceleratorsDisable(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string predefinedAcceleratorName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/predefinedAccelerators/" + + global::System.Uri.EscapeDataString(predefinedAcceleratorName) + + "/disable" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PredefinedAcceleratorsDisable_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Disable predefined accelerator. + /// + /// 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.AppPlatform.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 PredefinedAcceleratorsDisableViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/predefinedAccelerators/(?[^/]+)/disable$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}/disable'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + var predefinedAcceleratorName = _match.Groups["predefinedAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/predefinedAccelerators/" + + predefinedAcceleratorName + + "/disable" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PredefinedAcceleratorsDisable_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.AppPlatform.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 PredefinedAcceleratorsDisable_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the predefined accelerator. + /// 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 PredefinedAcceleratorsDisable_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string predefinedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + await eventListener.AssertNotNull(nameof(predefinedAcceleratorName),predefinedAcceleratorName); + } + } + + /// Enable predefined accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the predefined accelerator. + /// 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.AppPlatform.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 PredefinedAcceleratorsEnable(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string predefinedAcceleratorName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/predefinedAccelerators/" + + global::System.Uri.EscapeDataString(predefinedAcceleratorName) + + "/enable" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PredefinedAcceleratorsEnable_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Enable predefined accelerator. + /// + /// 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.AppPlatform.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 PredefinedAcceleratorsEnableViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/predefinedAccelerators/(?[^/]+)/enable$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}/enable'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + var predefinedAcceleratorName = _match.Groups["predefinedAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/predefinedAccelerators/" + + predefinedAcceleratorName + + "/enable" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PredefinedAcceleratorsEnable_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.AppPlatform.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 PredefinedAcceleratorsEnable_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the predefined accelerator. + /// 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 PredefinedAcceleratorsEnable_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string predefinedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + await eventListener.AssertNotNull(nameof(predefinedAcceleratorName),predefinedAcceleratorName); + } + } + + /// Get the predefined accelerator. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the predefined accelerator. + /// 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.AppPlatform.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 PredefinedAcceleratorsGet(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string predefinedAcceleratorName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/predefinedAccelerators/" + + global::System.Uri.EscapeDataString(predefinedAcceleratorName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PredefinedAcceleratorsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the predefined accelerator. + /// + /// 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.AppPlatform.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 PredefinedAcceleratorsGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/predefinedAccelerators/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + var predefinedAcceleratorName = _match.Groups["predefinedAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/predefinedAccelerators/" + + predefinedAcceleratorName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PredefinedAcceleratorsGet_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.AppPlatform.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 PredefinedAcceleratorsGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// The name of the predefined accelerator. + /// 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 PredefinedAcceleratorsGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, string predefinedAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + await eventListener.AssertNotNull(nameof(predefinedAcceleratorName),predefinedAcceleratorName); + } + } + + /// Handle requests to list all predefined accelerators. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// 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.AppPlatform.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 PredefinedAcceleratorsList(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/applicationAccelerators/" + + global::System.Uri.EscapeDataString(applicationAcceleratorName) + + "/predefinedAccelerators" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PredefinedAcceleratorsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handle requests to list all predefined accelerators. + /// + /// 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.AppPlatform.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 PredefinedAcceleratorsListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/applicationAccelerators/(?[^/]+)/predefinedAccelerators$", 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.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var applicationAcceleratorName = _match.Groups["applicationAcceleratorName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/applicationAccelerators/" + + applicationAcceleratorName + + "/predefinedAccelerators" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PredefinedAcceleratorsList_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.AppPlatform.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 PredefinedAcceleratorsList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the application accelerator. + /// 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 PredefinedAcceleratorsList_Validate(string subscriptionId, string resourceGroupName, string serviceName, string applicationAcceleratorName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(applicationAcceleratorName),applicationAcceleratorName); + } + } + + /// + /// Lists all of the available runtime versions supported by Microsoft.AppPlatform 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.AppPlatform.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 RuntimeVersionsListRuntimeVersions(global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.AppPlatform/runtimeVersions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.RuntimeVersionsListRuntimeVersions_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Lists all of the available runtime versions supported by Microsoft.AppPlatform 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.AppPlatform.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 RuntimeVersionsListRuntimeVersionsViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/providers/Microsoft.AppPlatform/runtimeVersions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.AppPlatform/runtimeVersions'"); + } + + // replace URI parameters with values from identity + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.AppPlatform/runtimeVersions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.RuntimeVersionsListRuntimeVersions_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.AppPlatform.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 RuntimeVersionsListRuntimeVersions_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AvailableRuntimeVersions.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 RuntimeVersionsListRuntimeVersions_Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + + } + } + + /// Create the default Service Registry or update the existing Service Registry. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Service Registry. + /// 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.AppPlatform.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 ServiceRegistriesCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string serviceRegistryName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/serviceRegistries/" + + global::System.Uri.EscapeDataString(serviceRegistryName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServiceRegistriesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create the default Service Registry or update the existing Service Registry. + /// + /// 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.AppPlatform.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 ServiceRegistriesCreateOrUpdateViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/serviceRegistries/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/serviceRegistries/{serviceRegistryName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var serviceRegistryName = _match.Groups["serviceRegistryName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/serviceRegistries/" + + serviceRegistryName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServiceRegistriesCreateOrUpdate_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.AppPlatform.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 ServiceRegistriesCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Service Registry. + /// 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 ServiceRegistriesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string serviceRegistryName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(serviceRegistryName),serviceRegistryName); + } + } + + /// Disable the default Service Registry. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Service Registry. + /// 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.AppPlatform.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 ServiceRegistriesDelete(string subscriptionId, string resourceGroupName, string serviceName, string serviceRegistryName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/serviceRegistries/" + + global::System.Uri.EscapeDataString(serviceRegistryName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServiceRegistriesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Disable the default Service Registry. + /// + /// 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.AppPlatform.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 ServiceRegistriesDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/serviceRegistries/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/serviceRegistries/{serviceRegistryName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var serviceRegistryName = _match.Groups["serviceRegistryName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/serviceRegistries/" + + serviceRegistryName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServiceRegistriesDelete_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.AppPlatform.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 ServiceRegistriesDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Service Registry. + /// 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 ServiceRegistriesDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string serviceRegistryName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(serviceRegistryName),serviceRegistryName); + } + } + + /// Get the Service Registry and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Service Registry. + /// 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.AppPlatform.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 ServiceRegistriesGet(string subscriptionId, string resourceGroupName, string serviceName, string serviceRegistryName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/serviceRegistries/" + + global::System.Uri.EscapeDataString(serviceRegistryName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServiceRegistriesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the Service Registry and its properties. + /// + /// 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.AppPlatform.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 ServiceRegistriesGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/serviceRegistries/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/serviceRegistries/{serviceRegistryName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var serviceRegistryName = _match.Groups["serviceRegistryName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/serviceRegistries/" + + serviceRegistryName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServiceRegistriesGet_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.AppPlatform.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 ServiceRegistriesGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of Service Registry. + /// 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 ServiceRegistriesGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string serviceRegistryName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(serviceRegistryName),serviceRegistryName); + } + } + + /// Handles requests to list all resources in a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ServiceRegistriesList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/serviceRegistries" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServiceRegistriesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in a Service. + /// + /// 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.AppPlatform.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 ServiceRegistriesListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/serviceRegistries$", 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.AppPlatform/Spring/{serviceName}/serviceRegistries'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/serviceRegistries" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServiceRegistriesList_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.AppPlatform.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 ServiceRegistriesList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ServiceRegistriesList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Checks that the resource name is valid and is not already in use. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// the region + /// Parameters supplied to 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.AppPlatform.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 ServicesCheckNameAvailability(string subscriptionId, string location, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.AppPlatform/locations/" + + global::System.Uri.EscapeDataString(location) + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesCheckNameAvailability_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Checks that the resource name is valid and is not already in use. + /// + /// Parameters supplied to 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.AppPlatform.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 ServicesCheckNameAvailabilityViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/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.AppPlatform/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.AppPlatform/locations/" + + location + + "/checkNameAvailability" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesCheckNameAvailability_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.AppPlatform.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 ServicesCheckNameAvailability_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NameAvailability.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// the region + /// Parameters supplied to 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 ServicesCheckNameAvailability_Validate(string subscriptionId, string location, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 a new Service or update an exiting Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for the create or 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.AppPlatform.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 ServicesCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create a new Service or update an exiting Service. + /// + /// Parameters for the create or 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.AppPlatform.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 ServicesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesCreateOrUpdate_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.AppPlatform.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 ServicesCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for the create or 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 ServicesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Operation to delete a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// 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.AppPlatform.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 ServicesDelete(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Operation to delete a Service. + /// + /// 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.AppPlatform.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 ServicesDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesDelete_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.AppPlatform.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 ServicesDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ServicesDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Disable test endpoint functionality for a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ServicesDisableTestEndpoint(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/disableTestEndpoint" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesDisableTestEndpoint_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Disable test endpoint functionality for a Service. + /// + /// 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.AppPlatform.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 ServicesDisableTestEndpointViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/disableTestEndpoint$", 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.AppPlatform/Spring/{serviceName}/disableTestEndpoint'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/disableTestEndpoint" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesDisableTestEndpoint_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.AppPlatform.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 ServicesDisableTestEndpoint_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ServicesDisableTestEndpoint_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Enable test endpoint functionality for a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ServicesEnableTestEndpoint(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/enableTestEndpoint" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesEnableTestEndpoint_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Enable test endpoint functionality for a Service. + /// + /// 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.AppPlatform.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 ServicesEnableTestEndpointViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/enableTestEndpoint$", 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.AppPlatform/Spring/{serviceName}/enableTestEndpoint'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/enableTestEndpoint" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesEnableTestEndpoint_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.AppPlatform.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 ServicesEnableTestEndpoint_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TestKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ServicesEnableTestEndpoint_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Get a Service and its properties. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ServicesGet(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a Service and its properties. + /// + /// 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.AppPlatform.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 ServicesGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesGet_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.AppPlatform.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 ServicesGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ServicesGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Handles requests to list all resources in a resource group. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// 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.AppPlatform.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 ServicesList(string subscriptionId, string resourceGroupName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in a subscription. + /// Gets subscription ID which uniquely identify the 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.AppPlatform.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 ServicesListBySubscription(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.AppPlatform/Spring" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Handles requests to list all resources in 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.AppPlatform.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 ServicesListBySubscriptionViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/Spring'"); + } + + // 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.AppPlatform/Spring" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesListBySubscription_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.AppPlatform.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 ServicesListBySubscription_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResourceList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the 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 ServicesListBySubscription_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// List test keys for a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 ServicesListTestKeys(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/listTestKeys" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesListTestKeys_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List test keys for a Service. + /// + /// 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.AppPlatform.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 ServicesListTestKeysViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/listTestKeys$", 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.AppPlatform/Spring/{serviceName}/listTestKeys'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/listTestKeys" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesListTestKeys_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.AppPlatform.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 ServicesListTestKeys_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TestKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ServicesListTestKeys_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Handles requests to list all resources in 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.AppPlatform.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 ServicesListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring$", 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.AppPlatform/Spring'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesList_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.AppPlatform.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 ServicesList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResourceList.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// 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 ServicesList_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + } + } + + /// Regenerate a test key for a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters 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.AppPlatform.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 ServicesRegenerateTestKey(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/regenerateTestKey" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesRegenerateTestKey_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Regenerate a test key for a Service. + /// + /// Parameters 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.AppPlatform.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 ServicesRegenerateTestKeyViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/regenerateTestKey$", 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.AppPlatform/Spring/{serviceName}/regenerateTestKey'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/regenerateTestKey" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesRegenerateTestKey_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.AppPlatform.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 ServicesRegenerateTestKey_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TestKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters 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 ServicesRegenerateTestKey_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Start a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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.AppPlatform.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 ServicesStart(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func onNotFound, global::System.Func onConflict, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/start" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesStart_Call(request,onNotFound,onConflict,onDefault,eventListener,sender); + } + } + + /// Start a Service. + /// + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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.AppPlatform.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 ServicesStartViaIdentity(global::System.String viaIdentity, global::System.Func onNotFound, global::System.Func onConflict, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/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.AppPlatform/Spring/{serviceName}/start'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/start" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesStart_Call(request,onNotFound,onConflict,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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.AppPlatform.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 ServicesStart_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onNotFound, global::System.Func onConflict, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.NotFound: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNotFound(_response); + break; + } + case global::System.Net.HttpStatusCode.Conflict: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onConflict(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ServicesStart_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Stop a Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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.AppPlatform.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 ServicesStop(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func onNotFound, global::System.Func onConflict, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/stop" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesStop_Call(request,onNotFound,onConflict,onDefault,eventListener,sender); + } + } + + /// Stop a Service. + /// + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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.AppPlatform.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 ServicesStopViaIdentity(global::System.String viaIdentity, global::System.Func onNotFound, global::System.Func onConflict, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/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.AppPlatform/Spring/{serviceName}/stop'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/stop" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesStop_Call(request,onNotFound,onConflict,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 404 (NotFound). + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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.AppPlatform.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 ServicesStop_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onNotFound, global::System.Func onConflict, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.NotFound: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNotFound(_response); + break; + } + case global::System.Net.HttpStatusCode.Conflict: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onConflict(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 ServicesStop_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + + /// Operation to update an exiting Service. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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.AppPlatform.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 ServicesUpdate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Operation to update an exiting Service. + /// + /// Parameters for 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.AppPlatform.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 ServicesUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ServicesUpdate_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.AppPlatform.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 ServicesUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// Parameters for 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 ServicesUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Lists all of the available skus of the Microsoft.AppPlatform provider. + /// Gets subscription ID which uniquely identify the 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.AppPlatform.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 SkusList(string subscriptionId, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.AppPlatform/skus" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SkusList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Lists all of the available skus of the Microsoft.AppPlatform 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.AppPlatform.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 SkusListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/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.AppPlatform/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.AppPlatform/skus" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SkusList_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.AppPlatform.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 SkusList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the 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 SkusList_Validate(string subscriptionId, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + } + } + + /// Create or update storage resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the storage resource. + /// Parameters for the create or 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.AppPlatform.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 StoragesCreateOrUpdate(string subscriptionId, string resourceGroupName, string serviceName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StoragesCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Create or update storage resource. + /// + /// Parameters for the create or 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.AppPlatform.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 StoragesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/storages/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StoragesCreateOrUpdate_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.AppPlatform.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 StoragesCreateOrUpdate_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the storage resource. + /// Parameters for the create or 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 StoragesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string serviceName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource body, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete the storage resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the storage resource. + /// 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.AppPlatform.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 StoragesDelete(string subscriptionId, string resourceGroupName, string serviceName, string storageName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StoragesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete the storage resource. + /// + /// 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.AppPlatform.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 StoragesDeleteViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/storages/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StoragesDelete_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.AppPlatform.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 StoragesDelete_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Polling, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the storage 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 StoragesDelete_Validate(string subscriptionId, string resourceGroupName, string serviceName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + } + } + + /// Get the storage resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the storage 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.AppPlatform.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 StoragesGet(string subscriptionId, string resourceGroupName, string serviceName, string storageName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/storages/" + + global::System.Uri.EscapeDataString(storageName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StoragesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the storage 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.AppPlatform.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 StoragesGetViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/storages/(?[^/]+)$", 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.AppPlatform/Spring/{serviceName}/storages/{storageName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + var storageName = _match.Groups["storageName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/storages/" + + storageName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StoragesGet_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.AppPlatform.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 StoragesGet_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service resource. + /// The name of the storage 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 StoragesGet_Validate(string subscriptionId, string resourceGroupName, string serviceName, string storageName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + await eventListener.AssertNotNull(nameof(storageName),storageName); + } + } + + /// List all the storages of one Azure Spring Apps resource. + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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.AppPlatform.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 StoragesList(string subscriptionId, string resourceGroupName, string serviceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onDefault, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/" + + global::System.Uri.EscapeDataString(serviceName) + + "/storages" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StoragesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the storages of one Azure Spring Apps 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.AppPlatform.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 StoragesListViaIdentity(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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.ISendAsync sender) + { + var apiVersion = @"2022-11-01-preview"; + // 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.AppPlatform/Spring/(?[^/]+)/storages$", 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.AppPlatform/Spring/{serviceName}/storages'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var serviceName = _match.Groups["serviceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.AppPlatform/Spring/" + + serviceName + + "/storages" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.StoragesList_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.AppPlatform.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 StoragesList_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.AppPlatform.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResourceCollection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudError.FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 ID which uniquely identify the Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group that contains the resource. You can obtain this value from + /// the Azure Resource Manager API or the portal. + /// The name of the Service 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 StoragesList_Validate(string subscriptionId, string resourceGroupName, string serviceName, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(serviceName),serviceName); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Any.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Any.PowerShell.cs new file mode 100644 index 000000000000..b0c0e6f272cc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Any.PowerShell.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.AppPlatform.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.IAny FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Any.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Any.TypeConverter.cs new file mode 100644 index 000000000000..9f79cca8a97b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Any.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.IAny ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Any.cs b/swaggerci/appplatform/generated/api/Models/Any.cs new file mode 100644 index 000000000000..12549bd3225b --- /dev/null +++ b/swaggerci/appplatform/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.AppPlatform.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Any object + public partial class Any : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAnyInternal + { + + /// Creates an new instance. + public Any() + { + + } + } + /// Any object + public partial interface IAny : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + + } + /// Any object + internal partial interface IAnyInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Any.json.cs b/swaggerci/appplatform/generated/api/Models/Any.json.cs new file mode 100644 index 000000000000..f5963a528d93 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Any.json.cs @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal Any(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.IAny. + /// + /// a to deserialize from. + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny. + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.PowerShell.cs new file mode 100644 index 000000000000..b38000a8900b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Auth setting payload. + [System.ComponentModel.TypeConverter(typeof(AcceleratorAuthSettingTypeConverter))] + public partial class AcceleratorAuthSetting + { + + /// + /// 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 AcceleratorAuthSetting(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType = (string) content.GetValueForProperty("AuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType, 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 AcceleratorAuthSetting(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType = (string) content.GetValueForProperty("AuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType, 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.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AcceleratorAuthSetting(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.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AcceleratorAuthSetting(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.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Auth setting payload. + [System.ComponentModel.TypeConverter(typeof(AcceleratorAuthSettingTypeConverter))] + public partial interface IAcceleratorAuthSetting + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.TypeConverter.cs new file mode 100644 index 000000000000..7d6cbcd31bc6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AcceleratorAuthSettingTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AcceleratorAuthSetting.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AcceleratorAuthSetting.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AcceleratorAuthSetting.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/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.cs new file mode 100644 index 000000000000..f5062f9efe1a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Auth setting payload. + public partial class AcceleratorAuthSetting : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal + { + + /// Backing field for property. + private string _authType; + + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AuthType { get => this._authType; set => this._authType = value; } + + /// Creates an new instance. + public AcceleratorAuthSetting() + { + + } + } + /// Auth setting payload. + public partial interface IAcceleratorAuthSetting : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the auth setting.", + SerializedName = @"authType", + PossibleTypes = new [] { typeof(string) })] + string AuthType { get; set; } + + } + /// Auth setting payload. + internal partial interface IAcceleratorAuthSettingInternal + + { + /// The type of the auth setting. + string AuthType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.json.cs new file mode 100644 index 000000000000..1eb1aaa66967 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorAuthSetting.json.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Auth setting payload. + public partial class AcceleratorAuthSetting + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AcceleratorAuthSetting(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_authType = If( json?.PropertyT("authType"), out var __jsonAuthType) ? (string)__jsonAuthType : (string)AuthType;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting 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.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("authType") ) + { + case "Public": + { + return new AcceleratorPublicSetting(json); + } + case "BasicAuth": + { + return new AcceleratorBasicAuthSetting(json); + } + case "SSH": + { + return new AcceleratorSshSetting(json); + } + } + return new AcceleratorAuthSetting(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._authType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._authType.ToString()) : null, "authType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.PowerShell.cs new file mode 100644 index 000000000000..729665f00211 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Auth setting for basic auth. + [System.ComponentModel.TypeConverter(typeof(AcceleratorBasicAuthSettingTypeConverter))] + public partial class AcceleratorBasicAuthSetting + { + + /// + /// 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 AcceleratorBasicAuthSetting(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("AuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType = (string) content.GetValueForProperty("AuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType, 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 AcceleratorBasicAuthSetting(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("AuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType = (string) content.GetValueForProperty("AuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType, 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.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AcceleratorBasicAuthSetting(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.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AcceleratorBasicAuthSetting(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.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Auth setting for basic auth. + [System.ComponentModel.TypeConverter(typeof(AcceleratorBasicAuthSettingTypeConverter))] + public partial interface IAcceleratorBasicAuthSetting + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.TypeConverter.cs new file mode 100644 index 000000000000..a1a60974ad4f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AcceleratorBasicAuthSettingTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AcceleratorBasicAuthSetting.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AcceleratorBasicAuthSetting.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AcceleratorBasicAuthSetting.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/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.cs new file mode 100644 index 000000000000..c90a9319ab41 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Auth setting for basic auth. + public partial class AcceleratorBasicAuthSetting : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSettingInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting __acceleratorAuthSetting = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting(); + + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string AuthType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)__acceleratorAuthSetting).AuthType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)__acceleratorAuthSetting).AuthType = value ; } + + /// Backing field for property. + private string _password; + + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Password { get => this._password; set => this._password = value; } + + /// Backing field for property. + private string _username; + + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Username { get => this._username; set => this._username = value; } + + /// Creates an new instance. + public AcceleratorBasicAuthSetting() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__acceleratorAuthSetting), __acceleratorAuthSetting); + await eventListener.AssertObjectIsValid(nameof(__acceleratorAuthSetting), __acceleratorAuthSetting); + } + } + /// Auth setting for basic auth. + public partial interface IAcceleratorBasicAuthSetting : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting + { + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string Password { get; set; } + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string Username { get; set; } + + } + /// Auth setting for basic auth. + internal partial interface IAcceleratorBasicAuthSettingInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal + { + /// Password of git repository basic auth. + string Password { get; set; } + /// Username of git repository basic auth. + string Username { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.json.cs new file mode 100644 index 000000000000..5084c8f5a0cc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorBasicAuthSetting.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Auth setting for basic auth. + public partial class AcceleratorBasicAuthSetting + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AcceleratorBasicAuthSetting(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __acceleratorAuthSetting = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting(json); + {_username = If( json?.PropertyT("username"), out var __jsonUsername) ? (string)__jsonUsername : (string)Username;} + {_password = If( json?.PropertyT("password"), out var __jsonPassword) ? (string)__jsonPassword : (string)Password;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorBasicAuthSetting FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AcceleratorBasicAuthSetting(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __acceleratorAuthSetting?.ToJson(container, serializationMode); + AddIf( null != (((object)this._username)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._username.ToString()) : null, "username" ,container.Add ); + AddIf( null != (((object)this._password)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._password.ToString()) : null, "password" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.PowerShell.cs new file mode 100644 index 000000000000..4c6acb0b67a6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.PowerShell.cs @@ -0,0 +1,192 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(AcceleratorGitRepositoryTypeConverter))] + public partial class AcceleratorGitRepository + { + + /// + /// 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 AcceleratorGitRepository(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AuthSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).AuthSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting) content.GetValueForProperty("AuthSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).AuthSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSettingTypeConverter.ConvertFrom); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("IntervalInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).IntervalInSecond = (int?) content.GetValueForProperty("IntervalInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).IntervalInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Branch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Branch = (string) content.GetValueForProperty("Branch",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Branch, global::System.Convert.ToString); + } + if (content.Contains("Commit")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Commit = (string) content.GetValueForProperty("Commit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Commit, global::System.Convert.ToString); + } + if (content.Contains("GitTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).GitTag = (string) content.GetValueForProperty("GitTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).GitTag, global::System.Convert.ToString); + } + if (content.Contains("AuthSettingAuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).AuthSettingAuthType = (string) content.GetValueForProperty("AuthSettingAuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).AuthSettingAuthType, 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 AcceleratorGitRepository(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AuthSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).AuthSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting) content.GetValueForProperty("AuthSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).AuthSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSettingTypeConverter.ConvertFrom); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("IntervalInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).IntervalInSecond = (int?) content.GetValueForProperty("IntervalInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).IntervalInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Branch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Branch = (string) content.GetValueForProperty("Branch",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Branch, global::System.Convert.ToString); + } + if (content.Contains("Commit")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Commit = (string) content.GetValueForProperty("Commit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).Commit, global::System.Convert.ToString); + } + if (content.Contains("GitTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).GitTag = (string) content.GetValueForProperty("GitTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).GitTag, global::System.Convert.ToString); + } + if (content.Contains("AuthSettingAuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).AuthSettingAuthType = (string) content.GetValueForProperty("AuthSettingAuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)this).AuthSettingAuthType, 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.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AcceleratorGitRepository(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.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AcceleratorGitRepository(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.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(AcceleratorGitRepositoryTypeConverter))] + public partial interface IAcceleratorGitRepository + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.TypeConverter.cs new file mode 100644 index 000000000000..f5a7c76a0d6e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AcceleratorGitRepositoryTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AcceleratorGitRepository.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AcceleratorGitRepository.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AcceleratorGitRepository.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/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.cs new file mode 100644 index 000000000000..54b68f99f906 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class AcceleratorGitRepository : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting _authSetting; + + /// Properties of the auth setting payload. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting AuthSetting { get => (this._authSetting = this._authSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting()); set => this._authSetting = value; } + + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AuthSettingAuthType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)AuthSetting).AuthType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)AuthSetting).AuthType = value ; } + + /// Backing field for property. + private string _branch; + + /// Git repository branch to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Branch { get => this._branch; set => this._branch = value; } + + /// Backing field for property. + private string _commit; + + /// Git repository commit to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Commit { get => this._commit; set => this._commit = value; } + + /// Backing field for property. + private string _gitTag; + + /// Git repository tag to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string GitTag { get => this._gitTag; set => this._gitTag = value; } + + /// Backing field for property. + private int? _intervalInSecond; + + /// Interval for checking for updates to Git or image repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? IntervalInSecond { get => this._intervalInSecond; set => this._intervalInSecond = value; } + + /// Internal Acessors for AuthSetting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal.AuthSetting { get => (this._authSetting = this._authSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting()); set { {_authSetting = value;} } } + + /// Backing field for property. + private string _url; + + /// Git repository URL for the accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Url { get => this._url; set => this._url = value; } + + /// Creates an new instance. + public AcceleratorGitRepository() + { + + } + } + public partial interface IAcceleratorGitRepository : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the auth setting.", + SerializedName = @"authType", + PossibleTypes = new [] { typeof(string) })] + string AuthSettingAuthType { get; set; } + /// Git repository branch to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository branch to be used.", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + string Branch { get; set; } + /// Git repository commit to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository commit to be used.", + SerializedName = @"commit", + PossibleTypes = new [] { typeof(string) })] + string Commit { get; set; } + /// Git repository tag to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository tag to be used.", + SerializedName = @"gitTag", + PossibleTypes = new [] { typeof(string) })] + string GitTag { get; set; } + /// Interval for checking for updates to Git or image repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Interval for checking for updates to Git or image repository.", + SerializedName = @"intervalInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? IntervalInSecond { get; set; } + /// Git repository URL for the accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Git repository URL for the accelerator.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; set; } + + } + internal partial interface IAcceleratorGitRepositoryInternal + + { + /// Properties of the auth setting payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting AuthSetting { get; set; } + /// The type of the auth setting. + string AuthSettingAuthType { get; set; } + /// Git repository branch to be used. + string Branch { get; set; } + /// Git repository commit to be used. + string Commit { get; set; } + /// Git repository tag to be used. + string GitTag { get; set; } + /// Interval for checking for updates to Git or image repository. + int? IntervalInSecond { get; set; } + /// Git repository URL for the accelerator. + string Url { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.json.cs new file mode 100644 index 000000000000..4ed72ea703e7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorGitRepository.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class AcceleratorGitRepository + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AcceleratorGitRepository(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_authSetting = If( json?.PropertyT("authSetting"), out var __jsonAuthSetting) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting.FromJson(__jsonAuthSetting) : AuthSetting;} + {_url = If( json?.PropertyT("url"), out var __jsonUrl) ? (string)__jsonUrl : (string)Url;} + {_intervalInSecond = If( json?.PropertyT("intervalInSeconds"), out var __jsonIntervalInSeconds) ? (int?)__jsonIntervalInSeconds : IntervalInSecond;} + {_branch = If( json?.PropertyT("branch"), out var __jsonBranch) ? (string)__jsonBranch : (string)Branch;} + {_commit = If( json?.PropertyT("commit"), out var __jsonCommit) ? (string)__jsonCommit : (string)Commit;} + {_gitTag = If( json?.PropertyT("gitTag"), out var __jsonGitTag) ? (string)__jsonGitTag : (string)GitTag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AcceleratorGitRepository(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._authSetting ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._authSetting.ToJson(null,serializationMode) : null, "authSetting" ,container.Add ); + AddIf( null != (((object)this._url)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._url.ToString()) : null, "url" ,container.Add ); + AddIf( null != this._intervalInSecond ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._intervalInSecond) : null, "intervalInSeconds" ,container.Add ); + AddIf( null != (((object)this._branch)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._branch.ToString()) : null, "branch" ,container.Add ); + AddIf( null != (((object)this._commit)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._commit.ToString()) : null, "commit" ,container.Add ); + AddIf( null != (((object)this._gitTag)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._gitTag.ToString()) : null, "gitTag" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.PowerShell.cs new file mode 100644 index 000000000000..6d0bfc573dad --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Auth setting for public url. + [System.ComponentModel.TypeConverter(typeof(AcceleratorPublicSettingTypeConverter))] + public partial class AcceleratorPublicSetting + { + + /// + /// 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 AcceleratorPublicSetting(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType = (string) content.GetValueForProperty("AuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType, 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 AcceleratorPublicSetting(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType = (string) content.GetValueForProperty("AuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType, 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.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AcceleratorPublicSetting(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.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AcceleratorPublicSetting(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.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Auth setting for public url. + [System.ComponentModel.TypeConverter(typeof(AcceleratorPublicSettingTypeConverter))] + public partial interface IAcceleratorPublicSetting + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.TypeConverter.cs new file mode 100644 index 000000000000..b46af610923e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AcceleratorPublicSettingTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AcceleratorPublicSetting.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AcceleratorPublicSetting.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AcceleratorPublicSetting.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/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.cs new file mode 100644 index 000000000000..07ca4ff3ed0a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Auth setting for public url. + public partial class AcceleratorPublicSetting : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSettingInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting __acceleratorAuthSetting = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting(); + + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string AuthType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)__acceleratorAuthSetting).AuthType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)__acceleratorAuthSetting).AuthType = value ; } + + /// Creates an new instance. + public AcceleratorPublicSetting() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__acceleratorAuthSetting), __acceleratorAuthSetting); + await eventListener.AssertObjectIsValid(nameof(__acceleratorAuthSetting), __acceleratorAuthSetting); + } + } + /// Auth setting for public url. + public partial interface IAcceleratorPublicSetting : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting + { + + } + /// Auth setting for public url. + internal partial interface IAcceleratorPublicSettingInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.json.cs new file mode 100644 index 000000000000..3a517896bb18 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorPublicSetting.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Auth setting for public url. + public partial class AcceleratorPublicSetting + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AcceleratorPublicSetting(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __acceleratorAuthSetting = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting(json); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorPublicSetting FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AcceleratorPublicSetting(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __acceleratorAuthSetting?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.PowerShell.cs new file mode 100644 index 000000000000..07d823242024 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Auth setting for SSH auth. + [System.ComponentModel.TypeConverter(typeof(AcceleratorSshSettingTypeConverter))] + public partial class AcceleratorSshSetting + { + + /// + /// 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 AcceleratorSshSetting(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("HostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).HostKey, global::System.Convert.ToString); + } + if (content.Contains("HostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("PrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).PrivateKey, global::System.Convert.ToString); + } + if (content.Contains("AuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType = (string) content.GetValueForProperty("AuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType, 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 AcceleratorSshSetting(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("HostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).HostKey, global::System.Convert.ToString); + } + if (content.Contains("HostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("PrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal)this).PrivateKey, global::System.Convert.ToString); + } + if (content.Contains("AuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType = (string) content.GetValueForProperty("AuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)this).AuthType, 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.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AcceleratorSshSetting(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.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AcceleratorSshSetting(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.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Auth setting for SSH auth. + [System.ComponentModel.TypeConverter(typeof(AcceleratorSshSettingTypeConverter))] + public partial interface IAcceleratorSshSetting + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.TypeConverter.cs new file mode 100644 index 000000000000..ca84f9341ace --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AcceleratorSshSettingTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AcceleratorSshSetting.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AcceleratorSshSetting.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AcceleratorSshSetting.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/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.cs new file mode 100644 index 000000000000..b13d8574cf09 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Auth setting for SSH auth. + public partial class AcceleratorSshSetting : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSettingInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting __acceleratorAuthSetting = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting(); + + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string AuthType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)__acceleratorAuthSetting).AuthType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal)__acceleratorAuthSetting).AuthType = value ; } + + /// Backing field for property. + private string _hostKey; + + /// Public SSH Key of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string HostKey { get => this._hostKey; set => this._hostKey = value; } + + /// Backing field for property. + private string _hostKeyAlgorithm; + + /// SSH Key algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string HostKeyAlgorithm { get => this._hostKeyAlgorithm; set => this._hostKeyAlgorithm = value; } + + /// Backing field for property. + private string _privateKey; + + /// Private SSH Key algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PrivateKey { get => this._privateKey; set => this._privateKey = value; } + + /// Creates an new instance. + public AcceleratorSshSetting() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__acceleratorAuthSetting), __acceleratorAuthSetting); + await eventListener.AssertObjectIsValid(nameof(__acceleratorAuthSetting), __acceleratorAuthSetting); + } + } + /// Auth setting for SSH auth. + public partial interface IAcceleratorSshSetting : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting + { + /// Public SSH Key of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public SSH Key of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + string HostKey { get; set; } + /// SSH Key algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SSH Key algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + string HostKeyAlgorithm { get; set; } + /// Private SSH Key algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private SSH Key algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + string PrivateKey { get; set; } + + } + /// Auth setting for SSH auth. + internal partial interface IAcceleratorSshSettingInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSettingInternal + { + /// Public SSH Key of git repository. + string HostKey { get; set; } + /// SSH Key algorithm of git repository. + string HostKeyAlgorithm { get; set; } + /// Private SSH Key algorithm of git repository. + string PrivateKey { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.json.cs new file mode 100644 index 000000000000..9b8923e5f0a3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AcceleratorSshSetting.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Auth setting for SSH auth. + public partial class AcceleratorSshSetting + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AcceleratorSshSetting(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __acceleratorAuthSetting = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSetting(json); + {_hostKey = If( json?.PropertyT("hostKey"), out var __jsonHostKey) ? (string)__jsonHostKey : (string)HostKey;} + {_hostKeyAlgorithm = If( json?.PropertyT("hostKeyAlgorithm"), out var __jsonHostKeyAlgorithm) ? (string)__jsonHostKeyAlgorithm : (string)HostKeyAlgorithm;} + {_privateKey = If( json?.PropertyT("privateKey"), out var __jsonPrivateKey) ? (string)__jsonPrivateKey : (string)PrivateKey;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorSshSetting FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AcceleratorSshSetting(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __acceleratorAuthSetting?.ToJson(container, serializationMode); + AddIf( null != (((object)this._hostKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._hostKey.ToString()) : null, "hostKey" ,container.Add ); + AddIf( null != (((object)this._hostKeyAlgorithm)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._hostKeyAlgorithm.ToString()) : null, "hostKeyAlgorithm" ,container.Add ); + AddIf( null != (((object)this._privateKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._privateKey.ToString()) : null, "privateKey" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.PowerShell.cs new file mode 100644 index 000000000000..b24b5bef61d3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Deployment resource name and set them as active. + /// + [System.ComponentModel.TypeConverter(typeof(ActiveDeploymentCollectionTypeConverter))] + public partial class ActiveDeploymentCollection + { + + /// + /// 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 ActiveDeploymentCollection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ActiveDeploymentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollectionInternal)this).ActiveDeploymentName = (string[]) content.GetValueForProperty("ActiveDeploymentName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollectionInternal)this).ActiveDeploymentName, __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 ActiveDeploymentCollection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ActiveDeploymentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollectionInternal)this).ActiveDeploymentName = (string[]) content.GetValueForProperty("ActiveDeploymentName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollectionInternal)this).ActiveDeploymentName, __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.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ActiveDeploymentCollection(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.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ActiveDeploymentCollection(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.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Deployment resource name and set them as active. + [System.ComponentModel.TypeConverter(typeof(ActiveDeploymentCollectionTypeConverter))] + public partial interface IActiveDeploymentCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.TypeConverter.cs new file mode 100644 index 000000000000..dddedb1790ef --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ActiveDeploymentCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ActiveDeploymentCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ActiveDeploymentCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ActiveDeploymentCollection.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/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.cs new file mode 100644 index 000000000000..0f5e83a81644 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Deployment resource name and set them as active. + /// + public partial class ActiveDeploymentCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollectionInternal + { + + /// Backing field for property. + private string[] _activeDeploymentName; + + /// Collection of Deployment name. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] ActiveDeploymentName { get => this._activeDeploymentName; set => this._activeDeploymentName = value; } + + /// Creates an new instance. + public ActiveDeploymentCollection() + { + + } + } + /// Object that includes an array of Deployment resource name and set them as active. + public partial interface IActiveDeploymentCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Collection of Deployment name. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Deployment name.", + SerializedName = @"activeDeploymentNames", + PossibleTypes = new [] { typeof(string) })] + string[] ActiveDeploymentName { get; set; } + + } + /// Object that includes an array of Deployment resource name and set them as active. + internal partial interface IActiveDeploymentCollectionInternal + + { + /// Collection of Deployment name. + string[] ActiveDeploymentName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.json.cs new file mode 100644 index 000000000000..b9ec6fd376a0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ActiveDeploymentCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Deployment resource name and set them as active. + /// + public partial class ActiveDeploymentCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ActiveDeploymentCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_activeDeploymentName = If( json?.PropertyT("activeDeploymentNames"), out var __jsonActiveDeploymentNames) ? If( __jsonActiveDeploymentNames as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : ActiveDeploymentName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IActiveDeploymentCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ActiveDeploymentCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._activeDeploymentName) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._activeDeploymentName ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("activeDeploymentNames",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.PowerShell.cs new file mode 100644 index 000000000000..3913bb785d34 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The properties of custom domain for API portal + [System.ComponentModel.TypeConverter(typeof(ApiPortalCustomDomainPropertiesTypeConverter))] + public partial class ApiPortalCustomDomainProperties + { + + /// + /// 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 ApiPortalCustomDomainProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainPropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainPropertiesInternal)this).Thumbprint, 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 ApiPortalCustomDomainProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainPropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainPropertiesInternal)this).Thumbprint, 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApiPortalCustomDomainProperties(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApiPortalCustomDomainProperties(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties of custom domain for API portal + [System.ComponentModel.TypeConverter(typeof(ApiPortalCustomDomainPropertiesTypeConverter))] + public partial interface IApiPortalCustomDomainProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.TypeConverter.cs new file mode 100644 index 000000000000..b61e71afb1ee --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApiPortalCustomDomainPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApiPortalCustomDomainProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApiPortalCustomDomainProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApiPortalCustomDomainProperties.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.cs new file mode 100644 index 000000000000..d6d856494ad7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The properties of custom domain for API portal + public partial class ApiPortalCustomDomainProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainPropertiesInternal + { + + /// Backing field for property. + private string _thumbprint; + + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Thumbprint { get => this._thumbprint; set => this._thumbprint = value; } + + /// Creates an new instance. + public ApiPortalCustomDomainProperties() + { + + } + } + /// The properties of custom domain for API portal + public partial interface IApiPortalCustomDomainProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; set; } + + } + /// The properties of custom domain for API portal + internal partial interface IApiPortalCustomDomainPropertiesInternal + + { + /// The thumbprint of bound certificate. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.json.cs new file mode 100644 index 000000000000..7b56a3d24753 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The properties of custom domain for API portal + public partial class ApiPortalCustomDomainProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApiPortalCustomDomainProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_thumbprint = If( json?.PropertyT("thumbprint"), out var __jsonThumbprint) ? (string)__jsonThumbprint : (string)Thumbprint;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApiPortalCustomDomainProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._thumbprint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._thumbprint.ToString()) : null, "thumbprint" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.PowerShell.cs new file mode 100644 index 000000000000..db1e3cfc679e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom domain of the API portal + [System.ComponentModel.TypeConverter(typeof(ApiPortalCustomDomainResourceTypeConverter))] + public partial class ApiPortalCustomDomainResource + { + + /// + /// 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 ApiPortalCustomDomainResource(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal)this).Thumbprint, 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 ApiPortalCustomDomainResource(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal)this).Thumbprint, 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApiPortalCustomDomainResource(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApiPortalCustomDomainResource(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom domain of the API portal + [System.ComponentModel.TypeConverter(typeof(ApiPortalCustomDomainResourceTypeConverter))] + public partial interface IApiPortalCustomDomainResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.TypeConverter.cs new file mode 100644 index 000000000000..d18ab69765ca --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApiPortalCustomDomainResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApiPortalCustomDomainResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApiPortalCustomDomainResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApiPortalCustomDomainResource.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.cs new file mode 100644 index 000000000000..2319d3fe86a0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain of the API portal + public partial class ApiPortalCustomDomainResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties _property; + + /// The properties of custom domain for API portal + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainProperties()); set => this._property = value; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainPropertiesInternal)Property).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainPropertiesInternal)Property).Thumbprint = value ?? null; } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ApiPortalCustomDomainResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Custom domain of the API portal + public partial interface IApiPortalCustomDomainResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; set; } + + } + /// Custom domain of the API portal + internal partial interface IApiPortalCustomDomainResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The properties of custom domain for API portal + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainProperties Property { get; set; } + /// The thumbprint of bound certificate. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.json.cs new file mode 100644 index 000000000000..8fa0449c1200 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain of the API portal + public partial class ApiPortalCustomDomainResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApiPortalCustomDomainResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApiPortalCustomDomainResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..824cdfabaacd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.PowerShell.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of API portal custom domain resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(ApiPortalCustomDomainResourceCollectionTypeConverter))] + public partial class ApiPortalCustomDomainResourceCollection + { + + /// + /// 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 ApiPortalCustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal)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 ApiPortalCustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApiPortalCustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApiPortalCustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of API portal custom domain resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(ApiPortalCustomDomainResourceCollectionTypeConverter))] + public partial interface IApiPortalCustomDomainResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..50a5eef62e1f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApiPortalCustomDomainResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApiPortalCustomDomainResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApiPortalCustomDomainResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApiPortalCustomDomainResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.cs new file mode 100644 index 000000000000..103fa59ae15a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of API portal custom domain resources and a possible link for next set + /// + public partial class ApiPortalCustomDomainResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource[] _value; + + /// Collection of API portal custom domain resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ApiPortalCustomDomainResourceCollection() + { + + } + } + /// Object that includes an array of API portal custom domain resources and a possible link for next set + public partial interface IApiPortalCustomDomainResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of API portal custom domain resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of API portal custom domain resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource[] Value { get; set; } + + } + /// Object that includes an array of API portal custom domain resources and a possible link for next set + internal partial interface IApiPortalCustomDomainResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of API portal custom domain resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.json.cs new file mode 100644 index 000000000000..8a0668580cae --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalCustomDomainResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of API portal custom domain resources and a possible link for next set + /// + public partial class ApiPortalCustomDomainResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApiPortalCustomDomainResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApiPortalCustomDomainResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.PowerShell.cs new file mode 100644 index 000000000000..3e1bf34d79c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of instances belong to the API portal + [System.ComponentModel.TypeConverter(typeof(ApiPortalInstanceTypeConverter))] + public partial class ApiPortalInstance + { + + /// + /// 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 ApiPortalInstance(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.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal)this).Status, 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 ApiPortalInstance(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.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal)this).Status, 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.AppPlatform.Models.Api20221101Preview.IApiPortalInstance DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApiPortalInstance(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.AppPlatform.Models.Api20221101Preview.IApiPortalInstance DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApiPortalInstance(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.AppPlatform.Models.Api20221101Preview.IApiPortalInstance FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of instances belong to the API portal + [System.ComponentModel.TypeConverter(typeof(ApiPortalInstanceTypeConverter))] + public partial interface IApiPortalInstance + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.TypeConverter.cs new file mode 100644 index 000000000000..01a5f4e05a05 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApiPortalInstanceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApiPortalInstance.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApiPortalInstance.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApiPortalInstance.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.cs new file mode 100644 index 000000000000..21b3a6b9f9d8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the API portal + public partial class ApiPortalInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstanceInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _status; + + /// Status of the API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Status { get => this._status; } + + /// Creates an new instance. + public ApiPortalInstance() + { + + } + } + /// Collection of instances belong to the API portal + public partial interface IApiPortalInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name of the API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the API portal instance", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Status of the API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the API portal instance", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; } + + } + /// Collection of instances belong to the API portal + internal partial interface IApiPortalInstanceInternal + + { + /// Name of the API portal instance + string Name { get; set; } + /// Status of the API portal instance + string Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.json.cs new file mode 100644 index 000000000000..1dd265d65872 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the API portal + public partial class ApiPortalInstance + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApiPortalInstance(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApiPortalInstance(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.PowerShell.cs new file mode 100644 index 000000000000..b8721563541c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.PowerShell.cs @@ -0,0 +1,258 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// API portal properties payload + [System.ComponentModel.TypeConverter(typeof(ApiPortalPropertiesTypeConverter))] + public partial class ApiPortalProperties + { + + /// + /// 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 ApiPortalProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState.CreateFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GatewayId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).GatewayId = (string[]) content.GetValueForProperty("GatewayId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).GatewayId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SourceUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SourceUrl = (string[]) content.GetValueForProperty("SourceUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SourceUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyIssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyIssuerUri = (string) content.GetValueForProperty("SsoPropertyIssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyIssuerUri, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequestMemory, 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 ApiPortalProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState.CreateFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GatewayId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).GatewayId = (string[]) content.GetValueForProperty("GatewayId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).GatewayId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SourceUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SourceUrl = (string[]) content.GetValueForProperty("SourceUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SourceUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyIssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyIssuerUri = (string) content.GetValueForProperty("SsoPropertyIssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).SsoPropertyIssuerUri, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)this).ResourceRequestMemory, 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.AppPlatform.Models.Api20221101Preview.IApiPortalProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApiPortalProperties(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.AppPlatform.Models.Api20221101Preview.IApiPortalProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApiPortalProperties(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.AppPlatform.Models.Api20221101Preview.IApiPortalProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// API portal properties payload + [System.ComponentModel.TypeConverter(typeof(ApiPortalPropertiesTypeConverter))] + public partial interface IApiPortalProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.TypeConverter.cs new file mode 100644 index 000000000000..dc3df29f9e2f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApiPortalPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApiPortalProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApiPortalProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApiPortalProperties.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.cs new file mode 100644 index 000000000000..d24390921077 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.cs @@ -0,0 +1,282 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API portal properties payload + public partial class ApiPortalProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal + { + + /// Backing field for property. + private string[] _gatewayId; + + /// The array of resource Ids of gateway to integrate with API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] GatewayId { get => this._gatewayId; set => this._gatewayId = value; } + + /// Backing field for property. + private bool? _httpsOnly; + + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? HttpsOnly { get => this._httpsOnly; set => this._httpsOnly = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] _instance; + + /// Collection of instances belong to API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] Instance { get => this._instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)ResourceRequest).Cpu = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)ResourceRequest).Memory = value; } + + /// Internal Acessors for SsoProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal.SsoProperty { get => (this._ssoProperty = this._ssoProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoProperties()); set { {_ssoProperty = value;} } } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal.Url { get => this._url; set { {_url = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? _provisioningState; + + /// State of the API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private bool? _public; + + /// Indicates whether the API portal exposes endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? Public { get => this._public; set => this._public = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests _resourceRequest; + + /// The requested resource quantity for required CPU and Memory. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequests()); } + + /// Cpu allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)ResourceRequest).Cpu; } + + /// Memory allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)ResourceRequest).Memory; } + + /// Backing field for property. + private string[] _sourceUrl; + + /// Collection of OpenAPI source URL locations. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] SourceUrl { get => this._sourceUrl; set => this._sourceUrl = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties _ssoProperty; + + /// Single sign-on related configuration + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties SsoProperty { get => (this._ssoProperty = this._ssoProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoProperties()); set => this._ssoProperty = value; } + + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).ClientId = value ?? null; } + + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).ClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).ClientSecret = value ?? null; } + + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyIssuerUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).IssuerUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).IssuerUri = value ?? null; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] SsoPropertyScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).Scope = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _url; + + /// URL of the API portal, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Url { get => this._url; } + + /// Creates an new instance. + public ApiPortalProperties() + { + + } + } + /// API portal properties payload + public partial interface IApiPortalProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The array of resource Ids of gateway to integrate with API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The array of resource Ids of gateway to integrate with API portal.", + SerializedName = @"gatewayIds", + PossibleTypes = new [] { typeof(string) })] + string[] GatewayId { get; set; } + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? HttpsOnly { get; set; } + /// Collection of instances belong to API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to API portal.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] Instance { get; } + /// State of the API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the API portal.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? ProvisioningState { get; } + /// Indicates whether the API portal exposes endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the API portal exposes endpoint.", + SerializedName = @"public", + PossibleTypes = new [] { typeof(bool) })] + bool? Public { get; set; } + /// Cpu allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each API portal instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Memory allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each API portal instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + /// Collection of OpenAPI source URL locations. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of OpenAPI source URL locations.", + SerializedName = @"sourceUrls", + PossibleTypes = new [] { typeof(string) })] + string[] SourceUrl { get; set; } + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientSecret { get; set; } + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of Issuer Identifier", + SerializedName = @"issuerUri", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyIssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + string[] SsoPropertyScope { get; set; } + /// URL of the API portal, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the API portal, exposed when 'public' is true.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; } + + } + /// API portal properties payload + internal partial interface IApiPortalPropertiesInternal + + { + /// The array of resource Ids of gateway to integrate with API portal. + string[] GatewayId { get; set; } + /// Indicate if only https is allowed. + bool? HttpsOnly { get; set; } + /// Collection of instances belong to API portal. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] Instance { get; set; } + /// State of the API portal. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? ProvisioningState { get; set; } + /// Indicates whether the API portal exposes endpoint. + bool? Public { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests ResourceRequest { get; set; } + /// Cpu allocated to each API portal instance + string ResourceRequestCpu { get; set; } + /// Memory allocated to each API portal instance + string ResourceRequestMemory { get; set; } + /// Collection of OpenAPI source URL locations. + string[] SourceUrl { get; set; } + /// Single sign-on related configuration + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties SsoProperty { get; set; } + /// The public identifier for the application + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + string SsoPropertyClientSecret { get; set; } + /// The URI of Issuer Identifier + string SsoPropertyIssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + string[] SsoPropertyScope { get; set; } + /// URL of the API portal, exposed when 'public' is true. + string Url { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.json.cs new file mode 100644 index 000000000000..36f285c63f78 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalProperties.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API portal properties payload + public partial class ApiPortalProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApiPortalProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_ssoProperty = If( json?.PropertyT("ssoProperties"), out var __jsonSsoProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoProperties.FromJson(__jsonSsoProperties) : SsoProperty;} + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_public = If( json?.PropertyT("public"), out var __jsonPublic) ? (bool?)__jsonPublic : Public;} + {_url = If( json?.PropertyT("url"), out var __jsonUrl) ? (string)__jsonUrl : (string)Url;} + {_httpsOnly = If( json?.PropertyT("httpsOnly"), out var __jsonHttpsOnly) ? (bool?)__jsonHttpsOnly : HttpsOnly;} + {_gatewayId = If( json?.PropertyT("gatewayIds"), out var __jsonGatewayIds) ? If( __jsonGatewayIds as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : GatewayId;} + {_sourceUrl = If( json?.PropertyT("sourceUrls"), out var __jsonSourceUrls) ? If( __jsonSourceUrls as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : SourceUrl;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApiPortalInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalInstance.FromJson(__k) )) ))() : null : Instance;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApiPortalProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._ssoProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._ssoProperty.ToJson(null,serializationMode) : null, "ssoProperties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != this._public ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._public) : null, "public" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._url)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._url.ToString()) : null, "url" ,container.Add ); + } + AddIf( null != this._httpsOnly ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._httpsOnly) : null, "httpsOnly" ,container.Add ); + if (null != this._gatewayId) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._gatewayId ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("gatewayIds",__w); + } + if (null != this._sourceUrl) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._sourceUrl ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("sourceUrls",__r); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __n in this._instance ) + { + AddIf(__n?.ToJson(null, serializationMode) ,__m.Add); + } + container.Add("instances",__m); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.PowerShell.cs new file mode 100644 index 000000000000..a72b3ce1fc21 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// API portal resource + [System.ComponentModel.TypeConverter(typeof(ApiPortalResourceTypeConverter))] + public partial class ApiPortalResource + { + + /// + /// 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 ApiPortalResource(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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState.CreateFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GatewayId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).GatewayId = (string[]) content.GetValueForProperty("GatewayId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).GatewayId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SourceUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SourceUrl = (string[]) content.GetValueForProperty("SourceUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SourceUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyIssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyIssuerUri = (string) content.GetValueForProperty("SsoPropertyIssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyIssuerUri, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequestMemory, 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 ApiPortalResource(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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState.CreateFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GatewayId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).GatewayId = (string[]) content.GetValueForProperty("GatewayId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).GatewayId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SourceUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SourceUrl = (string[]) content.GetValueForProperty("SourceUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SourceUrl, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyIssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyIssuerUri = (string) content.GetValueForProperty("SsoPropertyIssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).SsoPropertyIssuerUri, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal)this).ResourceRequestMemory, 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.AppPlatform.Models.Api20221101Preview.IApiPortalResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApiPortalResource(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.AppPlatform.Models.Api20221101Preview.IApiPortalResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApiPortalResource(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.AppPlatform.Models.Api20221101Preview.IApiPortalResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// API portal resource + [System.ComponentModel.TypeConverter(typeof(ApiPortalResourceTypeConverter))] + public partial interface IApiPortalResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.TypeConverter.cs new file mode 100644 index 000000000000..05e865a95cf3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApiPortalResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApiPortalResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApiPortalResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApiPortalResource.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.cs new file mode 100644 index 000000000000..ddd9a47131f0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.cs @@ -0,0 +1,384 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API portal resource + public partial class ApiPortalResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// The array of resource Ids of gateway to integrate with API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] GatewayId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).GatewayId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).GatewayId = value ?? null /* arrayOf */; } + + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? HttpsOnly { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).HttpsOnly; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).HttpsOnly = value ?? default(bool); } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Collection of instances belong to API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).Instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).Instance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).Instance = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.ResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ResourceRequest = value; } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ResourceRequestCpu = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ResourceRequestMemory = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for SsoProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.SsoProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoProperty = value; } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceInternal.Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).Url; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).Url = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties _property; + + /// API portal properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalProperties()); set => this._property = value; } + + /// State of the API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ProvisioningState; } + + /// Indicates whether the API portal exposes endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? Public { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).Public; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).Public = value ?? default(bool); } + + /// Cpu allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ResourceRequestCpu; } + + /// Memory allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).ResourceRequestMemory; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku _sku; + + /// Sku of the API portal resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set => this._sku = value; } + + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity = value ?? default(int); } + + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name = value ?? null; } + + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// Collection of OpenAPI source URL locations. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] SourceUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SourceUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SourceUrl = value ?? null /* arrayOf */; } + + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoPropertyClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoPropertyClientId = value ?? null; } + + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoPropertyClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoPropertyClientSecret = value ?? null; } + + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyIssuerUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoPropertyIssuerUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoPropertyIssuerUri = value ?? null; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] SsoPropertyScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoPropertyScope; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).SsoPropertyScope = value ?? null /* arrayOf */; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// URL of the API portal, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalPropertiesInternal)Property).Url; } + + /// Creates an new instance. + public ApiPortalResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// API portal resource + public partial interface IApiPortalResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The array of resource Ids of gateway to integrate with API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The array of resource Ids of gateway to integrate with API portal.", + SerializedName = @"gatewayIds", + PossibleTypes = new [] { typeof(string) })] + string[] GatewayId { get; set; } + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? HttpsOnly { get; set; } + /// Collection of instances belong to API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to API portal.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] Instance { get; } + /// State of the API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the API portal.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? ProvisioningState { get; } + /// Indicates whether the API portal exposes endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the API portal exposes endpoint.", + SerializedName = @"public", + PossibleTypes = new [] { typeof(bool) })] + bool? Public { get; set; } + /// Cpu allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each API portal instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Memory allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each API portal instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string SkuName { get; set; } + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string SkuTier { get; set; } + /// Collection of OpenAPI source URL locations. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of OpenAPI source URL locations.", + SerializedName = @"sourceUrls", + PossibleTypes = new [] { typeof(string) })] + string[] SourceUrl { get; set; } + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientSecret { get; set; } + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of Issuer Identifier", + SerializedName = @"issuerUri", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyIssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + string[] SsoPropertyScope { get; set; } + /// URL of the API portal, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the API portal, exposed when 'public' is true.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; } + + } + /// API portal resource + internal partial interface IApiPortalResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The array of resource Ids of gateway to integrate with API portal. + string[] GatewayId { get; set; } + /// Indicate if only https is allowed. + bool? HttpsOnly { get; set; } + /// Collection of instances belong to API portal. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalInstance[] Instance { get; set; } + /// API portal properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalProperties Property { get; set; } + /// State of the API portal. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState? ProvisioningState { get; set; } + /// Indicates whether the API portal exposes endpoint. + bool? Public { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests ResourceRequest { get; set; } + /// Cpu allocated to each API portal instance + string ResourceRequestCpu { get; set; } + /// Memory allocated to each API portal instance + string ResourceRequestMemory { get; set; } + /// Sku of the API portal resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get; set; } + /// Current capacity of the target resource + int? SkuCapacity { get; set; } + /// Name of the Sku + string SkuName { get; set; } + /// Tier of the Sku + string SkuTier { get; set; } + /// Collection of OpenAPI source URL locations. + string[] SourceUrl { get; set; } + /// Single sign-on related configuration + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties SsoProperty { get; set; } + /// The public identifier for the application + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + string SsoPropertyClientSecret { get; set; } + /// The URI of Issuer Identifier + string SsoPropertyIssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + string[] SsoPropertyScope { get; set; } + /// URL of the API portal, exposed when 'public' is true. + string Url { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.json.cs new file mode 100644 index 000000000000..31ea9f86915c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API portal resource + public partial class ApiPortalResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApiPortalResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku.FromJson(__jsonSku) : Sku;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApiPortalResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..dbb5995b3975 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of API portal resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(ApiPortalResourceCollectionTypeConverter))] + public partial class ApiPortalResourceCollection + { + + /// + /// 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 ApiPortalResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal)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 ApiPortalResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApiPortalResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApiPortalResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of API portal resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(ApiPortalResourceCollectionTypeConverter))] + public partial interface IApiPortalResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..253f0109193d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApiPortalResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApiPortalResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApiPortalResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApiPortalResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.cs new file mode 100644 index 000000000000..38430c39a306 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of API portal resources and a possible link for next set + /// + public partial class ApiPortalResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource[] _value; + + /// Collection of API portal resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ApiPortalResourceCollection() + { + + } + } + /// Object that includes an array of API portal resources and a possible link for next set + public partial interface IApiPortalResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of API portal resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of API portal resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource[] Value { get; set; } + + } + /// Object that includes an array of API portal resources and a possible link for next set + internal partial interface IApiPortalResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of API portal resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.json.cs new file mode 100644 index 000000000000..f936d8d46df4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of API portal resources and a possible link for next set + /// + public partial class ApiPortalResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApiPortalResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApiPortalResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApiPortalResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..10409e6b736f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Resource requests of the API portal + [System.ComponentModel.TypeConverter(typeof(ApiPortalResourceRequestsTypeConverter))] + public partial class ApiPortalResourceRequests + { + + /// + /// 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 ApiPortalResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)this).Memory, 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 ApiPortalResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal)this).Memory, 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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApiPortalResourceRequests(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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApiPortalResourceRequests(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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Resource requests of the API portal + [System.ComponentModel.TypeConverter(typeof(ApiPortalResourceRequestsTypeConverter))] + public partial interface IApiPortalResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..2ecd186d78e4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApiPortalResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApiPortalResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApiPortalResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApiPortalResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.cs new file mode 100644 index 000000000000..99d358942687 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource requests of the API portal + public partial class ApiPortalResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// Cpu allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private string _memory; + + /// Memory allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequestsInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Creates an new instance. + public ApiPortalResourceRequests() + { + + } + } + /// Resource requests of the API portal + public partial interface IApiPortalResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Cpu allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each API portal instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// Memory allocated to each API portal instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each API portal instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + + } + /// Resource requests of the API portal + internal partial interface IApiPortalResourceRequestsInternal + + { + /// Cpu allocated to each API portal instance + string Cpu { get; set; } + /// Memory allocated to each API portal instance + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.json.cs new file mode 100644 index 000000000000..bd59df0bede3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApiPortalResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource requests of the API portal + public partial class ApiPortalResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApiPortalResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApiPortalResourceRequests(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.PowerShell.cs new file mode 100644 index 000000000000..1a6c69af0072 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.PowerShell.cs @@ -0,0 +1,488 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// App resource payload + [System.ComponentModel.TypeConverter(typeof(AppResourceTypeConverter))] + public partial class AppResource + { + + /// + /// 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 AppResource(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.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ManagedIdentityPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("TemporaryDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk) content.GetValueForProperty("TemporaryDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDiskTypeConverter.ConvertFrom); + } + if (content.Contains("PersistentDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk) content.GetValueForProperty("PersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDiskTypeConverter.ConvertFrom); + } + if (content.Contains("IngressSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings) content.GetValueForProperty("IngressSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("VnetAddon")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddon = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons) content.GetValueForProperty("VnetAddon",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddon, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddonsTypeConverter.ConvertFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("AddonConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).AddonConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) content.GetValueForProperty("AddonConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).AddonConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesAddonConfigsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState.CreateFrom); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CustomPersistentDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).CustomPersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[]) content.GetValueForProperty("CustomPersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).CustomPersistentDisk, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableEndToEndTl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).EnableEndToEndTl = (bool?) content.GetValueForProperty("EnableEndToEndTl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).EnableEndToEndTl, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoadedCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).LoadedCertificate = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[]) content.GetValueForProperty("LoadedCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).LoadedCertificate, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LoadedCertificateTypeConverter.ConvertFrom)); + } + if (content.Contains("TemporaryDiskMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDiskMountPath = (string) content.GetValueForProperty("TemporaryDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDiskMountPath, global::System.Convert.ToString); + } + if (content.Contains("PersistentDiskMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskMountPath = (string) content.GetValueForProperty("PersistentDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskMountPath, global::System.Convert.ToString); + } + if (content.Contains("IngressSettingClientAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingClientAuth = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth) content.GetValueForProperty("IngressSettingClientAuth",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingClientAuth, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuthTypeConverter.ConvertFrom); + } + if (content.Contains("IngressSettingSessionAffinity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSessionAffinity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity?) content.GetValueForProperty("IngressSettingSessionAffinity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSessionAffinity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity.CreateFrom); + } + if (content.Contains("IngressSettingBackendProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingBackendProtocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol?) content.GetValueForProperty("IngressSettingBackendProtocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingBackendProtocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol.CreateFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("TemporaryDiskSizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDiskSizeInGb = (int?) content.GetValueForProperty("TemporaryDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PersistentDiskSizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskSizeInGb = (int?) content.GetValueForProperty("PersistentDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PersistentDiskUsedInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskUsedInGb = (int?) content.GetValueForProperty("PersistentDiskUsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskUsedInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VnetAddonPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddonPublicEndpoint = (bool?) content.GetValueForProperty("VnetAddonPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddonPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VnetAddonPublicEndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddonPublicEndpointUrl = (string) content.GetValueForProperty("VnetAddonPublicEndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddonPublicEndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("IngressSettingReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressSettingReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingReadTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressSettingSendTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSendTimeoutInSecond = (int?) content.GetValueForProperty("IngressSettingSendTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSendTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressSettingSessionCookieMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSessionCookieMaxAge = (int?) content.GetValueForProperty("IngressSettingSessionCookieMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSessionCookieMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ClientAuthCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).ClientAuthCertificate = (string[]) content.GetValueForProperty("ClientAuthCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).ClientAuthCertificate, __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 AppResource(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.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ManagedIdentityPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("TemporaryDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk) content.GetValueForProperty("TemporaryDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDiskTypeConverter.ConvertFrom); + } + if (content.Contains("PersistentDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk) content.GetValueForProperty("PersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDiskTypeConverter.ConvertFrom); + } + if (content.Contains("IngressSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings) content.GetValueForProperty("IngressSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("VnetAddon")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddon = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons) content.GetValueForProperty("VnetAddon",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddon, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddonsTypeConverter.ConvertFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("AddonConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).AddonConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) content.GetValueForProperty("AddonConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).AddonConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesAddonConfigsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState.CreateFrom); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CustomPersistentDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).CustomPersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[]) content.GetValueForProperty("CustomPersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).CustomPersistentDisk, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableEndToEndTl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).EnableEndToEndTl = (bool?) content.GetValueForProperty("EnableEndToEndTl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).EnableEndToEndTl, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoadedCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).LoadedCertificate = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[]) content.GetValueForProperty("LoadedCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).LoadedCertificate, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LoadedCertificateTypeConverter.ConvertFrom)); + } + if (content.Contains("TemporaryDiskMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDiskMountPath = (string) content.GetValueForProperty("TemporaryDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDiskMountPath, global::System.Convert.ToString); + } + if (content.Contains("PersistentDiskMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskMountPath = (string) content.GetValueForProperty("PersistentDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskMountPath, global::System.Convert.ToString); + } + if (content.Contains("IngressSettingClientAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingClientAuth = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth) content.GetValueForProperty("IngressSettingClientAuth",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingClientAuth, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuthTypeConverter.ConvertFrom); + } + if (content.Contains("IngressSettingSessionAffinity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSessionAffinity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity?) content.GetValueForProperty("IngressSettingSessionAffinity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSessionAffinity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity.CreateFrom); + } + if (content.Contains("IngressSettingBackendProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingBackendProtocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol?) content.GetValueForProperty("IngressSettingBackendProtocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingBackendProtocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol.CreateFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("TemporaryDiskSizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDiskSizeInGb = (int?) content.GetValueForProperty("TemporaryDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).TemporaryDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PersistentDiskSizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskSizeInGb = (int?) content.GetValueForProperty("PersistentDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PersistentDiskUsedInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskUsedInGb = (int?) content.GetValueForProperty("PersistentDiskUsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).PersistentDiskUsedInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VnetAddonPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddonPublicEndpoint = (bool?) content.GetValueForProperty("VnetAddonPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddonPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VnetAddonPublicEndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddonPublicEndpointUrl = (string) content.GetValueForProperty("VnetAddonPublicEndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).VnetAddonPublicEndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("IngressSettingReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressSettingReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingReadTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressSettingSendTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSendTimeoutInSecond = (int?) content.GetValueForProperty("IngressSettingSendTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSendTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressSettingSessionCookieMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSessionCookieMaxAge = (int?) content.GetValueForProperty("IngressSettingSessionCookieMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).IngressSettingSessionCookieMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ClientAuthCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).ClientAuthCertificate = (string[]) content.GetValueForProperty("ClientAuthCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal)this).ClientAuthCertificate, __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.AppPlatform.Models.Api20221101Preview.IAppResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppResource(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.AppPlatform.Models.Api20221101Preview.IAppResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppResource(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.AppPlatform.Models.Api20221101Preview.IAppResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// App resource payload + [System.ComponentModel.TypeConverter(typeof(AppResourceTypeConverter))] + public partial interface IAppResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.TypeConverter.cs new file mode 100644 index 000000000000..3a8c9ed78e8c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAppResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppResource.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/appplatform/generated/api/Models/Api20221101Preview/AppResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.cs new file mode 100644 index 000000000000..2243f79acdcd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.cs @@ -0,0 +1,556 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// App resource payload + public partial class AppResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Collection of addons + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).AddonConfig; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).AddonConfig = value ?? null /* model class */; } + + /// Collection of certificate resource id. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] ClientAuthCertificate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).ClientAuthCertificate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).ClientAuthCertificate = value ?? null /* arrayOf */; } + + /// List of custom persistent disks + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).CustomPersistentDisk; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).CustomPersistentDisk = value ?? null /* arrayOf */; } + + /// Indicate if end to end TLS is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? EnableEndToEndTl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).EnableEndToEndTl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).EnableEndToEndTl = value ?? default(bool); } + + /// Fully qualified dns Name. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Fqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).Fqdn; } + + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? HttpsOnly { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).HttpsOnly; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).HttpsOnly = value ?? default(bool); } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties _identity; + + /// The Managed Identity type of the app resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ManagedIdentityProperties()); set => this._identity = value; } + + /// Principal Id of system-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)Identity).PrincipalId = value ?? null; } + + /// Tenant Id of system-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)Identity).TenantId = value ?? null; } + + /// Type of the managed identity + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType)""); } + + /// Properties of user-assigned managed identities + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// How ingress should communicate with this app backend service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? IngressSettingBackendProtocol { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingBackendProtocol; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingBackendProtocol = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol)""); } + + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressSettingReadTimeoutInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingReadTimeoutInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingReadTimeoutInSecond = value ?? default(int); } + + /// Ingress send time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressSettingSendTimeoutInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingSendTimeoutInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingSendTimeoutInSecond = value ?? default(int); } + + /// Type of the affinity, set this to Cookie to enable session affinity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? IngressSettingSessionAffinity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingSessionAffinity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingSessionAffinity = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity)""); } + + /// Time in seconds until the cookie expires. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressSettingSessionCookieMaxAge { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingSessionCookieMaxAge; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingSessionCookieMaxAge = value ?? default(int); } + + /// Collection of loaded certificates + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).LoadedCertificate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).LoadedCertificate = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _location; + + /// The GEO location of the application, always the same with its parent resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Fqdn + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.Fqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).Fqdn; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).Fqdn = value; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ManagedIdentityProperties()); set { {_identity = value;} } } + + /// Internal Acessors for IngressSetting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.IngressSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSetting = value; } + + /// Internal Acessors for IngressSettingClientAuth + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.IngressSettingClientAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingClientAuth; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).IngressSettingClientAuth = value; } + + /// Internal Acessors for PersistentDisk + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.PersistentDisk { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDisk; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDisk = value; } + + /// Internal Acessors for PersistentDiskUsedInGb + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.PersistentDiskUsedInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDiskUsedInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDiskUsedInGb = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for TemporaryDisk + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.TemporaryDisk { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).TemporaryDisk; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).TemporaryDisk = value; } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).Url; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).Url = value; } + + /// Internal Acessors for VnetAddon + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.VnetAddon { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).VnetAddon; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).VnetAddon = value; } + + /// Internal Acessors for VnetAddonPublicEndpointUrl + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceInternal.VnetAddonPublicEndpointUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).VnetAddonPublicEndpointUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).VnetAddonPublicEndpointUrl = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Mount path of the persistent disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PersistentDiskMountPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDiskMountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDiskMountPath = value ?? null; } + + /// Size of the persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? PersistentDiskSizeInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDiskSizeInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDiskSizeInGb = value ?? default(int); } + + /// Size of the used persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? PersistentDiskUsedInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).PersistentDiskUsedInGb; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties _property; + + /// Properties of the App resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceProperties()); set => this._property = value; } + + /// Provisioning state of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).ProvisioningState; } + + /// Indicates whether the App exposes public endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? Public { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).Public; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).Public = value ?? default(bool); } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// Mount path of the temporary disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string TemporaryDiskMountPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).TemporaryDiskMountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).TemporaryDiskMountPath = value ?? null; } + + /// Size of the temporary disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? TemporaryDiskSizeInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).TemporaryDiskSizeInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).TemporaryDiskSizeInGb = value ?? default(int); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// URL of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).Url; } + + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? VnetAddonPublicEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).VnetAddonPublicEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).VnetAddonPublicEndpoint = value ?? default(bool); } + + /// URL of the App in vnet injection instance which could be accessed from internet + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string VnetAddonPublicEndpointUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)Property).VnetAddonPublicEndpointUrl; } + + /// Creates an new instance. + public AppResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// App resource payload + public partial interface IAppResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Collection of addons + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of addons", + SerializedName = @"addonConfigs", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get; set; } + /// Collection of certificate resource id. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of certificate resource id.", + SerializedName = @"certificates", + PossibleTypes = new [] { typeof(string) })] + string[] ClientAuthCertificate { get; set; } + /// List of custom persistent disks + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of custom persistent disks", + SerializedName = @"customPersistentDisks", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get; set; } + /// Indicate if end to end TLS is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if end to end TLS is enabled.", + SerializedName = @"enableEndToEndTLS", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableEndToEndTl { get; set; } + /// Fully qualified dns Name. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified dns Name.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { get; } + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? HttpsOnly { get; set; } + /// Principal Id of system-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal Id of system-assigned managed identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// Tenant Id of system-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id of system-assigned managed identity.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// Type of the managed identity + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the managed identity", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? IdentityType { get; set; } + /// Properties of user-assigned managed identities + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Properties of user-assigned managed identities", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities IdentityUserAssignedIdentity { get; set; } + /// How ingress should communicate with this app backend service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How ingress should communicate with this app backend service.", + SerializedName = @"backendProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? IngressSettingBackendProtocol { get; set; } + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? IngressSettingReadTimeoutInSecond { get; set; } + /// Ingress send time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress send time out in seconds.", + SerializedName = @"sendTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? IngressSettingSendTimeoutInSecond { get; set; } + /// Type of the affinity, set this to Cookie to enable session affinity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the affinity, set this to Cookie to enable session affinity.", + SerializedName = @"sessionAffinity", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? IngressSettingSessionAffinity { get; set; } + /// Time in seconds until the cookie expires. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time in seconds until the cookie expires.", + SerializedName = @"sessionCookieMaxAge", + PossibleTypes = new [] { typeof(int) })] + int? IngressSettingSessionCookieMaxAge { get; set; } + /// Collection of loaded certificates + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of loaded certificates", + SerializedName = @"loadedCertificates", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get; set; } + /// The GEO location of the application, always the same with its parent resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The GEO location of the application, always the same with its parent resource", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// Mount path of the persistent disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the persistent disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string PersistentDiskMountPath { get; set; } + /// Size of the persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the persistent disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + int? PersistentDiskSizeInGb { get; set; } + /// Size of the used persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Size of the used persistent disk in GB", + SerializedName = @"usedInGB", + PossibleTypes = new [] { typeof(int) })] + int? PersistentDiskUsedInGb { get; } + /// Provisioning state of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the App", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? ProvisioningState { get; } + /// Indicates whether the App exposes public endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App exposes public endpoint", + SerializedName = @"public", + PossibleTypes = new [] { typeof(bool) })] + bool? Public { get; set; } + /// Mount path of the temporary disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the temporary disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string TemporaryDiskMountPath { get; set; } + /// Size of the temporary disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the temporary disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + int? TemporaryDiskSizeInGb { get; set; } + /// URL of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the App", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; } + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.", + SerializedName = @"publicEndpoint", + PossibleTypes = new [] { typeof(bool) })] + bool? VnetAddonPublicEndpoint { get; set; } + /// URL of the App in vnet injection instance which could be accessed from internet + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the App in vnet injection instance which could be accessed from internet", + SerializedName = @"publicEndpointUrl", + PossibleTypes = new [] { typeof(string) })] + string VnetAddonPublicEndpointUrl { get; } + + } + /// App resource payload + internal partial interface IAppResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Collection of addons + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get; set; } + /// Collection of certificate resource id. + string[] ClientAuthCertificate { get; set; } + /// List of custom persistent disks + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get; set; } + /// Indicate if end to end TLS is enabled. + bool? EnableEndToEndTl { get; set; } + /// Fully qualified dns Name. + string Fqdn { get; set; } + /// Indicate if only https is allowed. + bool? HttpsOnly { get; set; } + /// The Managed Identity type of the app resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties Identity { get; set; } + /// Principal Id of system-assigned managed identity. + string IdentityPrincipalId { get; set; } + /// Tenant Id of system-assigned managed identity. + string IdentityTenantId { get; set; } + /// Type of the managed identity + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? IdentityType { get; set; } + /// Properties of user-assigned managed identities + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities IdentityUserAssignedIdentity { get; set; } + /// App ingress settings payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings IngressSetting { get; set; } + /// How ingress should communicate with this app backend service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? IngressSettingBackendProtocol { get; set; } + /// Client-Certification Authentication. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth IngressSettingClientAuth { get; set; } + /// Ingress read time out in seconds. + int? IngressSettingReadTimeoutInSecond { get; set; } + /// Ingress send time out in seconds. + int? IngressSettingSendTimeoutInSecond { get; set; } + /// Type of the affinity, set this to Cookie to enable session affinity. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? IngressSettingSessionAffinity { get; set; } + /// Time in seconds until the cookie expires. + int? IngressSettingSessionCookieMaxAge { get; set; } + /// Collection of loaded certificates + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get; set; } + /// The GEO location of the application, always the same with its parent resource + string Location { get; set; } + /// Persistent disk settings + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk PersistentDisk { get; set; } + /// Mount path of the persistent disk + string PersistentDiskMountPath { get; set; } + /// Size of the persistent disk in GB + int? PersistentDiskSizeInGb { get; set; } + /// Size of the used persistent disk in GB + int? PersistentDiskUsedInGb { get; set; } + /// Properties of the App resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties Property { get; set; } + /// Provisioning state of the App + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? ProvisioningState { get; set; } + /// Indicates whether the App exposes public endpoint + bool? Public { get; set; } + /// Temporary disk settings + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk TemporaryDisk { get; set; } + /// Mount path of the temporary disk + string TemporaryDiskMountPath { get; set; } + /// Size of the temporary disk in GB + int? TemporaryDiskSizeInGb { get; set; } + /// URL of the App + string Url { get; set; } + /// Additional App settings in vnet injection instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons VnetAddon { get; set; } + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + bool? VnetAddonPublicEndpoint { get; set; } + /// URL of the App in vnet injection instance which could be accessed from internet + string VnetAddonPublicEndpointUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.json.cs new file mode 100644 index 000000000000..750d7aeb0faa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// App resource payload + public partial class AppResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AppResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceProperties.FromJson(__jsonProperties) : Property;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ManagedIdentityProperties.FromJson(__jsonIdentity) : Identity;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AppResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..98e77aa1e509 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Object that includes an array of App resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(AppResourceCollectionTypeConverter))] + public partial class AppResourceCollection + { + + /// + /// 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 AppResourceCollection(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.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal)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 AppResourceCollection(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.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IAppResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppResourceCollection(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.AppPlatform.Models.Api20221101Preview.IAppResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppResourceCollection(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.AppPlatform.Models.Api20221101Preview.IAppResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of App resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(AppResourceCollectionTypeConverter))] + public partial interface IAppResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..a51fc1eac824 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAppResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.cs new file mode 100644 index 000000000000..19f4c3d57ff2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Object that includes an array of App resources and a possible link for next set + public partial class AppResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource[] _value; + + /// Collection of App resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public AppResourceCollection() + { + + } + } + /// Object that includes an array of App resources and a possible link for next set + public partial interface IAppResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of App resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of App resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource[] Value { get; set; } + + } + /// Object that includes an array of App resources and a possible link for next set + internal partial interface IAppResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of App resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.json.cs new file mode 100644 index 000000000000..f7b0a38abb20 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Object that includes an array of App resources and a possible link for next set + public partial class AppResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AppResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IAppResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AppResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..6b2b43a671ee --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.PowerShell.cs @@ -0,0 +1,354 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// App resource properties payload + [System.ComponentModel.TypeConverter(typeof(AppResourcePropertiesTypeConverter))] + public partial class AppResourceProperties + { + + /// + /// 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 AppResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TemporaryDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk) content.GetValueForProperty("TemporaryDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDiskTypeConverter.ConvertFrom); + } + if (content.Contains("PersistentDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk) content.GetValueForProperty("PersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDiskTypeConverter.ConvertFrom); + } + if (content.Contains("VnetAddon")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddon = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons) content.GetValueForProperty("VnetAddon",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddon, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddonsTypeConverter.ConvertFrom); + } + if (content.Contains("IngressSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings) content.GetValueForProperty("IngressSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("AddonConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).AddonConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) content.GetValueForProperty("AddonConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).AddonConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesAddonConfigsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState.CreateFrom); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CustomPersistentDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).CustomPersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[]) content.GetValueForProperty("CustomPersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).CustomPersistentDisk, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableEndToEndTl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).EnableEndToEndTl = (bool?) content.GetValueForProperty("EnableEndToEndTl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).EnableEndToEndTl, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoadedCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).LoadedCertificate = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[]) content.GetValueForProperty("LoadedCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).LoadedCertificate, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LoadedCertificateTypeConverter.ConvertFrom)); + } + if (content.Contains("TemporaryDiskMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDiskMountPath = (string) content.GetValueForProperty("TemporaryDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDiskMountPath, global::System.Convert.ToString); + } + if (content.Contains("PersistentDiskMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskMountPath = (string) content.GetValueForProperty("PersistentDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskMountPath, global::System.Convert.ToString); + } + if (content.Contains("IngressSettingClientAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingClientAuth = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth) content.GetValueForProperty("IngressSettingClientAuth",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingClientAuth, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuthTypeConverter.ConvertFrom); + } + if (content.Contains("IngressSettingSessionAffinity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSessionAffinity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity?) content.GetValueForProperty("IngressSettingSessionAffinity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSessionAffinity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity.CreateFrom); + } + if (content.Contains("IngressSettingBackendProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingBackendProtocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol?) content.GetValueForProperty("IngressSettingBackendProtocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingBackendProtocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol.CreateFrom); + } + if (content.Contains("TemporaryDiskSizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDiskSizeInGb = (int?) content.GetValueForProperty("TemporaryDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PersistentDiskSizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskSizeInGb = (int?) content.GetValueForProperty("PersistentDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PersistentDiskUsedInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskUsedInGb = (int?) content.GetValueForProperty("PersistentDiskUsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskUsedInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VnetAddonPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddonPublicEndpoint = (bool?) content.GetValueForProperty("VnetAddonPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddonPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VnetAddonPublicEndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddonPublicEndpointUrl = (string) content.GetValueForProperty("VnetAddonPublicEndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddonPublicEndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("IngressSettingReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressSettingReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingReadTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressSettingSendTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSendTimeoutInSecond = (int?) content.GetValueForProperty("IngressSettingSendTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSendTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressSettingSessionCookieMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSessionCookieMaxAge = (int?) content.GetValueForProperty("IngressSettingSessionCookieMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSessionCookieMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ClientAuthCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).ClientAuthCertificate = (string[]) content.GetValueForProperty("ClientAuthCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).ClientAuthCertificate, __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 AppResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TemporaryDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk) content.GetValueForProperty("TemporaryDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDiskTypeConverter.ConvertFrom); + } + if (content.Contains("PersistentDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk) content.GetValueForProperty("PersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDiskTypeConverter.ConvertFrom); + } + if (content.Contains("VnetAddon")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddon = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons) content.GetValueForProperty("VnetAddon",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddon, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddonsTypeConverter.ConvertFrom); + } + if (content.Contains("IngressSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings) content.GetValueForProperty("IngressSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("AddonConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).AddonConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) content.GetValueForProperty("AddonConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).AddonConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesAddonConfigsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState.CreateFrom); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CustomPersistentDisk")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).CustomPersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[]) content.GetValueForProperty("CustomPersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).CustomPersistentDisk, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("EnableEndToEndTl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).EnableEndToEndTl = (bool?) content.GetValueForProperty("EnableEndToEndTl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).EnableEndToEndTl, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LoadedCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).LoadedCertificate = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[]) content.GetValueForProperty("LoadedCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).LoadedCertificate, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LoadedCertificateTypeConverter.ConvertFrom)); + } + if (content.Contains("TemporaryDiskMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDiskMountPath = (string) content.GetValueForProperty("TemporaryDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDiskMountPath, global::System.Convert.ToString); + } + if (content.Contains("PersistentDiskMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskMountPath = (string) content.GetValueForProperty("PersistentDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskMountPath, global::System.Convert.ToString); + } + if (content.Contains("IngressSettingClientAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingClientAuth = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth) content.GetValueForProperty("IngressSettingClientAuth",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingClientAuth, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuthTypeConverter.ConvertFrom); + } + if (content.Contains("IngressSettingSessionAffinity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSessionAffinity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity?) content.GetValueForProperty("IngressSettingSessionAffinity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSessionAffinity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity.CreateFrom); + } + if (content.Contains("IngressSettingBackendProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingBackendProtocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol?) content.GetValueForProperty("IngressSettingBackendProtocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingBackendProtocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol.CreateFrom); + } + if (content.Contains("TemporaryDiskSizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDiskSizeInGb = (int?) content.GetValueForProperty("TemporaryDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).TemporaryDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PersistentDiskSizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskSizeInGb = (int?) content.GetValueForProperty("PersistentDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PersistentDiskUsedInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskUsedInGb = (int?) content.GetValueForProperty("PersistentDiskUsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).PersistentDiskUsedInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VnetAddonPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddonPublicEndpoint = (bool?) content.GetValueForProperty("VnetAddonPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddonPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("VnetAddonPublicEndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddonPublicEndpointUrl = (string) content.GetValueForProperty("VnetAddonPublicEndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).VnetAddonPublicEndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("IngressSettingReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressSettingReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingReadTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressSettingSendTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSendTimeoutInSecond = (int?) content.GetValueForProperty("IngressSettingSendTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSendTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IngressSettingSessionCookieMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSessionCookieMaxAge = (int?) content.GetValueForProperty("IngressSettingSessionCookieMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).IngressSettingSessionCookieMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ClientAuthCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).ClientAuthCertificate = (string[]) content.GetValueForProperty("ClientAuthCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal)this).ClientAuthCertificate, __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.AppPlatform.Models.Api20221101Preview.IAppResourceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppResourceProperties(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.AppPlatform.Models.Api20221101Preview.IAppResourceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppResourceProperties(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.AppPlatform.Models.Api20221101Preview.IAppResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// App resource properties payload + [System.ComponentModel.TypeConverter(typeof(AppResourcePropertiesTypeConverter))] + public partial interface IAppResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..9120a6f71322 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppResourcePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAppResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppResourceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppResourceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppResourceProperties.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/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.cs new file mode 100644 index 000000000000..1584944199c0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.cs @@ -0,0 +1,443 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// App resource properties payload + public partial class AppResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs _addonConfig; + + /// Collection of addons + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get => (this._addonConfig = this._addonConfig ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesAddonConfigs()); set => this._addonConfig = value; } + + /// Collection of certificate resource id. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] ClientAuthCertificate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).ClientAuthCertificate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).ClientAuthCertificate = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] _customPersistentDisk; + + /// List of custom persistent disks + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get => this._customPersistentDisk; set => this._customPersistentDisk = value; } + + /// Backing field for property. + private bool? _enableEndToEndTl; + + /// Indicate if end to end TLS is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? EnableEndToEndTl { get => this._enableEndToEndTl; set => this._enableEndToEndTl = value; } + + /// Backing field for property. + private string _fqdn; + + /// Fully qualified dns Name. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Fqdn { get => this._fqdn; } + + /// Backing field for property. + private bool? _httpsOnly; + + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? HttpsOnly { get => this._httpsOnly; set => this._httpsOnly = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings _ingressSetting; + + /// App ingress settings payload. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings IngressSetting { get => (this._ingressSetting = this._ingressSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettings()); set => this._ingressSetting = value; } + + /// How ingress should communicate with this app backend service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? IngressSettingBackendProtocol { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).BackendProtocol; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).BackendProtocol = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol)""); } + + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressSettingReadTimeoutInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).ReadTimeoutInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).ReadTimeoutInSecond = value ?? default(int); } + + /// Ingress send time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressSettingSendTimeoutInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).SendTimeoutInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).SendTimeoutInSecond = value ?? default(int); } + + /// Type of the affinity, set this to Cookie to enable session affinity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? IngressSettingSessionAffinity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).SessionAffinity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).SessionAffinity = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity)""); } + + /// Time in seconds until the cookie expires. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressSettingSessionCookieMaxAge { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).SessionCookieMaxAge; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).SessionCookieMaxAge = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] _loadedCertificate; + + /// Collection of loaded certificates + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get => this._loadedCertificate; set => this._loadedCertificate = value; } + + /// Internal Acessors for Fqdn + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.Fqdn { get => this._fqdn; set { {_fqdn = value;} } } + + /// Internal Acessors for IngressSetting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.IngressSetting { get => (this._ingressSetting = this._ingressSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettings()); set { {_ingressSetting = value;} } } + + /// Internal Acessors for IngressSettingClientAuth + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.IngressSettingClientAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).ClientAuth; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)IngressSetting).ClientAuth = value; } + + /// Internal Acessors for PersistentDisk + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.PersistentDisk { get => (this._persistentDisk = this._persistentDisk ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDisk()); set { {_persistentDisk = value;} } } + + /// Internal Acessors for PersistentDiskUsedInGb + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.PersistentDiskUsedInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)PersistentDisk).UsedInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)PersistentDisk).UsedInGb = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for TemporaryDisk + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.TemporaryDisk { get => (this._temporaryDisk = this._temporaryDisk ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDisk()); set { {_temporaryDisk = value;} } } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.Url { get => this._url; set { {_url = value;} } } + + /// Internal Acessors for VnetAddon + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.VnetAddon { get => (this._vnetAddon = this._vnetAddon ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddons()); set { {_vnetAddon = value;} } } + + /// Internal Acessors for VnetAddonPublicEndpointUrl + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesInternal.VnetAddonPublicEndpointUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)VnetAddon).PublicEndpointUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)VnetAddon).PublicEndpointUrl = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk _persistentDisk; + + /// Persistent disk settings + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk PersistentDisk { get => (this._persistentDisk = this._persistentDisk ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDisk()); set => this._persistentDisk = value; } + + /// Mount path of the persistent disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PersistentDiskMountPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)PersistentDisk).MountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)PersistentDisk).MountPath = value ?? null; } + + /// Size of the persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? PersistentDiskSizeInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)PersistentDisk).SizeInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)PersistentDisk).SizeInGb = value ?? default(int); } + + /// Size of the used persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? PersistentDiskUsedInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)PersistentDisk).UsedInGb; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? _provisioningState; + + /// Provisioning state of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private bool? _public; + + /// Indicates whether the App exposes public endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? Public { get => this._public; set => this._public = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk _temporaryDisk; + + /// Temporary disk settings + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk TemporaryDisk { get => (this._temporaryDisk = this._temporaryDisk ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDisk()); set => this._temporaryDisk = value; } + + /// Mount path of the temporary disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string TemporaryDiskMountPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)TemporaryDisk).MountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)TemporaryDisk).MountPath = value ?? null; } + + /// Size of the temporary disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? TemporaryDiskSizeInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)TemporaryDisk).SizeInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)TemporaryDisk).SizeInGb = value ?? default(int); } + + /// Backing field for property. + private string _url; + + /// URL of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Url { get => this._url; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons _vnetAddon; + + /// Additional App settings in vnet injection instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons VnetAddon { get => (this._vnetAddon = this._vnetAddon ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddons()); set => this._vnetAddon = value; } + + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? VnetAddonPublicEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)VnetAddon).PublicEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)VnetAddon).PublicEndpoint = value ?? default(bool); } + + /// URL of the App in vnet injection instance which could be accessed from internet + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string VnetAddonPublicEndpointUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)VnetAddon).PublicEndpointUrl; } + + /// Creates an new instance. + public AppResourceProperties() + { + + } + } + /// App resource properties payload + public partial interface IAppResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Collection of addons + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of addons", + SerializedName = @"addonConfigs", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get; set; } + /// Collection of certificate resource id. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of certificate resource id.", + SerializedName = @"certificates", + PossibleTypes = new [] { typeof(string) })] + string[] ClientAuthCertificate { get; set; } + /// List of custom persistent disks + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of custom persistent disks", + SerializedName = @"customPersistentDisks", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get; set; } + /// Indicate if end to end TLS is enabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if end to end TLS is enabled.", + SerializedName = @"enableEndToEndTLS", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableEndToEndTl { get; set; } + /// Fully qualified dns Name. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified dns Name.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { get; } + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? HttpsOnly { get; set; } + /// How ingress should communicate with this app backend service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How ingress should communicate with this app backend service.", + SerializedName = @"backendProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? IngressSettingBackendProtocol { get; set; } + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? IngressSettingReadTimeoutInSecond { get; set; } + /// Ingress send time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress send time out in seconds.", + SerializedName = @"sendTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? IngressSettingSendTimeoutInSecond { get; set; } + /// Type of the affinity, set this to Cookie to enable session affinity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the affinity, set this to Cookie to enable session affinity.", + SerializedName = @"sessionAffinity", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? IngressSettingSessionAffinity { get; set; } + /// Time in seconds until the cookie expires. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time in seconds until the cookie expires.", + SerializedName = @"sessionCookieMaxAge", + PossibleTypes = new [] { typeof(int) })] + int? IngressSettingSessionCookieMaxAge { get; set; } + /// Collection of loaded certificates + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of loaded certificates", + SerializedName = @"loadedCertificates", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get; set; } + /// Mount path of the persistent disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the persistent disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string PersistentDiskMountPath { get; set; } + /// Size of the persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the persistent disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + int? PersistentDiskSizeInGb { get; set; } + /// Size of the used persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Size of the used persistent disk in GB", + SerializedName = @"usedInGB", + PossibleTypes = new [] { typeof(int) })] + int? PersistentDiskUsedInGb { get; } + /// Provisioning state of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the App", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? ProvisioningState { get; } + /// Indicates whether the App exposes public endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App exposes public endpoint", + SerializedName = @"public", + PossibleTypes = new [] { typeof(bool) })] + bool? Public { get; set; } + /// Mount path of the temporary disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the temporary disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string TemporaryDiskMountPath { get; set; } + /// Size of the temporary disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the temporary disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + int? TemporaryDiskSizeInGb { get; set; } + /// URL of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the App", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; } + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.", + SerializedName = @"publicEndpoint", + PossibleTypes = new [] { typeof(bool) })] + bool? VnetAddonPublicEndpoint { get; set; } + /// URL of the App in vnet injection instance which could be accessed from internet + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the App in vnet injection instance which could be accessed from internet", + SerializedName = @"publicEndpointUrl", + PossibleTypes = new [] { typeof(string) })] + string VnetAddonPublicEndpointUrl { get; } + + } + /// App resource properties payload + internal partial interface IAppResourcePropertiesInternal + + { + /// Collection of addons + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get; set; } + /// Collection of certificate resource id. + string[] ClientAuthCertificate { get; set; } + /// List of custom persistent disks + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get; set; } + /// Indicate if end to end TLS is enabled. + bool? EnableEndToEndTl { get; set; } + /// Fully qualified dns Name. + string Fqdn { get; set; } + /// Indicate if only https is allowed. + bool? HttpsOnly { get; set; } + /// App ingress settings payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings IngressSetting { get; set; } + /// How ingress should communicate with this app backend service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? IngressSettingBackendProtocol { get; set; } + /// Client-Certification Authentication. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth IngressSettingClientAuth { get; set; } + /// Ingress read time out in seconds. + int? IngressSettingReadTimeoutInSecond { get; set; } + /// Ingress send time out in seconds. + int? IngressSettingSendTimeoutInSecond { get; set; } + /// Type of the affinity, set this to Cookie to enable session affinity. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? IngressSettingSessionAffinity { get; set; } + /// Time in seconds until the cookie expires. + int? IngressSettingSessionCookieMaxAge { get; set; } + /// Collection of loaded certificates + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get; set; } + /// Persistent disk settings + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk PersistentDisk { get; set; } + /// Mount path of the persistent disk + string PersistentDiskMountPath { get; set; } + /// Size of the persistent disk in GB + int? PersistentDiskSizeInGb { get; set; } + /// Size of the used persistent disk in GB + int? PersistentDiskUsedInGb { get; set; } + /// Provisioning state of the App + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? ProvisioningState { get; set; } + /// Indicates whether the App exposes public endpoint + bool? Public { get; set; } + /// Temporary disk settings + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk TemporaryDisk { get; set; } + /// Mount path of the temporary disk + string TemporaryDiskMountPath { get; set; } + /// Size of the temporary disk in GB + int? TemporaryDiskSizeInGb { get; set; } + /// URL of the App + string Url { get; set; } + /// Additional App settings in vnet injection instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons VnetAddon { get; set; } + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + bool? VnetAddonPublicEndpoint { get; set; } + /// URL of the App in vnet injection instance which could be accessed from internet + string VnetAddonPublicEndpointUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.json.cs new file mode 100644 index 000000000000..a8c629760cb2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourceProperties.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// App resource properties payload + public partial class AppResourceProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AppResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_temporaryDisk = If( json?.PropertyT("temporaryDisk"), out var __jsonTemporaryDisk) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TemporaryDisk.FromJson(__jsonTemporaryDisk) : TemporaryDisk;} + {_persistentDisk = If( json?.PropertyT("persistentDisk"), out var __jsonPersistentDisk) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PersistentDisk.FromJson(__jsonPersistentDisk) : PersistentDisk;} + {_vnetAddon = If( json?.PropertyT("vnetAddons"), out var __jsonVnetAddons) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppVNetAddons.FromJson(__jsonVnetAddons) : VnetAddon;} + {_ingressSetting = If( json?.PropertyT("ingressSettings"), out var __jsonIngressSettings) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettings.FromJson(__jsonIngressSettings) : IngressSetting;} + {_public = If( json?.PropertyT("public"), out var __jsonPublic) ? (bool?)__jsonPublic : Public;} + {_url = If( json?.PropertyT("url"), out var __jsonUrl) ? (string)__jsonUrl : (string)Url;} + {_addonConfig = If( json?.PropertyT("addonConfigs"), out var __jsonAddonConfigs) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesAddonConfigs.FromJson(__jsonAddonConfigs) : AddonConfig;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_fqdn = If( json?.PropertyT("fqdn"), out var __jsonFqdn) ? (string)__jsonFqdn : (string)Fqdn;} + {_httpsOnly = If( json?.PropertyT("httpsOnly"), out var __jsonHttpsOnly) ? (bool?)__jsonHttpsOnly : HttpsOnly;} + {_customPersistentDisk = If( json?.PropertyT("customPersistentDisks"), out var __jsonCustomPersistentDisks) ? If( __jsonCustomPersistentDisks as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskResource.FromJson(__u) )) ))() : null : CustomPersistentDisk;} + {_enableEndToEndTl = If( json?.PropertyT("enableEndToEndTLS"), out var __jsonEnableEndToEndTls) ? (bool?)__jsonEnableEndToEndTls : EnableEndToEndTl;} + {_loadedCertificate = If( json?.PropertyT("loadedCertificates"), out var __jsonLoadedCertificates) ? If( __jsonLoadedCertificates as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ILoadedCertificate) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LoadedCertificate.FromJson(__p) )) ))() : null : LoadedCertificate;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AppResourceProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._temporaryDisk ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._temporaryDisk.ToJson(null,serializationMode) : null, "temporaryDisk" ,container.Add ); + AddIf( null != this._persistentDisk ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._persistentDisk.ToJson(null,serializationMode) : null, "persistentDisk" ,container.Add ); + AddIf( null != this._vnetAddon ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._vnetAddon.ToJson(null,serializationMode) : null, "vnetAddons" ,container.Add ); + AddIf( null != this._ingressSetting ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._ingressSetting.ToJson(null,serializationMode) : null, "ingressSettings" ,container.Add ); + AddIf( null != this._public ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._public) : null, "public" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._url)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._url.ToString()) : null, "url" ,container.Add ); + } + AddIf( null != this._addonConfig ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._addonConfig.ToJson(null,serializationMode) : null, "addonConfigs" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._fqdn)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._fqdn.ToString()) : null, "fqdn" ,container.Add ); + } + AddIf( null != this._httpsOnly ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._httpsOnly) : null, "httpsOnly" ,container.Add ); + if (null != this._customPersistentDisk) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._customPersistentDisk ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("customPersistentDisks",__w); + } + AddIf( null != this._enableEndToEndTl ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._enableEndToEndTl) : null, "enableEndToEndTLS" ,container.Add ); + if (null != this._loadedCertificate) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._loadedCertificate ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("loadedCertificates",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.PowerShell.cs new file mode 100644 index 000000000000..8f95991f37d9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of addons + [System.ComponentModel.TypeConverter(typeof(AppResourcePropertiesAddonConfigsTypeConverter))] + public partial class AppResourcePropertiesAddonConfigs + { + + /// + /// 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 AppResourcePropertiesAddonConfigs(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 AppResourcePropertiesAddonConfigs(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.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppResourcePropertiesAddonConfigs(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.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppResourcePropertiesAddonConfigs(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.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of addons + [System.ComponentModel.TypeConverter(typeof(AppResourcePropertiesAddonConfigsTypeConverter))] + public partial interface IAppResourcePropertiesAddonConfigs + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.TypeConverter.cs new file mode 100644 index 000000000000..166ef94272c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppResourcePropertiesAddonConfigsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppResourcePropertiesAddonConfigs.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppResourcePropertiesAddonConfigs.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppResourcePropertiesAddonConfigs.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/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.cs new file mode 100644 index 000000000000..4eadd10a7067 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of addons + public partial class AppResourcePropertiesAddonConfigs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigsInternal + { + + /// Creates an new instance. + public AppResourcePropertiesAddonConfigs() + { + + } + } + /// Collection of addons + public partial interface IAppResourcePropertiesAddonConfigs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Collection of addons + internal partial interface IAppResourcePropertiesAddonConfigsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.dictionary.cs new file mode 100644 index 000000000000..6742702c7093 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class AppResourcePropertiesAddonConfigs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public global::System.Object this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, global::System.Object 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.AppPlatform.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.AppPlatform.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 global::System.Object value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResourcePropertiesAddonConfigs source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.json.cs new file mode 100644 index 000000000000..7dd30f033fea --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppResourcePropertiesAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of addons + public partial class AppResourcePropertiesAddonConfigs + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal AppResourcePropertiesAddonConfigs(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.DeserializeDictionary(()=>new global::System.Collections.Generic.Dictionary()),exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AppResourcePropertiesAddonConfigs(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.PowerShell.cs new file mode 100644 index 000000000000..9fe2dd3f64e5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Additional App settings in vnet injection instance + [System.ComponentModel.TypeConverter(typeof(AppVNetAddonsTypeConverter))] + public partial class AppVNetAddons + { + + /// + /// 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 AppVNetAddons(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)this).PublicEndpoint = (bool?) content.GetValueForProperty("PublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)this).PublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicEndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)this).PublicEndpointUrl = (string) content.GetValueForProperty("PublicEndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)this).PublicEndpointUrl, 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 AppVNetAddons(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)this).PublicEndpoint = (bool?) content.GetValueForProperty("PublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)this).PublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PublicEndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)this).PublicEndpointUrl = (string) content.GetValueForProperty("PublicEndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal)this).PublicEndpointUrl, 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.AppPlatform.Models.Api20221101Preview.IAppVNetAddons DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppVNetAddons(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.AppPlatform.Models.Api20221101Preview.IAppVNetAddons DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppVNetAddons(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.AppPlatform.Models.Api20221101Preview.IAppVNetAddons FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Additional App settings in vnet injection instance + [System.ComponentModel.TypeConverter(typeof(AppVNetAddonsTypeConverter))] + public partial interface IAppVNetAddons + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.TypeConverter.cs new file mode 100644 index 000000000000..112b008b844f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppVNetAddonsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAppVNetAddons ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppVNetAddons.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppVNetAddons.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppVNetAddons.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/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.cs new file mode 100644 index 000000000000..b09993ddef05 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Additional App settings in vnet injection instance + public partial class AppVNetAddons : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal + { + + /// Internal Acessors for PublicEndpointUrl + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddonsInternal.PublicEndpointUrl { get => this._publicEndpointUrl; set { {_publicEndpointUrl = value;} } } + + /// Backing field for property. + private bool? _publicEndpoint; + + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? PublicEndpoint { get => this._publicEndpoint; set => this._publicEndpoint = value; } + + /// Backing field for property. + private string _publicEndpointUrl; + + /// URL of the App in vnet injection instance which could be accessed from internet + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PublicEndpointUrl { get => this._publicEndpointUrl; } + + /// Creates an new instance. + public AppVNetAddons() + { + + } + } + /// Additional App settings in vnet injection instance + public partial interface IAppVNetAddons : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.", + SerializedName = @"publicEndpoint", + PossibleTypes = new [] { typeof(bool) })] + bool? PublicEndpoint { get; set; } + /// URL of the App in vnet injection instance which could be accessed from internet + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the App in vnet injection instance which could be accessed from internet", + SerializedName = @"publicEndpointUrl", + PossibleTypes = new [] { typeof(string) })] + string PublicEndpointUrl { get; } + + } + /// Additional App settings in vnet injection instance + internal partial interface IAppVNetAddonsInternal + + { + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + bool? PublicEndpoint { get; set; } + /// URL of the App in vnet injection instance which could be accessed from internet + string PublicEndpointUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.json.cs new file mode 100644 index 000000000000..ef8a1f7d6215 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AppVNetAddons.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Additional App settings in vnet injection instance + public partial class AppVNetAddons + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AppVNetAddons(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_publicEndpoint = If( json?.PropertyT("publicEndpoint"), out var __jsonPublicEndpoint) ? (bool?)__jsonPublicEndpoint : PublicEndpoint;} + {_publicEndpointUrl = If( json?.PropertyT("publicEndpointUrl"), out var __jsonPublicEndpointUrl) ? (string)__jsonPublicEndpointUrl : (string)PublicEndpointUrl;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppVNetAddons FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AppVNetAddons(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._publicEndpoint ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._publicEndpoint) : null, "publicEndpoint" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._publicEndpointUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._publicEndpointUrl.ToString()) : null, "publicEndpointUrl" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.PowerShell.cs new file mode 100644 index 000000000000..e7e4951b29dc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorComponentTypeConverter))] + public partial class ApplicationAcceleratorComponent + { + + /// + /// 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 ApplicationAcceleratorComponent(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestInstanceCount, (__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 ApplicationAcceleratorComponent(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal)this).ResourceRequestInstanceCount, (__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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationAcceleratorComponent(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationAcceleratorComponent(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorComponentTypeConverter))] + public partial interface IApplicationAcceleratorComponent + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.TypeConverter.cs new file mode 100644 index 000000000000..28c75038e879 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationAcceleratorComponentTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationAcceleratorComponent.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationAcceleratorComponent.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationAcceleratorComponent.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.cs new file mode 100644 index 000000000000..825144895746 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.cs @@ -0,0 +1,141 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ApplicationAcceleratorComponent : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance[] _instance; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance[] Instance { get => this._instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).Cpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).InstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).InstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponentInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).Memory = value; } + + /// Backing field for property. + private string _name; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests _resourceRequest; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceRequests()); set => this._resourceRequest = value; } + + /// + /// Cpu allocated to each application accelerator component. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).Cpu; } + + /// Instance count of the application accelerator component. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).InstanceCount; } + + /// + /// Memory allocated to each application accelerator component. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)ResourceRequest).Memory; } + + /// Creates an new instance. + public ApplicationAcceleratorComponent() + { + + } + } + public partial interface IApplicationAcceleratorComponent : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance[] Instance { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// + /// Cpu allocated to each application accelerator component. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each application accelerator component. 1 core can be represented by 1 or 1000m", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Instance count of the application accelerator component. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the application accelerator component.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// + /// Memory allocated to each application accelerator component. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each application accelerator component. 1 GB can be represented by 1Gi or 1024Mi.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + internal partial interface IApplicationAcceleratorComponentInternal + + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance[] Instance { get; set; } + + string Name { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests ResourceRequest { get; set; } + /// + /// Cpu allocated to each application accelerator component. 1 core can be represented by 1 or 1000m + /// + string ResourceRequestCpu { get; set; } + /// Instance count of the application accelerator component. + int? ResourceRequestInstanceCount { get; set; } + /// + /// Memory allocated to each application accelerator component. 1 GB can be represented by 1Gi or 1024Mi. + /// + string ResourceRequestMemory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.json.cs new file mode 100644 index 000000000000..eec0c694894c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorComponent.json.cs @@ -0,0 +1,125 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ApplicationAcceleratorComponent + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationAcceleratorComponent(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorInstance.FromJson(__u) )) ))() : null : Instance;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationAcceleratorComponent(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._instance ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("instances",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.PowerShell.cs new file mode 100644 index 000000000000..92e3f790cb4e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorInstanceTypeConverter))] + public partial class ApplicationAcceleratorInstance + { + + /// + /// 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 ApplicationAcceleratorInstance(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal)this).Status, 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 ApplicationAcceleratorInstance(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal)this).Status, 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationAcceleratorInstance(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationAcceleratorInstance(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorInstanceTypeConverter))] + public partial interface IApplicationAcceleratorInstance + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.TypeConverter.cs new file mode 100644 index 000000000000..cdfa6f199064 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationAcceleratorInstanceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationAcceleratorInstance.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationAcceleratorInstance.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationAcceleratorInstance.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.cs new file mode 100644 index 000000000000..192f14801a24 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ApplicationAcceleratorInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstanceInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the Application Accelerator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _status; + + /// + /// Status of the Application Accelerator instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Status { get => this._status; } + + /// Creates an new instance. + public ApplicationAcceleratorInstance() + { + + } + } + public partial interface IApplicationAcceleratorInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name of the Application Accelerator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the Application Accelerator instance.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// + /// Status of the Application Accelerator instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the Application Accelerator instance. It can be Pending, Running, Succeeded, Failed, Unknown.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; } + + } + internal partial interface IApplicationAcceleratorInstanceInternal + + { + /// Name of the Application Accelerator instance. + string Name { get; set; } + /// + /// Status of the Application Accelerator instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + string Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.json.cs new file mode 100644 index 000000000000..de994b9191e4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ApplicationAcceleratorInstance + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationAcceleratorInstance(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorInstance FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationAcceleratorInstance(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.PowerShell.cs new file mode 100644 index 000000000000..473b5df1c7cf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Application accelerator properties payload + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorPropertiesTypeConverter))] + public partial class ApplicationAcceleratorProperties + { + + /// + /// 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 ApplicationAcceleratorProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("Component")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)this).Component = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[]) content.GetValueForProperty("Component",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)this).Component, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorComponentTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationAcceleratorProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("Component")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)this).Component = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[]) content.GetValueForProperty("Component",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)this).Component, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorComponentTypeConverter.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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationAcceleratorProperties(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationAcceleratorProperties(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application accelerator properties payload + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorPropertiesTypeConverter))] + public partial interface IApplicationAcceleratorProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.TypeConverter.cs new file mode 100644 index 000000000000..90f90c045de0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationAcceleratorPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationAcceleratorProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationAcceleratorProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationAcceleratorProperties.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.cs new file mode 100644 index 000000000000..ff4658e4b62d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application accelerator properties payload + public partial class ApplicationAcceleratorProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] _component; + + /// Collection of components belong to application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] Component { get => this._component; } + + /// Internal Acessors for Component + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal.Component { get => this._component; set { {_component = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? _provisioningState; + + /// State of the application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public ApplicationAcceleratorProperties() + { + + } + } + /// Application accelerator properties payload + public partial interface IApplicationAcceleratorProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Collection of components belong to application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of components belong to application accelerator.", + SerializedName = @"components", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] Component { get; } + /// State of the application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the application accelerator.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? ProvisioningState { get; } + + } + /// Application accelerator properties payload + internal partial interface IApplicationAcceleratorPropertiesInternal + + { + /// Collection of components belong to application accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] Component { get; set; } + /// State of the application accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.json.cs new file mode 100644 index 000000000000..b86995147c5d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorProperties.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application accelerator properties payload + public partial class ApplicationAcceleratorProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationAcceleratorProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_component = If( json?.PropertyT("components"), out var __jsonComponents) ? If( __jsonComponents as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorComponent.FromJson(__u) )) ))() : null : Component;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationAcceleratorProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._component) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._component ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("components",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.PowerShell.cs new file mode 100644 index 000000000000..7e1719947a14 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.PowerShell.cs @@ -0,0 +1,274 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Application accelerator resource + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorResourceTypeConverter))] + public partial class ApplicationAcceleratorResource + { + + /// + /// 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 ApplicationAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("Component")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Component = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[]) content.GetValueForProperty("Component",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Component, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorComponentTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("Component")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Component = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[]) content.GetValueForProperty("Component",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal)this).Component, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorComponentTypeConverter.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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application accelerator resource + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorResourceTypeConverter))] + public partial interface IApplicationAcceleratorResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.TypeConverter.cs new file mode 100644 index 000000000000..f1c5ea597153 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationAcceleratorResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationAcceleratorResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationAcceleratorResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationAcceleratorResource.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.cs new file mode 100644 index 000000000000..90cdb7698e8f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.cs @@ -0,0 +1,205 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application accelerator resource + public partial class ApplicationAcceleratorResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Collection of components belong to application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] Component { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)Property).Component; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Component + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal.Component { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)Property).Component; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)Property).Component = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties _property; + + /// Application accelerator properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorProperties()); set => this._property = value; } + + /// State of the application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku _sku; + + /// Sku of the application accelerator resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set => this._sku = value; } + + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity = value ?? default(int); } + + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name = value ?? null; } + + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ApplicationAcceleratorResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Application accelerator resource + public partial interface IApplicationAcceleratorResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Collection of components belong to application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of components belong to application accelerator.", + SerializedName = @"components", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] Component { get; } + /// State of the application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the application accelerator.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? ProvisioningState { get; } + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string SkuName { get; set; } + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string SkuTier { get; set; } + + } + /// Application accelerator resource + internal partial interface IApplicationAcceleratorResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Collection of components belong to application accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorComponent[] Component { get; set; } + /// Application accelerator properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorProperties Property { get; set; } + /// State of the application accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState? ProvisioningState { get; set; } + /// Sku of the application accelerator resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get; set; } + /// Current capacity of the target resource + int? SkuCapacity { get; set; } + /// Name of the Sku + string SkuName { get; set; } + /// Tier of the Sku + string SkuTier { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.json.cs new file mode 100644 index 000000000000..71976f1f1823 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application accelerator resource + public partial class ApplicationAcceleratorResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationAcceleratorResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku.FromJson(__jsonSku) : Sku;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationAcceleratorResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..7bd1b99913c7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.PowerShell.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of application accelerator resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorResourceCollectionTypeConverter))] + public partial class ApplicationAcceleratorResourceCollection + { + + /// + /// 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 ApplicationAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal)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 ApplicationAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of application accelerator resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorResourceCollectionTypeConverter))] + public partial interface IApplicationAcceleratorResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..e5cf773a107b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationAcceleratorResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationAcceleratorResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationAcceleratorResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationAcceleratorResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.cs new file mode 100644 index 000000000000..c2e1c44f76e0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.cs @@ -0,0 +1,82 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of application accelerator resources and a possible link for next set + /// + public partial class ApplicationAcceleratorResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource[] _value; + + /// Collection of application accelerator resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource[] Value { get => this._value; set => this._value = value; } + + /// + /// Creates an new instance. + /// + public ApplicationAcceleratorResourceCollection() + { + + } + } + /// Object that includes an array of application accelerator resources and a possible link for next set + public partial interface IApplicationAcceleratorResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of application accelerator resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of application accelerator resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource[] Value { get; set; } + + } + /// Object that includes an array of application accelerator resources and a possible link for next set + internal partial interface IApplicationAcceleratorResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of application accelerator resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.json.cs new file mode 100644 index 000000000000..a971ccc1eac2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of application accelerator resources and a possible link for next set + /// + public partial class ApplicationAcceleratorResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationAcceleratorResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationAcceleratorResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..01801ade4f9b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorResourceRequestsTypeConverter))] + public partial class ApplicationAcceleratorResourceRequests + { + + /// + /// 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 ApplicationAcceleratorResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).InstanceCount, (__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 ApplicationAcceleratorResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal)this).InstanceCount, (__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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationAcceleratorResourceRequests(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationAcceleratorResourceRequests(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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ApplicationAcceleratorResourceRequestsTypeConverter))] + public partial interface IApplicationAcceleratorResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..84a7c37ac07c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationAcceleratorResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationAcceleratorResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationAcceleratorResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationAcceleratorResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.cs new file mode 100644 index 000000000000..460c810ea951 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.cs @@ -0,0 +1,103 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ApplicationAcceleratorResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// + /// Cpu allocated to each application accelerator component. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private int? _instanceCount; + + /// Instance count of the application accelerator component. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? InstanceCount { get => this._instanceCount; } + + /// Backing field for property. + private string _memory; + + /// + /// Memory allocated to each application accelerator component. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for InstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal.InstanceCount { get => this._instanceCount; set { {_instanceCount = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequestsInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Creates an new instance. + public ApplicationAcceleratorResourceRequests() + { + + } + } + public partial interface IApplicationAcceleratorResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Cpu allocated to each application accelerator component. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each application accelerator component. 1 core can be represented by 1 or 1000m", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// Instance count of the application accelerator component. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the application accelerator component.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? InstanceCount { get; } + /// + /// Memory allocated to each application accelerator component. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each application accelerator component. 1 GB can be represented by 1Gi or 1024Mi.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + + } + internal partial interface IApplicationAcceleratorResourceRequestsInternal + + { + /// + /// Cpu allocated to each application accelerator component. 1 core can be represented by 1 or 1000m + /// + string Cpu { get; set; } + /// Instance count of the application accelerator component. + int? InstanceCount { get; set; } + /// + /// Memory allocated to each application accelerator component. 1 GB can be represented by 1Gi or 1024Mi. + /// + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.json.cs new file mode 100644 index 000000000000..b448666c83bc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationAcceleratorResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ApplicationAcceleratorResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationAcceleratorResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + {_instanceCount = If( json?.PropertyT("instanceCount"), out var __jsonInstanceCount) ? (int?)__jsonInstanceCount : InstanceCount;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationAcceleratorResourceRequests(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._instanceCount ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._instanceCount) : null, "instanceCount" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.PowerShell.cs new file mode 100644 index 000000000000..bb4bfca7524b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Application Insights agent versions properties payload + [System.ComponentModel.TypeConverter(typeof(ApplicationInsightsAgentVersionsTypeConverter))] + public partial class ApplicationInsightsAgentVersions + { + + /// + /// 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 ApplicationInsightsAgentVersions(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Java")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal)this).Java = (string) content.GetValueForProperty("Java",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal)this).Java, 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 ApplicationInsightsAgentVersions(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Java")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal)this).Java = (string) content.GetValueForProperty("Java",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal)this).Java, 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.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationInsightsAgentVersions(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.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationInsightsAgentVersions(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.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application Insights agent versions properties payload + [System.ComponentModel.TypeConverter(typeof(ApplicationInsightsAgentVersionsTypeConverter))] + public partial interface IApplicationInsightsAgentVersions + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.TypeConverter.cs new file mode 100644 index 000000000000..6e24f4e68a2c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationInsightsAgentVersionsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationInsightsAgentVersions.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationInsightsAgentVersions.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationInsightsAgentVersions.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.cs new file mode 100644 index 000000000000..a7a2c3b193c6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Insights agent versions properties payload + public partial class ApplicationInsightsAgentVersions : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal + { + + /// Backing field for property. + private string _java; + + /// Indicates the version of application insight java agent + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Java { get => this._java; } + + /// Internal Acessors for Java + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal.Java { get => this._java; set { {_java = value;} } } + + /// Creates an new instance. + public ApplicationInsightsAgentVersions() + { + + } + } + /// Application Insights agent versions properties payload + public partial interface IApplicationInsightsAgentVersions : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Indicates the version of application insight java agent + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Indicates the version of application insight java agent", + SerializedName = @"java", + PossibleTypes = new [] { typeof(string) })] + string Java { get; } + + } + /// Application Insights agent versions properties payload + internal partial interface IApplicationInsightsAgentVersionsInternal + + { + /// Indicates the version of application insight java agent + string Java { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.json.cs new file mode 100644 index 000000000000..bb1cde5d0285 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationInsightsAgentVersions.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Insights agent versions properties payload + public partial class ApplicationInsightsAgentVersions + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationInsightsAgentVersions(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_java = If( json?.PropertyT("java"), out var __jsonJava) ? (string)__jsonJava : (string)Java;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationInsightsAgentVersions(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._java)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._java.ToString()) : null, "java" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.PowerShell.cs new file mode 100644 index 000000000000..c0f5158f4d73 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Application Live View properties payload + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewComponentTypeConverter))] + public partial class ApplicationLiveViewComponent + { + + /// + /// 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 ApplicationLiveViewComponent(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.AnyTypeConverter.ConvertFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestInstanceCount, (__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 ApplicationLiveViewComponent(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.AnyTypeConverter.ConvertFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal)this).ResourceRequestInstanceCount, (__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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationLiveViewComponent(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationLiveViewComponent(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application Live View properties payload + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewComponentTypeConverter))] + public partial interface IApplicationLiveViewComponent + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.TypeConverter.cs new file mode 100644 index 000000000000..0196203d19de --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationLiveViewComponentTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationLiveViewComponent.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationLiveViewComponent.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationLiveViewComponent.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.cs new file mode 100644 index 000000000000..03aae8c1d9af --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Live View properties payload + public partial class ApplicationLiveViewComponent : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance[] _instance; + + /// Collection of instances belong to Application Live View. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance[] Instance { get => this._instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for Name + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal.Name { get => (this._name = this._name ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Any()); set { {_name = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).Cpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).InstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).InstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponentInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).Memory = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny _name; + + /// Name of the component. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny Name { get => (this._name = this._name ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Any()); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests _resourceRequest; + + /// The requested resource quantity for required CPU and Memory. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceRequests()); } + + /// + /// Cpu quantity allocated to each Application Live View component instance. 1 core can be represented by 1 or 1000m. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).Cpu; } + + /// Desired instance count of Application Live View component instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).InstanceCount; } + + /// + /// Memory quantity allocated to each Application Live View component instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)ResourceRequest).Memory; } + + /// Creates an new instance. + public ApplicationLiveViewComponent() + { + + } + } + /// Application Live View properties payload + public partial interface IApplicationLiveViewComponent : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Collection of instances belong to Application Live View. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Application Live View.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance[] Instance { get; } + /// Name of the component. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the component.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny Name { get; } + /// + /// Cpu quantity allocated to each Application Live View component instance. 1 core can be represented by 1 or 1000m. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu quantity allocated to each Application Live View component instance. 1 core can be represented by 1 or 1000m.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Desired instance count of Application Live View component instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Desired instance count of Application Live View component instance.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// + /// Memory quantity allocated to each Application Live View component instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory quantity allocated to each Application Live View component instance. 1 GB can be represented by 1Gi or 1024Mi.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + /// Application Live View properties payload + internal partial interface IApplicationLiveViewComponentInternal + + { + /// Collection of instances belong to Application Live View. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance[] Instance { get; set; } + /// Name of the component. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAny Name { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests ResourceRequest { get; set; } + /// + /// Cpu quantity allocated to each Application Live View component instance. 1 core can be represented by 1 or 1000m. + /// + string ResourceRequestCpu { get; set; } + /// Desired instance count of Application Live View component instance. + int? ResourceRequestInstanceCount { get; set; } + /// + /// Memory quantity allocated to each Application Live View component instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + string ResourceRequestMemory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.json.cs new file mode 100644 index 000000000000..8b638cbfd26d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewComponent.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Live View properties payload + public partial class ApplicationLiveViewComponent + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationLiveViewComponent(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Any.FromJson(__jsonName) : Name;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewInstance.FromJson(__u) )) ))() : null : Instance;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationLiveViewComponent(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._name ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._name.ToJson(null,serializationMode) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._instance ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("instances",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.PowerShell.cs new file mode 100644 index 000000000000..42510ef55d3d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of instances belong to the Application Live View + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewInstanceTypeConverter))] + public partial class ApplicationLiveViewInstance + { + + /// + /// 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 ApplicationLiveViewInstance(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal)this).Status, 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 ApplicationLiveViewInstance(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal)this).Status, 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationLiveViewInstance(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationLiveViewInstance(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of instances belong to the Application Live View + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewInstanceTypeConverter))] + public partial interface IApplicationLiveViewInstance + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.TypeConverter.cs new file mode 100644 index 000000000000..7f94acd5bdb8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationLiveViewInstanceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationLiveViewInstance.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationLiveViewInstance.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationLiveViewInstance.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.cs new file mode 100644 index 000000000000..311dc50d4920 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Application Live View + public partial class ApplicationLiveViewInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstanceInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the Application Live View instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _status; + + /// + /// Status of the Application Live View instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Status { get => this._status; } + + /// Creates an new instance. + public ApplicationLiveViewInstance() + { + + } + } + /// Collection of instances belong to the Application Live View + public partial interface IApplicationLiveViewInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name of the Application Live View instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the Application Live View instance.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// + /// Status of the Application Live View instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the Application Live View instance. It can be Pending, Running, Succeeded, Failed, Unknown.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; } + + } + /// Collection of instances belong to the Application Live View + internal partial interface IApplicationLiveViewInstanceInternal + + { + /// Name of the Application Live View instance. + string Name { get; set; } + /// + /// Status of the Application Live View instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + string Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.json.cs new file mode 100644 index 000000000000..f80fcfa903aa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Application Live View + public partial class ApplicationLiveViewInstance + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationLiveViewInstance(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewInstance FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationLiveViewInstance(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.PowerShell.cs new file mode 100644 index 000000000000..daeb63a0c56d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Application Live View properties payload + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewPropertiesTypeConverter))] + public partial class ApplicationLiveViewProperties + { + + /// + /// 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 ApplicationLiveViewProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState.CreateFrom); + } + if (content.Contains("Component")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)this).Component = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[]) content.GetValueForProperty("Component",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)this).Component, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewComponentTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationLiveViewProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState.CreateFrom); + } + if (content.Contains("Component")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)this).Component = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[]) content.GetValueForProperty("Component",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)this).Component, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewComponentTypeConverter.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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationLiveViewProperties(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationLiveViewProperties(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application Live View properties payload + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewPropertiesTypeConverter))] + public partial interface IApplicationLiveViewProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.TypeConverter.cs new file mode 100644 index 000000000000..c81288b701cb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationLiveViewPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationLiveViewProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationLiveViewProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationLiveViewProperties.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.cs new file mode 100644 index 000000000000..5574be1b4877 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Live View properties payload + public partial class ApplicationLiveViewProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] _component; + + /// Component details of Application Live View + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] Component { get => this._component; } + + /// Internal Acessors for Component + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal.Component { get => this._component; set { {_component = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? _provisioningState; + + /// State of the Application Live View. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public ApplicationLiveViewProperties() + { + + } + } + /// Application Live View properties payload + public partial interface IApplicationLiveViewProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Component details of Application Live View + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Component details of Application Live View", + SerializedName = @"components", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] Component { get; } + /// State of the Application Live View. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Application Live View.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? ProvisioningState { get; } + + } + /// Application Live View properties payload + internal partial interface IApplicationLiveViewPropertiesInternal + + { + /// Component details of Application Live View + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] Component { get; set; } + /// State of the Application Live View. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.json.cs new file mode 100644 index 000000000000..dcf5e43582fc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewProperties.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Live View properties payload + public partial class ApplicationLiveViewProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationLiveViewProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_component = If( json?.PropertyT("components"), out var __jsonComponents) ? If( __jsonComponents as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewComponent.FromJson(__u) )) ))() : null : Component;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationLiveViewProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._component) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._component ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("components",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.PowerShell.cs new file mode 100644 index 000000000000..d3cffbddd683 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Application Live View resource + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewResourceTypeConverter))] + public partial class ApplicationLiveViewResource + { + + /// + /// 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 ApplicationLiveViewResource(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState.CreateFrom); + } + if (content.Contains("Component")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).Component = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[]) content.GetValueForProperty("Component",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).Component, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewComponentTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ApplicationLiveViewResource(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState.CreateFrom); + } + if (content.Contains("Component")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).Component = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[]) content.GetValueForProperty("Component",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal)this).Component, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewComponentTypeConverter.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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationLiveViewResource(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationLiveViewResource(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application Live View resource + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewResourceTypeConverter))] + public partial interface IApplicationLiveViewResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.TypeConverter.cs new file mode 100644 index 000000000000..25595c03ebee --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationLiveViewResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationLiveViewResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationLiveViewResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationLiveViewResource.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.cs new file mode 100644 index 000000000000..35ef21e78544 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Live View resource + public partial class ApplicationLiveViewResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Component details of Application Live View + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] Component { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)Property).Component; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Component + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal.Component { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)Property).Component; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)Property).Component = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties _property; + + /// Application Live View properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewProperties()); set => this._property = value; } + + /// State of the Application Live View. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewPropertiesInternal)Property).ProvisioningState; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ApplicationLiveViewResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Application Live View resource + public partial interface IApplicationLiveViewResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Component details of Application Live View + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Component details of Application Live View", + SerializedName = @"components", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] Component { get; } + /// State of the Application Live View. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Application Live View.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? ProvisioningState { get; } + + } + /// Application Live View resource + internal partial interface IApplicationLiveViewResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Component details of Application Live View + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewComponent[] Component { get; set; } + /// Application Live View properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewProperties Property { get; set; } + /// State of the Application Live View. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.json.cs new file mode 100644 index 000000000000..9c85c2d7515a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Live View resource + public partial class ApplicationLiveViewResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationLiveViewResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationLiveViewResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..3c1a920b2093 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.PowerShell.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Application Live View resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewResourceCollectionTypeConverter))] + public partial class ApplicationLiveViewResourceCollection + { + + /// + /// 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 ApplicationLiveViewResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal)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 ApplicationLiveViewResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationLiveViewResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationLiveViewResourceCollection(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Application Live View resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewResourceCollectionTypeConverter))] + public partial interface IApplicationLiveViewResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..98b7f76dd031 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationLiveViewResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationLiveViewResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationLiveViewResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationLiveViewResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.cs new file mode 100644 index 000000000000..bff7cc8486f3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Application Live View resources and a possible link for next set + /// + public partial class ApplicationLiveViewResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource[] _value; + + /// Collection of Application Live View resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ApplicationLiveViewResourceCollection() + { + + } + } + /// Object that includes an array of Application Live View resources and a possible link for next set + public partial interface IApplicationLiveViewResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Application Live View resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Application Live View resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource[] Value { get; set; } + + } + /// Object that includes an array of Application Live View resources and a possible link for next set + internal partial interface IApplicationLiveViewResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Application Live View resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.json.cs new file mode 100644 index 000000000000..6b48d47689bd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Application Live View resources and a possible link for next set + /// + public partial class ApplicationLiveViewResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationLiveViewResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationLiveViewResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..b67489755cc0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// The resource quantity for required CPU and Memory of Application Live View component + /// + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewResourceRequestsTypeConverter))] + public partial class ApplicationLiveViewResourceRequests + { + + /// + /// 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 ApplicationLiveViewResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).InstanceCount, (__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 ApplicationLiveViewResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal)this).InstanceCount, (__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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ApplicationLiveViewResourceRequests(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ApplicationLiveViewResourceRequests(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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The resource quantity for required CPU and Memory of Application Live View component + [System.ComponentModel.TypeConverter(typeof(ApplicationLiveViewResourceRequestsTypeConverter))] + public partial interface IApplicationLiveViewResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..4572475bae2d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ApplicationLiveViewResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ApplicationLiveViewResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ApplicationLiveViewResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ApplicationLiveViewResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.cs new file mode 100644 index 000000000000..9f4284bc1350 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// The resource quantity for required CPU and Memory of Application Live View component + /// + public partial class ApplicationLiveViewResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// + /// Cpu quantity allocated to each Application Live View component instance. 1 core can be represented by 1 or 1000m. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private int? _instanceCount; + + /// Desired instance count of Application Live View component instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? InstanceCount { get => this._instanceCount; } + + /// Backing field for property. + private string _memory; + + /// + /// Memory quantity allocated to each Application Live View component instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for InstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal.InstanceCount { get => this._instanceCount; set { {_instanceCount = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequestsInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Creates an new instance. + public ApplicationLiveViewResourceRequests() + { + + } + } + /// The resource quantity for required CPU and Memory of Application Live View component + public partial interface IApplicationLiveViewResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Cpu quantity allocated to each Application Live View component instance. 1 core can be represented by 1 or 1000m. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu quantity allocated to each Application Live View component instance. 1 core can be represented by 1 or 1000m.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// Desired instance count of Application Live View component instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Desired instance count of Application Live View component instance.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? InstanceCount { get; } + /// + /// Memory quantity allocated to each Application Live View component instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory quantity allocated to each Application Live View component instance. 1 GB can be represented by 1Gi or 1024Mi.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + + } + /// The resource quantity for required CPU and Memory of Application Live View component + internal partial interface IApplicationLiveViewResourceRequestsInternal + + { + /// + /// Cpu quantity allocated to each Application Live View component instance. 1 core can be represented by 1 or 1000m. + /// + string Cpu { get; set; } + /// Desired instance count of Application Live View component instance. + int? InstanceCount { get; set; } + /// + /// Memory quantity allocated to each Application Live View component instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.json.cs new file mode 100644 index 000000000000..c5010ffb5438 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ApplicationLiveViewResourceRequests.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// The resource quantity for required CPU and Memory of Application Live View component + /// + public partial class ApplicationLiveViewResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ApplicationLiveViewResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + {_instanceCount = If( json?.PropertyT("instanceCount"), out var __jsonInstanceCount) ? (int?)__jsonInstanceCount : InstanceCount;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ApplicationLiveViewResourceRequests(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._instanceCount ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._instanceCount) : null, "instanceCount" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.PowerShell.cs new file mode 100644 index 000000000000..34c8fdbe48bd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Available operations of the service + [System.ComponentModel.TypeConverter(typeof(AvailableOperationsTypeConverter))] + public partial class AvailableOperations + { + + /// + /// 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 AvailableOperations(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.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDetailTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal)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 AvailableOperations(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.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDetailTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IAvailableOperations DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AvailableOperations(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.AppPlatform.Models.Api20221101Preview.IAvailableOperations DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AvailableOperations(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.AppPlatform.Models.Api20221101Preview.IAvailableOperations FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Available operations of the service + [System.ComponentModel.TypeConverter(typeof(AvailableOperationsTypeConverter))] + public partial interface IAvailableOperations + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.TypeConverter.cs new file mode 100644 index 000000000000..159277537cb6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AvailableOperationsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAvailableOperations ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperations).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AvailableOperations.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AvailableOperations.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AvailableOperations.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/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.cs new file mode 100644 index 000000000000..afa1cfa6f39b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Available operations of the service + public partial class AvailableOperations : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperations, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperationsInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail[] _value; + + /// Collection of available operation details + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public AvailableOperations() + { + + } + } + /// Available operations of the service + public partial interface IAvailableOperations : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of available operation details + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of available operation details", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail[] Value { get; set; } + + } + /// Available operations of the service + internal partial interface IAvailableOperationsInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of available operation details + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.json.cs new file mode 100644 index 000000000000..6aecfe68003e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableOperations.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Available operations of the service + public partial class AvailableOperations + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AvailableOperations(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IOperationDetail) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDetail.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperations. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperations. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperations FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AvailableOperations(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.PowerShell.cs new file mode 100644 index 000000000000..0d6b1af0cc03 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(AvailableRuntimeVersionsTypeConverter))] + public partial class AvailableRuntimeVersions + { + + /// + /// 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 AvailableRuntimeVersions(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.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersionsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersionsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedRuntimeVersionTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AvailableRuntimeVersions(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.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersionsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersionsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedRuntimeVersionTypeConverter.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.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AvailableRuntimeVersions(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.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AvailableRuntimeVersions(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.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(AvailableRuntimeVersionsTypeConverter))] + public partial interface IAvailableRuntimeVersions + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.TypeConverter.cs new file mode 100644 index 000000000000..6010ef29a92b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AvailableRuntimeVersionsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AvailableRuntimeVersions.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AvailableRuntimeVersions.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AvailableRuntimeVersions.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/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.cs new file mode 100644 index 000000000000..e04eaa1a582f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class AvailableRuntimeVersions : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersionsInternal + { + + /// Internal Acessors for Value + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersionsInternal.Value { get => this._value; set { {_value = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion[] _value; + + /// A list of all supported runtime versions. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion[] Value { get => this._value; } + + /// Creates an new instance. + public AvailableRuntimeVersions() + { + + } + } + public partial interface IAvailableRuntimeVersions : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// A list of all supported runtime versions. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A list of all supported runtime versions.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion[] Value { get; } + + } + internal partial interface IAvailableRuntimeVersionsInternal + + { + /// A list of all supported runtime versions. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.json.cs new file mode 100644 index 000000000000..64944d2588ba --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AvailableRuntimeVersions.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class AvailableRuntimeVersions + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AvailableRuntimeVersions(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedRuntimeVersion.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AvailableRuntimeVersions(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.PowerShell.cs new file mode 100644 index 000000000000..9ad27eab161f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// The properties of the Azure File volume. Azure File shares are mounted as volumes. + /// + [System.ComponentModel.TypeConverter(typeof(AzureFileVolumeTypeConverter))] + public partial class AzureFileVolume + { + + /// + /// 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 AzureFileVolume(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolumeInternal)this).ShareName = (string) content.GetValueForProperty("ShareName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolumeInternal)this).ShareName, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountPath, global::System.Convert.ToString); + } + if (content.Contains("ReadOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).ReadOnly = (bool?) content.GetValueForProperty("ReadOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).ReadOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("MountOption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountOption = (string[]) content.GetValueForProperty("MountOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountOption, __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 AzureFileVolume(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ShareName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolumeInternal)this).ShareName = (string) content.GetValueForProperty("ShareName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolumeInternal)this).ShareName, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountPath, global::System.Convert.ToString); + } + if (content.Contains("ReadOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).ReadOnly = (bool?) content.GetValueForProperty("ReadOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).ReadOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("MountOption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountOption = (string[]) content.GetValueForProperty("MountOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountOption, __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.AppPlatform.Models.Api20221101Preview.IAzureFileVolume DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureFileVolume(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.AppPlatform.Models.Api20221101Preview.IAzureFileVolume DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureFileVolume(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.AppPlatform.Models.Api20221101Preview.IAzureFileVolume FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties of the Azure File volume. Azure File shares are mounted as volumes. + [System.ComponentModel.TypeConverter(typeof(AzureFileVolumeTypeConverter))] + public partial interface IAzureFileVolume + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.TypeConverter.cs new file mode 100644 index 000000000000..60909a1d74c2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureFileVolumeTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IAzureFileVolume ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolume).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureFileVolume.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureFileVolume.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureFileVolume.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/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.cs new file mode 100644 index 000000000000..74f97e5da65b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// The properties of the Azure File volume. Azure File shares are mounted as volumes. + /// + public partial class AzureFileVolume : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolume, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolumeInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties __customPersistentDiskProperties = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskProperties(); + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).Type = value; } + + /// These are the mount options for a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string[] MountOption { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).MountOption; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).MountOption = value ?? null /* arrayOf */; } + + /// The mount path of the persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string MountPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).MountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).MountPath = value ; } + + /// Indicates whether the persistent disk is a readOnly one. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public bool? ReadOnly { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).ReadOnly; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).ReadOnly = value ?? default(bool); } + + /// Backing field for property. + private string _shareName; + + /// The share name of the Azure File share. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ShareName { get => this._shareName; set => this._shareName = value; } + + /// The type of the underlying resource to mount as a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)__customPersistentDiskProperties).Type; } + + /// Creates an new instance. + public AzureFileVolume() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__customPersistentDiskProperties), __customPersistentDiskProperties); + await eventListener.AssertObjectIsValid(nameof(__customPersistentDiskProperties), __customPersistentDiskProperties); + } + } + /// The properties of the Azure File volume. Azure File shares are mounted as volumes. + public partial interface IAzureFileVolume : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties + { + /// The share name of the Azure File share. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The share name of the Azure File share.", + SerializedName = @"shareName", + PossibleTypes = new [] { typeof(string) })] + string ShareName { get; set; } + + } + /// The properties of the Azure File volume. Azure File shares are mounted as volumes. + internal partial interface IAzureFileVolumeInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal + { + /// The share name of the Azure File share. + string ShareName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.json.cs new file mode 100644 index 000000000000..0374928fb821 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/AzureFileVolume.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// The properties of the Azure File volume. Azure File shares are mounted as volumes. + /// + public partial class AzureFileVolume + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AzureFileVolume(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __customPersistentDiskProperties = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskProperties(json); + {_shareName = If( json?.PropertyT("shareName"), out var __jsonShareName) ? (string)__jsonShareName : (string)ShareName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolume. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolume. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAzureFileVolume FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AzureFileVolume(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __customPersistentDiskProperties?.ToJson(container, serializationMode); + AddIf( null != (((object)this._shareName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._shareName.ToString()) : null, "shareName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.PowerShell.cs new file mode 100644 index 000000000000..47d2ed5ae3ef --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Binding resource payload + [System.ComponentModel.TypeConverter(typeof(BindingResourceTypeConverter))] + public partial class BindingResource + { + + /// + /// 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 BindingResource(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.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceName, global::System.Convert.ToString); + } + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).Key, global::System.Convert.ToString); + } + if (content.Contains("BindingParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).BindingParameter = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) content.GetValueForProperty("BindingParameter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).BindingParameter, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesBindingParametersTypeConverter.ConvertFrom); + } + if (content.Contains("GeneratedProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).GeneratedProperty = (string) content.GetValueForProperty("GeneratedProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).GeneratedProperty, global::System.Convert.ToString); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).CreatedAt = (string) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).CreatedAt, global::System.Convert.ToString); + } + if (content.Contains("UpdatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).UpdatedAt = (string) content.GetValueForProperty("UpdatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).UpdatedAt, 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 BindingResource(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.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceName, global::System.Convert.ToString); + } + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).Key, global::System.Convert.ToString); + } + if (content.Contains("BindingParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).BindingParameter = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) content.GetValueForProperty("BindingParameter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).BindingParameter, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesBindingParametersTypeConverter.ConvertFrom); + } + if (content.Contains("GeneratedProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).GeneratedProperty = (string) content.GetValueForProperty("GeneratedProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).GeneratedProperty, global::System.Convert.ToString); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).CreatedAt = (string) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).CreatedAt, global::System.Convert.ToString); + } + if (content.Contains("UpdatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).UpdatedAt = (string) content.GetValueForProperty("UpdatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal)this).UpdatedAt, 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.AppPlatform.Models.Api20221101Preview.IBindingResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BindingResource(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.AppPlatform.Models.Api20221101Preview.IBindingResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BindingResource(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.AppPlatform.Models.Api20221101Preview.IBindingResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Binding resource payload + [System.ComponentModel.TypeConverter(typeof(BindingResourceTypeConverter))] + public partial interface IBindingResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.TypeConverter.cs new file mode 100644 index 000000000000..d0ee449ec072 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BindingResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BindingResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BindingResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BindingResource.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/appplatform/generated/api/Models/Api20221101Preview/BindingResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.cs new file mode 100644 index 000000000000..d4f906a50106 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.cs @@ -0,0 +1,250 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Binding resource payload + public partial class BindingResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Binding parameters of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).BindingParameter; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).BindingParameter = value ?? null /* model class */; } + + /// Creation time of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string CreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).CreatedAt; } + + /// + /// The generated Spring Boot property file for this binding. The secret will be deducted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GeneratedProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).GeneratedProperty; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// The key of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).Key = value ?? null; } + + /// Internal Acessors for CreatedAt + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal.CreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).CreatedAt = value; } + + /// Internal Acessors for GeneratedProperty + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal.GeneratedProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).GeneratedProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).GeneratedProperty = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ResourceName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal.ResourceName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).ResourceName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).ResourceName = value; } + + /// Internal Acessors for ResourceType + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal.ResourceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).ResourceType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).ResourceType = value; } + + /// Internal Acessors for UpdatedAt + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceInternal.UpdatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).UpdatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).UpdatedAt = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties _property; + + /// Properties of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceProperties()); set => this._property = value; } + + /// The Azure resource id of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).ResourceId = value ?? null; } + + /// The name of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).ResourceName; } + + /// The standard Azure resource type of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).ResourceType; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Update time of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string UpdatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)Property).UpdatedAt; } + + /// Creates an new instance. + public BindingResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Binding resource payload + public partial interface IBindingResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Binding parameters of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Binding parameters of the Binding resource", + SerializedName = @"bindingParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get; set; } + /// Creation time of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Creation time of the Binding resource", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(string) })] + string CreatedAt { get; } + /// + /// The generated Spring Boot property file for this binding. The secret will be deducted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The generated Spring Boot property file for this binding. The secret will be deducted.", + SerializedName = @"generatedProperties", + PossibleTypes = new [] { typeof(string) })] + string GeneratedProperty { get; } + /// The key of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The key of the bound resource", + SerializedName = @"key", + PossibleTypes = new [] { typeof(string) })] + string Key { get; set; } + /// The Azure resource id of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure resource id of the bound resource", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + /// The name of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the bound resource", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(string) })] + string ResourceName { get; } + /// The standard Azure resource type of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The standard Azure resource type of the bound resource", + SerializedName = @"resourceType", + PossibleTypes = new [] { typeof(string) })] + string ResourceType { get; } + /// Update time of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Update time of the Binding resource", + SerializedName = @"updatedAt", + PossibleTypes = new [] { typeof(string) })] + string UpdatedAt { get; } + + } + /// Binding resource payload + internal partial interface IBindingResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Binding parameters of the Binding resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get; set; } + /// Creation time of the Binding resource + string CreatedAt { get; set; } + /// + /// The generated Spring Boot property file for this binding. The secret will be deducted. + /// + string GeneratedProperty { get; set; } + /// The key of the bound resource + string Key { get; set; } + /// Properties of the Binding resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties Property { get; set; } + /// The Azure resource id of the bound resource + string ResourceId { get; set; } + /// The name of the bound resource + string ResourceName { get; set; } + /// The standard Azure resource type of the bound resource + string ResourceType { get; set; } + /// Update time of the Binding resource + string UpdatedAt { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.json.cs new file mode 100644 index 000000000000..dfbab7f919da --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Binding resource payload + public partial class BindingResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BindingResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BindingResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..b29436330d11 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Binding resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(BindingResourceCollectionTypeConverter))] + public partial class BindingResourceCollection + { + + /// + /// 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 BindingResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal)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 BindingResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BindingResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BindingResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Binding resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(BindingResourceCollectionTypeConverter))] + public partial interface IBindingResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..d8723883d729 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BindingResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BindingResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BindingResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BindingResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.cs new file mode 100644 index 000000000000..233b1d206924 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Binding resources and a possible link for next set + /// + public partial class BindingResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource[] _value; + + /// Collection of Binding resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BindingResourceCollection() + { + + } + } + /// Object that includes an array of Binding resources and a possible link for next set + public partial interface IBindingResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Binding resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Binding resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource[] Value { get; set; } + + } + /// Object that includes an array of Binding resources and a possible link for next set + internal partial interface IBindingResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Binding resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.json.cs new file mode 100644 index 000000000000..c81125526e03 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Binding resources and a possible link for next set + /// + public partial class BindingResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BindingResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBindingResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BindingResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..a3057f229066 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Binding resource properties payload + [System.ComponentModel.TypeConverter(typeof(BindingResourcePropertiesTypeConverter))] + public partial class BindingResourceProperties + { + + /// + /// 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 BindingResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceName, global::System.Convert.ToString); + } + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).Key, global::System.Convert.ToString); + } + if (content.Contains("BindingParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).BindingParameter = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) content.GetValueForProperty("BindingParameter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).BindingParameter, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesBindingParametersTypeConverter.ConvertFrom); + } + if (content.Contains("GeneratedProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).GeneratedProperty = (string) content.GetValueForProperty("GeneratedProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).GeneratedProperty, global::System.Convert.ToString); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).CreatedAt = (string) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).CreatedAt, global::System.Convert.ToString); + } + if (content.Contains("UpdatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).UpdatedAt = (string) content.GetValueForProperty("UpdatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).UpdatedAt, 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 BindingResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceName, global::System.Convert.ToString); + } + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).Key, global::System.Convert.ToString); + } + if (content.Contains("BindingParameter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).BindingParameter = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) content.GetValueForProperty("BindingParameter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).BindingParameter, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesBindingParametersTypeConverter.ConvertFrom); + } + if (content.Contains("GeneratedProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).GeneratedProperty = (string) content.GetValueForProperty("GeneratedProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).GeneratedProperty, global::System.Convert.ToString); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).CreatedAt = (string) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).CreatedAt, global::System.Convert.ToString); + } + if (content.Contains("UpdatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).UpdatedAt = (string) content.GetValueForProperty("UpdatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal)this).UpdatedAt, 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.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BindingResourceProperties(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.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BindingResourceProperties(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.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Binding resource properties payload + [System.ComponentModel.TypeConverter(typeof(BindingResourcePropertiesTypeConverter))] + public partial interface IBindingResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..474024846542 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BindingResourcePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BindingResourceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BindingResourceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BindingResourceProperties.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/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.cs new file mode 100644 index 000000000000..768b0a810b7a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.cs @@ -0,0 +1,191 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Binding resource properties payload + public partial class BindingResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters _bindingParameter; + + /// Binding parameters of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => (this._bindingParameter = this._bindingParameter ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesBindingParameters()); set => this._bindingParameter = value; } + + /// Backing field for property. + private string _createdAt; + + /// Creation time of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string CreatedAt { get => this._createdAt; } + + /// Backing field for property. + private string _generatedProperty; + + /// + /// The generated Spring Boot property file for this binding. The secret will be deducted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string GeneratedProperty { get => this._generatedProperty; } + + /// Backing field for property. + private string _key; + + /// The key of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Key { get => this._key; set => this._key = value; } + + /// Internal Acessors for CreatedAt + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal.CreatedAt { get => this._createdAt; set { {_createdAt = value;} } } + + /// Internal Acessors for GeneratedProperty + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal.GeneratedProperty { get => this._generatedProperty; set { {_generatedProperty = value;} } } + + /// Internal Acessors for ResourceName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal.ResourceName { get => this._resourceName; set { {_resourceName = value;} } } + + /// Internal Acessors for ResourceType + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal.ResourceType { get => this._resourceType; set { {_resourceType = value;} } } + + /// Internal Acessors for UpdatedAt + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesInternal.UpdatedAt { get => this._updatedAt; set { {_updatedAt = value;} } } + + /// Backing field for property. + private string _resourceId; + + /// The Azure resource id of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// Backing field for property. + private string _resourceName; + + /// The name of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ResourceName { get => this._resourceName; } + + /// Backing field for property. + private string _resourceType; + + /// The standard Azure resource type of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ResourceType { get => this._resourceType; } + + /// Backing field for property. + private string _updatedAt; + + /// Update time of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string UpdatedAt { get => this._updatedAt; } + + /// Creates an new instance. + public BindingResourceProperties() + { + + } + } + /// Binding resource properties payload + public partial interface IBindingResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Binding parameters of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Binding parameters of the Binding resource", + SerializedName = @"bindingParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get; set; } + /// Creation time of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Creation time of the Binding resource", + SerializedName = @"createdAt", + PossibleTypes = new [] { typeof(string) })] + string CreatedAt { get; } + /// + /// The generated Spring Boot property file for this binding. The secret will be deducted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The generated Spring Boot property file for this binding. The secret will be deducted.", + SerializedName = @"generatedProperties", + PossibleTypes = new [] { typeof(string) })] + string GeneratedProperty { get; } + /// The key of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The key of the bound resource", + SerializedName = @"key", + PossibleTypes = new [] { typeof(string) })] + string Key { get; set; } + /// The Azure resource id of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure resource id of the bound resource", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + /// The name of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the bound resource", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(string) })] + string ResourceName { get; } + /// The standard Azure resource type of the bound resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The standard Azure resource type of the bound resource", + SerializedName = @"resourceType", + PossibleTypes = new [] { typeof(string) })] + string ResourceType { get; } + /// Update time of the Binding resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Update time of the Binding resource", + SerializedName = @"updatedAt", + PossibleTypes = new [] { typeof(string) })] + string UpdatedAt { get; } + + } + /// Binding resource properties payload + internal partial interface IBindingResourcePropertiesInternal + + { + /// Binding parameters of the Binding resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get; set; } + /// Creation time of the Binding resource + string CreatedAt { get; set; } + /// + /// The generated Spring Boot property file for this binding. The secret will be deducted. + /// + string GeneratedProperty { get; set; } + /// The key of the bound resource + string Key { get; set; } + /// The Azure resource id of the bound resource + string ResourceId { get; set; } + /// The name of the bound resource + string ResourceName { get; set; } + /// The standard Azure resource type of the bound resource + string ResourceType { get; set; } + /// Update time of the Binding resource + string UpdatedAt { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.json.cs new file mode 100644 index 000000000000..139c3065cc82 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Binding resource properties payload + public partial class BindingResourceProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BindingResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceName = If( json?.PropertyT("resourceName"), out var __jsonResourceName) ? (string)__jsonResourceName : (string)ResourceName;} + {_resourceType = If( json?.PropertyT("resourceType"), out var __jsonResourceType) ? (string)__jsonResourceType : (string)ResourceType;} + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_key = If( json?.PropertyT("key"), out var __jsonKey) ? (string)__jsonKey : (string)Key;} + {_bindingParameter = If( json?.PropertyT("bindingParameters"), out var __jsonBindingParameters) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesBindingParameters.FromJson(__jsonBindingParameters) : BindingParameter;} + {_generatedProperty = If( json?.PropertyT("generatedProperties"), out var __jsonGeneratedProperties) ? (string)__jsonGeneratedProperties : (string)GeneratedProperty;} + {_createdAt = If( json?.PropertyT("createdAt"), out var __jsonCreatedAt) ? (string)__jsonCreatedAt : (string)CreatedAt;} + {_updatedAt = If( json?.PropertyT("updatedAt"), out var __jsonUpdatedAt) ? (string)__jsonUpdatedAt : (string)UpdatedAt;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BindingResourceProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._resourceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._resourceName.ToString()) : null, "resourceName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._resourceType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._resourceType.ToString()) : null, "resourceType" ,container.Add ); + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + AddIf( null != (((object)this._key)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._key.ToString()) : null, "key" ,container.Add ); + AddIf( null != this._bindingParameter ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._bindingParameter.ToJson(null,serializationMode) : null, "bindingParameters" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._generatedProperty)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._generatedProperty.ToString()) : null, "generatedProperties" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._createdAt)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._createdAt.ToString()) : null, "createdAt" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._updatedAt)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._updatedAt.ToString()) : null, "updatedAt" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.PowerShell.cs new file mode 100644 index 000000000000..ba772124274e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Binding parameters of the Binding resource + [System.ComponentModel.TypeConverter(typeof(BindingResourcePropertiesBindingParametersTypeConverter))] + public partial class BindingResourcePropertiesBindingParameters + { + + /// + /// 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 BindingResourcePropertiesBindingParameters(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 BindingResourcePropertiesBindingParameters(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.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BindingResourcePropertiesBindingParameters(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.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BindingResourcePropertiesBindingParameters(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.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Binding parameters of the Binding resource + [System.ComponentModel.TypeConverter(typeof(BindingResourcePropertiesBindingParametersTypeConverter))] + public partial interface IBindingResourcePropertiesBindingParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.TypeConverter.cs new file mode 100644 index 000000000000..86584d6a8f29 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BindingResourcePropertiesBindingParametersTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BindingResourcePropertiesBindingParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BindingResourcePropertiesBindingParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BindingResourcePropertiesBindingParameters.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/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.cs new file mode 100644 index 000000000000..ee7178ea8513 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Binding parameters of the Binding resource + public partial class BindingResourcePropertiesBindingParameters : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParametersInternal + { + + /// + /// Creates an new instance. + /// + public BindingResourcePropertiesBindingParameters() + { + + } + } + /// Binding parameters of the Binding resource + public partial interface IBindingResourcePropertiesBindingParameters : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Binding parameters of the Binding resource + internal partial interface IBindingResourcePropertiesBindingParametersInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.dictionary.cs new file mode 100644 index 000000000000..31947c45b5d8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class BindingResourcePropertiesBindingParameters : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public global::System.Object this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, global::System.Object 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.AppPlatform.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.AppPlatform.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 global::System.Object value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResourcePropertiesBindingParameters source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.json.cs new file mode 100644 index 000000000000..c3abb5e95bb1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BindingResourcePropertiesBindingParameters.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Binding parameters of the Binding resource + public partial class BindingResourcePropertiesBindingParameters + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal BindingResourcePropertiesBindingParameters(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.DeserializeDictionary(()=>new global::System.Collections.Generic.Dictionary()),exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BindingResourcePropertiesBindingParameters(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.PowerShell.cs new file mode 100644 index 000000000000..5ab4c8ad3dd6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.PowerShell.cs @@ -0,0 +1,304 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build resource payload + [System.ComponentModel.TypeConverter(typeof(BuildTypeConverter))] + public partial class Build + { + + /// + /// 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 Build(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.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("TriggeredBuildResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).TriggeredBuildResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult) content.GetValueForProperty("TriggeredBuildResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).TriggeredBuildResult, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResultTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).RelativePath, global::System.Convert.ToString); + } + if (content.Contains("Er")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Er = (string) content.GetValueForProperty("Er",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Er, global::System.Convert.ToString); + } + if (content.Contains("AgentPool")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).AgentPool = (string) content.GetValueForProperty("AgentPool",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).AgentPool, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState.CreateFrom); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Env, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnvTypeConverter.ConvertFrom); + } + if (content.Contains("TriggeredBuildResultId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).TriggeredBuildResultId = (string) content.GetValueForProperty("TriggeredBuildResultId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).TriggeredBuildResultId, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequestMemory, 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 Build(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.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("TriggeredBuildResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).TriggeredBuildResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult) content.GetValueForProperty("TriggeredBuildResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).TriggeredBuildResult, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResultTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).RelativePath, global::System.Convert.ToString); + } + if (content.Contains("Er")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Er = (string) content.GetValueForProperty("Er",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Er, global::System.Convert.ToString); + } + if (content.Contains("AgentPool")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).AgentPool = (string) content.GetValueForProperty("AgentPool",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).AgentPool, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState.CreateFrom); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).Env, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnvTypeConverter.ConvertFrom); + } + if (content.Contains("TriggeredBuildResultId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).TriggeredBuildResultId = (string) content.GetValueForProperty("TriggeredBuildResultId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).TriggeredBuildResultId, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal)this).ResourceRequestMemory, 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.AppPlatform.Models.Api20221101Preview.IBuild DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Build(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.AppPlatform.Models.Api20221101Preview.IBuild DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Build(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.AppPlatform.Models.Api20221101Preview.IBuild FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build resource payload + [System.ComponentModel.TypeConverter(typeof(BuildTypeConverter))] + public partial interface IBuild + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.TypeConverter.cs new file mode 100644 index 000000000000..cd1729e2b1ab --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildTypeConverter : 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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuild ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Build.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Build.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Build.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/appplatform/generated/api/Models/Api20221101Preview/Build.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.cs new file mode 100644 index 000000000000..10ea5db4d789 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build resource payload + public partial class Build : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// The resource id of agent pool + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AgentPool { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).AgentPool; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).AgentPool = value ?? null; } + + /// The environment variables for this build + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv Env { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).Env; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).Env = value ?? null /* model class */; } + + /// The resource id of builder to build the source code + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Er { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).Builder; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).Builder = value ?? null; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal.ResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ResourceRequest = value; } + + /// Internal Acessors for TriggeredBuildResult + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildInternal.TriggeredBuildResult { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).TriggeredBuildResult; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).TriggeredBuildResult = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties _property; + + /// Properties of the build resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildProperties()); set => this._property = value; } + + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ProvisioningState; } + + /// The relative path of source code + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string RelativePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).RelativePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).RelativePath = value ?? null; } + + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ResourceRequestCpu = value ?? null; } + + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).ResourceRequestMemory = value ?? null; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The unique build id of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string TriggeredBuildResultId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).TriggeredBuildResultId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)Property).TriggeredBuildResultId = value ?? null; } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public Build() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Build resource payload + public partial interface IBuild : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The resource id of agent pool + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of agent pool", + SerializedName = @"agentPool", + PossibleTypes = new [] { typeof(string) })] + string AgentPool { get; set; } + /// The environment variables for this build + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The environment variables for this build", + SerializedName = @"env", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv Env { get; set; } + /// The resource id of builder to build the source code + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of builder to build the source code", + SerializedName = @"builder", + PossibleTypes = new [] { typeof(string) })] + string Er { get; set; } + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the KPack build result", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? ProvisioningState { get; } + /// The relative path of source code + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The relative path of source code", + SerializedName = @"relativePath", + PossibleTypes = new [] { typeof(string) })] + string RelativePath { get; set; } + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + The default value is 1, this should not exceed build service agent pool cpu size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; set; } + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + The default value is 2Gi, this should not exceed build service agent pool memory size.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; set; } + /// The unique build id of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The unique build id of this build result", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string TriggeredBuildResultId { get; set; } + + } + /// Build resource payload + internal partial interface IBuildInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The resource id of agent pool + string AgentPool { get; set; } + /// The environment variables for this build + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv Env { get; set; } + /// The resource id of builder to build the source code + string Er { get; set; } + /// Properties of the build resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties Property { get; set; } + /// Provisioning state of the KPack build result + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? ProvisioningState { get; set; } + /// The relative path of source code + string RelativePath { get; set; } + /// The customized build resource for this build + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests ResourceRequest { get; set; } + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + string ResourceRequestCpu { get; set; } + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + string ResourceRequestMemory { get; set; } + /// The build result triggered by this build + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult TriggeredBuildResult { get; set; } + /// The unique build id of this build result + string TriggeredBuildResultId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.json.cs new file mode 100644 index 000000000000..6ce5a0edc44e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Build.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build resource payload + public partial class Build + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal Build(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new Build(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.PowerShell.cs new file mode 100644 index 000000000000..f76cdb1a7aa1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Build resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(BuildCollectionTypeConverter))] + public partial class BuildCollection + { + + /// + /// 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 BuildCollection(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.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal)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 BuildCollection(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.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IBuildCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildCollection(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.AppPlatform.Models.Api20221101Preview.IBuildCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildCollection(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.AppPlatform.Models.Api20221101Preview.IBuildCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Build resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(BuildCollectionTypeConverter))] + public partial interface IBuildCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.TypeConverter.cs new file mode 100644 index 000000000000..989319278329 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildCollection.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/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.cs new file mode 100644 index 000000000000..3ae696e8b3fc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Build resources and a possible link for next set + /// + public partial class BuildCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild[] _value; + + /// Collection of Build resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BuildCollection() + { + + } + } + /// Object that includes an array of Build resources and a possible link for next set + public partial interface IBuildCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Build resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Build resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild[] Value { get; set; } + + } + /// Object that includes an array of Build resources and a possible link for next set + internal partial interface IBuildCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Build resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.json.cs new file mode 100644 index 000000000000..6f26f2618f8d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Build resources and a possible link for next set + /// + public partial class BuildCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuild) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Build.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.PowerShell.cs new file mode 100644 index 000000000000..53cde6f2fe98 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.PowerShell.cs @@ -0,0 +1,216 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build resource properties payload + [System.ComponentModel.TypeConverter(typeof(BuildPropertiesTypeConverter))] + public partial class BuildProperties + { + + /// + /// 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 BuildProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TriggeredBuildResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).TriggeredBuildResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult) content.GetValueForProperty("TriggeredBuildResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).TriggeredBuildResult, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResultTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).RelativePath, global::System.Convert.ToString); + } + if (content.Contains("Builder")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).Builder = (string) content.GetValueForProperty("Builder",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).Builder, global::System.Convert.ToString); + } + if (content.Contains("AgentPool")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).AgentPool = (string) content.GetValueForProperty("AgentPool",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).AgentPool, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState.CreateFrom); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).Env, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnvTypeConverter.ConvertFrom); + } + if (content.Contains("TriggeredBuildResultId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).TriggeredBuildResultId = (string) content.GetValueForProperty("TriggeredBuildResultId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).TriggeredBuildResultId, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequestMemory, 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 BuildProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("TriggeredBuildResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).TriggeredBuildResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult) content.GetValueForProperty("TriggeredBuildResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).TriggeredBuildResult, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResultTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).RelativePath, global::System.Convert.ToString); + } + if (content.Contains("Builder")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).Builder = (string) content.GetValueForProperty("Builder",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).Builder, global::System.Convert.ToString); + } + if (content.Contains("AgentPool")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).AgentPool = (string) content.GetValueForProperty("AgentPool",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).AgentPool, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState.CreateFrom); + } + if (content.Contains("Env")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).Env = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv) content.GetValueForProperty("Env",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).Env, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnvTypeConverter.ConvertFrom); + } + if (content.Contains("TriggeredBuildResultId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).TriggeredBuildResultId = (string) content.GetValueForProperty("TriggeredBuildResultId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).TriggeredBuildResultId, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal)this).ResourceRequestMemory, 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.AppPlatform.Models.Api20221101Preview.IBuildProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildProperties(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.AppPlatform.Models.Api20221101Preview.IBuildProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildProperties(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.AppPlatform.Models.Api20221101Preview.IBuildProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build resource properties payload + [System.ComponentModel.TypeConverter(typeof(BuildPropertiesTypeConverter))] + public partial interface IBuildProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.TypeConverter.cs new file mode 100644 index 000000000000..bdd3ed4aadf3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.cs new file mode 100644 index 000000000000..c9de3d6742f4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.cs @@ -0,0 +1,208 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build resource properties payload + public partial class BuildProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal + { + + /// Backing field for property. + private string _agentPool; + + /// The resource id of agent pool + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AgentPool { get => this._agentPool; set => this._agentPool = value; } + + /// Backing field for property. + private string _builder; + + /// The resource id of builder to build the source code + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Builder { get => this._builder; set => this._builder = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv _env; + + /// The environment variables for this build + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv Env { get => (this._env = this._env ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnv()); set => this._env = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for TriggeredBuildResult + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesInternal.TriggeredBuildResult { get => (this._triggeredBuildResult = this._triggeredBuildResult ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResult()); set { {_triggeredBuildResult = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? _provisioningState; + + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _relativePath; + + /// The relative path of source code + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string RelativePath { get => this._relativePath; set => this._relativePath = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests _resourceRequest; + + /// The customized build resource for this build + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequests()); set => this._resourceRequest = value; } + + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)ResourceRequest).Cpu = value ?? null; } + + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)ResourceRequest).Memory = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult _triggeredBuildResult; + + /// The build result triggered by this build + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult TriggeredBuildResult { get => (this._triggeredBuildResult = this._triggeredBuildResult ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResult()); } + + /// The unique build id of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string TriggeredBuildResultId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResultInternal)TriggeredBuildResult).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResultInternal)TriggeredBuildResult).Id = value ?? null; } + + /// Creates an new instance. + public BuildProperties() + { + + } + } + /// Build resource properties payload + public partial interface IBuildProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The resource id of agent pool + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of agent pool", + SerializedName = @"agentPool", + PossibleTypes = new [] { typeof(string) })] + string AgentPool { get; set; } + /// The resource id of builder to build the source code + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of builder to build the source code", + SerializedName = @"builder", + PossibleTypes = new [] { typeof(string) })] + string Builder { get; set; } + /// The environment variables for this build + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The environment variables for this build", + SerializedName = @"env", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv Env { get; set; } + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the KPack build result", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? ProvisioningState { get; } + /// The relative path of source code + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The relative path of source code", + SerializedName = @"relativePath", + PossibleTypes = new [] { typeof(string) })] + string RelativePath { get; set; } + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + The default value is 1, this should not exceed build service agent pool cpu size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; set; } + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + The default value is 2Gi, this should not exceed build service agent pool memory size.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; set; } + /// The unique build id of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The unique build id of this build result", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string TriggeredBuildResultId { get; set; } + + } + /// Build resource properties payload + internal partial interface IBuildPropertiesInternal + + { + /// The resource id of agent pool + string AgentPool { get; set; } + /// The resource id of builder to build the source code + string Builder { get; set; } + /// The environment variables for this build + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv Env { get; set; } + /// Provisioning state of the KPack build result + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState? ProvisioningState { get; set; } + /// The relative path of source code + string RelativePath { get; set; } + /// The customized build resource for this build + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests ResourceRequest { get; set; } + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + string ResourceRequestCpu { get; set; } + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + string ResourceRequestMemory { get; set; } + /// The build result triggered by this build + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult TriggeredBuildResult { get; set; } + /// The unique build id of this build result + string TriggeredBuildResultId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.json.cs new file mode 100644 index 000000000000..9b0eef3a27e4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build resource properties payload + public partial class BuildProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_triggeredBuildResult = If( json?.PropertyT("triggeredBuildResult"), out var __jsonTriggeredBuildResult) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TriggeredBuildResult.FromJson(__jsonTriggeredBuildResult) : TriggeredBuildResult;} + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_relativePath = If( json?.PropertyT("relativePath"), out var __jsonRelativePath) ? (string)__jsonRelativePath : (string)RelativePath;} + {_builder = If( json?.PropertyT("builder"), out var __jsonBuilder) ? (string)__jsonBuilder : (string)Builder;} + {_agentPool = If( json?.PropertyT("agentPool"), out var __jsonAgentPool) ? (string)__jsonAgentPool : (string)AgentPool;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_env = If( json?.PropertyT("env"), out var __jsonEnv) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnv.FromJson(__jsonEnv) : Env;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._triggeredBuildResult ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._triggeredBuildResult.ToJson(null,serializationMode) : null, "triggeredBuildResult" ,container.Add ); + } + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + AddIf( null != (((object)this._relativePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._relativePath.ToString()) : null, "relativePath" ,container.Add ); + AddIf( null != (((object)this._builder)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._builder.ToString()) : null, "builder" ,container.Add ); + AddIf( null != (((object)this._agentPool)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._agentPool.ToString()) : null, "agentPool" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != this._env ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._env.ToJson(null,serializationMode) : null, "env" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.PowerShell.cs new file mode 100644 index 000000000000..ac6b178e5295 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The environment variables for this build + [System.ComponentModel.TypeConverter(typeof(BuildPropertiesEnvTypeConverter))] + public partial class BuildPropertiesEnv + { + + /// + /// 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 BuildPropertiesEnv(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 BuildPropertiesEnv(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.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildPropertiesEnv(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.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildPropertiesEnv(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.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The environment variables for this build + [System.ComponentModel.TypeConverter(typeof(BuildPropertiesEnvTypeConverter))] + public partial interface IBuildPropertiesEnv + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.TypeConverter.cs new file mode 100644 index 000000000000..aad4c3c8dc0d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildPropertiesEnvTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildPropertiesEnv.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildPropertiesEnv.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildPropertiesEnv.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/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.cs new file mode 100644 index 000000000000..60e24eb15266 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The environment variables for this build + public partial class BuildPropertiesEnv : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnvInternal + { + + /// Creates an new instance. + public BuildPropertiesEnv() + { + + } + } + /// The environment variables for this build + public partial interface IBuildPropertiesEnv : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// The environment variables for this build + internal partial interface IBuildPropertiesEnvInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.dictionary.cs new file mode 100644 index 000000000000..edd7a5daa13a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class BuildPropertiesEnv : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.BuildPropertiesEnv source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.json.cs new file mode 100644 index 000000000000..667781295aaf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildPropertiesEnv.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The environment variables for this build + public partial class BuildPropertiesEnv + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal BuildPropertiesEnv(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildPropertiesEnv(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..3e9b796c75ac --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Resource request payload of Build Resource. + [System.ComponentModel.TypeConverter(typeof(BuildResourceRequestsTypeConverter))] + public partial class BuildResourceRequests + { + + /// + /// 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 BuildResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)this).Memory, 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 BuildResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal)this).Memory, 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.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildResourceRequests(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.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildResourceRequests(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.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Resource request payload of Build Resource. + [System.ComponentModel.TypeConverter(typeof(BuildResourceRequestsTypeConverter))] + public partial interface IBuildResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..4bc78e74ea1b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.cs new file mode 100644 index 000000000000..0d626eb1c64d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource request payload of Build Resource. + public partial class BuildResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; set => this._cpu = value; } + + /// Backing field for property. + private string _memory; + + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; set => this._memory = value; } + + /// Creates an new instance. + public BuildResourceRequests() + { + + } + } + /// Resource request payload of Build Resource. + public partial interface IBuildResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + The default value is 1, this should not exceed build service agent pool cpu size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; set; } + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + The default value is 2Gi, this should not exceed build service agent pool memory size.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; set; } + + } + /// Resource request payload of Build Resource. + internal partial interface IBuildResourceRequestsInternal + + { + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. + /// The default value is 1, this should not exceed build service agent pool cpu size. + /// + string Cpu { get; set; } + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. + /// The default value is 2Gi, this should not exceed build service agent pool memory size. + /// + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.json.cs new file mode 100644 index 000000000000..3f1668afb55d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource request payload of Build Resource. + public partial class BuildResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildResourceRequests(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.PowerShell.cs new file mode 100644 index 000000000000..4ce9e78640f5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.PowerShell.cs @@ -0,0 +1,280 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build result resource payload + [System.ComponentModel.TypeConverter(typeof(BuildResultTypeConverter))] + public partial class BuildResult + { + + /// + /// 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 BuildResult(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.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("PropertiesName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).PropertiesName = (string) content.GetValueForProperty("PropertiesName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).PropertiesName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState.CreateFrom); + } + if (content.Contains("BuildPodName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).BuildPodName = (string) content.GetValueForProperty("BuildPodName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).BuildPodName, global::System.Convert.ToString); + } + if (content.Contains("BuildStage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).BuildStage = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[]) content.GetValueForProperty("BuildStage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).BuildStage, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildStagePropertiesTypeConverter.ConvertFrom)); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)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 BuildResult(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.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("PropertiesName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).PropertiesName = (string) content.GetValueForProperty("PropertiesName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).PropertiesName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState.CreateFrom); + } + if (content.Contains("BuildPodName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).BuildPodName = (string) content.GetValueForProperty("BuildPodName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).BuildPodName, global::System.Convert.ToString); + } + if (content.Contains("BuildStage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).BuildStage = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[]) content.GetValueForProperty("BuildStage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).BuildStage, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildStagePropertiesTypeConverter.ConvertFrom)); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal)this).Message, 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.AppPlatform.Models.Api20221101Preview.IBuildResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildResult(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.AppPlatform.Models.Api20221101Preview.IBuildResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildResult(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.AppPlatform.Models.Api20221101Preview.IBuildResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build result resource payload + [System.ComponentModel.TypeConverter(typeof(BuildResultTypeConverter))] + public partial interface IBuildResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.TypeConverter.cs new file mode 100644 index 000000000000..e3a56f60fdec --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildResultTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildResult.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/appplatform/generated/api/Models/Api20221101Preview/BuildResult.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.cs new file mode 100644 index 000000000000..9ab097a95ea7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build result resource payload + public partial class BuildResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// The build pod name which can be used to get the build log streaming. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string BuildPodName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).BuildPodName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).BuildPodName = value ?? null; } + + /// All of the build stage (init-container and container) resources in build pod. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] BuildStage { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).BuildStage; } + + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).Code = value ?? null; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).Message = value ?? null; } + + /// Internal Acessors for BuildStage + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal.BuildStage { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).BuildStage; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).BuildStage = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal.Error { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).Error; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).Error = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// The name of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PropertiesName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).Name = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties _property; + + /// Properties of the build result resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultProperties()); set => this._property = value; } + + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)Property).ProvisioningState; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public BuildResult() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Build result resource payload + public partial interface IBuildResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The build pod name which can be used to get the build log streaming. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The build pod name which can be used to get the build log streaming.", + SerializedName = @"buildPodName", + PossibleTypes = new [] { typeof(string) })] + string BuildPodName { get; set; } + /// All of the build stage (init-container and container) resources in build pod. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"All of the build stage (init-container and container) resources in build pod.", + SerializedName = @"buildStages", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] BuildStage { get; } + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// The name of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of this build result", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string PropertiesName { get; set; } + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the KPack build result", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? ProvisioningState { get; } + + } + /// Build result resource payload + internal partial interface IBuildResultInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The build pod name which can be used to get the build log streaming. + string BuildPodName { get; set; } + /// All of the build stage (init-container and container) resources in build pod. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] BuildStage { get; set; } + /// The code of error. + string Code { get; set; } + /// Error when build is failed. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get; set; } + /// The message of error. + string Message { get; set; } + /// The name of this build result + string PropertiesName { get; set; } + /// Properties of the build result resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties Property { get; set; } + /// Provisioning state of the KPack build result + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.json.cs new file mode 100644 index 000000000000..d22d1736f2d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build result resource payload + public partial class BuildResult + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildResult(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildResult(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.PowerShell.cs new file mode 100644 index 000000000000..8c356c3410d6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Build result resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(BuildResultCollectionTypeConverter))] + public partial class BuildResultCollection + { + + /// + /// 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 BuildResultCollection(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.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal)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 BuildResultCollection(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.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResultTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IBuildResultCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildResultCollection(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.AppPlatform.Models.Api20221101Preview.IBuildResultCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildResultCollection(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.AppPlatform.Models.Api20221101Preview.IBuildResultCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Build result resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(BuildResultCollectionTypeConverter))] + public partial interface IBuildResultCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.TypeConverter.cs new file mode 100644 index 000000000000..09744afe6848 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildResultCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResultCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildResultCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildResultCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildResultCollection.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/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.cs new file mode 100644 index 000000000000..6a78274be3b9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Build result resources and a possible link for next set + /// + public partial class BuildResultCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult[] _value; + + /// Collection of Build result resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BuildResultCollection() + { + + } + } + /// Object that includes an array of Build result resources and a possible link for next set + public partial interface IBuildResultCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Build result resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Build result resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult[] Value { get; set; } + + } + /// Object that includes an array of Build result resources and a possible link for next set + internal partial interface IBuildResultCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Build result resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.json.cs new file mode 100644 index 000000000000..25f41f213eaf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Build result resources and a possible link for next set + /// + public partial class BuildResultCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildResultCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuildResult) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildResult.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildResultCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.PowerShell.cs new file mode 100644 index 000000000000..b10b20b854bb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build result log resource properties payload + [System.ComponentModel.TypeConverter(typeof(BuildResultLogTypeConverter))] + public partial class BuildResultLog + { + + /// + /// 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 BuildResultLog(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("BlobUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLogInternal)this).BlobUrl = (string) content.GetValueForProperty("BlobUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLogInternal)this).BlobUrl, 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 BuildResultLog(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("BlobUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLogInternal)this).BlobUrl = (string) content.GetValueForProperty("BlobUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLogInternal)this).BlobUrl, 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.AppPlatform.Models.Api20221101Preview.IBuildResultLog DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildResultLog(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.AppPlatform.Models.Api20221101Preview.IBuildResultLog DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildResultLog(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.AppPlatform.Models.Api20221101Preview.IBuildResultLog FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build result log resource properties payload + [System.ComponentModel.TypeConverter(typeof(BuildResultLogTypeConverter))] + public partial interface IBuildResultLog + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.TypeConverter.cs new file mode 100644 index 000000000000..3bd485d0ff07 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildResultLogTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResultLog ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildResultLog.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildResultLog.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildResultLog.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/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.cs new file mode 100644 index 000000000000..cc63ab2d835b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build result log resource properties payload + public partial class BuildResultLog : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLogInternal + { + + /// Backing field for property. + private string _blobUrl; + + /// The public download URL of this build result log + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BlobUrl { get => this._blobUrl; set => this._blobUrl = value; } + + /// Creates an new instance. + public BuildResultLog() + { + + } + } + /// Build result log resource properties payload + public partial interface IBuildResultLog : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The public download URL of this build result log + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public download URL of this build result log", + SerializedName = @"blobUrl", + PossibleTypes = new [] { typeof(string) })] + string BlobUrl { get; set; } + + } + /// Build result log resource properties payload + internal partial interface IBuildResultLogInternal + + { + /// The public download URL of this build result log + string BlobUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.json.cs new file mode 100644 index 000000000000..5f521f438090 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultLog.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build result log resource properties payload + public partial class BuildResultLog + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildResultLog(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_blobUrl = If( json?.PropertyT("blobUrl"), out var __jsonBlobUrl) ? (string)__jsonBlobUrl : (string)BlobUrl;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildResultLog(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._blobUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._blobUrl.ToString()) : null, "blobUrl" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.PowerShell.cs new file mode 100644 index 000000000000..40bddb4c121a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build result resource properties payload + [System.ComponentModel.TypeConverter(typeof(BuildResultPropertiesTypeConverter))] + public partial class BuildResultProperties + { + + /// + /// 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 BuildResultProperties(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.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState.CreateFrom); + } + if (content.Contains("BuildPodName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).BuildPodName = (string) content.GetValueForProperty("BuildPodName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).BuildPodName, global::System.Convert.ToString); + } + if (content.Contains("BuildStage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).BuildStage = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[]) content.GetValueForProperty("BuildStage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).BuildStage, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildStagePropertiesTypeConverter.ConvertFrom)); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)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 BuildResultProperties(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.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState.CreateFrom); + } + if (content.Contains("BuildPodName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).BuildPodName = (string) content.GetValueForProperty("BuildPodName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).BuildPodName, global::System.Convert.ToString); + } + if (content.Contains("BuildStage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).BuildStage = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[]) content.GetValueForProperty("BuildStage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).BuildStage, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildStagePropertiesTypeConverter.ConvertFrom)); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal)this).Message, 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.AppPlatform.Models.Api20221101Preview.IBuildResultProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildResultProperties(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.AppPlatform.Models.Api20221101Preview.IBuildResultProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildResultProperties(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.AppPlatform.Models.Api20221101Preview.IBuildResultProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build result resource properties payload + [System.ComponentModel.TypeConverter(typeof(BuildResultPropertiesTypeConverter))] + public partial interface IBuildResultProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.TypeConverter.cs new file mode 100644 index 000000000000..717fe2f4974f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildResultPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResultProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildResultProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildResultProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildResultProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.cs new file mode 100644 index 000000000000..05c302dac14d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build result resource properties payload + public partial class BuildResultProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal + { + + /// Backing field for property. + private string _buildPodName; + + /// The build pod name which can be used to get the build log streaming. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuildPodName { get => this._buildPodName; set => this._buildPodName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] _buildStage; + + /// All of the build stage (init-container and container) resources in build pod. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] BuildStage { get => this._buildStage; } + + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Code = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError _error; + + /// Error when build is failed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Error()); set => this._error = value; } + + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Message = value ?? null; } + + /// Internal Acessors for BuildStage + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal.BuildStage { get => this._buildStage; set { {_buildStage = value;} } } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Error()); set { {_error = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? _provisioningState; + + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public BuildResultProperties() + { + + } + } + /// Build result resource properties payload + public partial interface IBuildResultProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The build pod name which can be used to get the build log streaming. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The build pod name which can be used to get the build log streaming.", + SerializedName = @"buildPodName", + PossibleTypes = new [] { typeof(string) })] + string BuildPodName { get; set; } + /// All of the build stage (init-container and container) resources in build pod. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"All of the build stage (init-container and container) resources in build pod.", + SerializedName = @"buildStages", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] BuildStage { get; } + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// The name of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of this build result", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the KPack build result", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? ProvisioningState { get; } + + } + /// Build result resource properties payload + internal partial interface IBuildResultPropertiesInternal + + { + /// The build pod name which can be used to get the build log streaming. + string BuildPodName { get; set; } + /// All of the build stage (init-container and container) resources in build pod. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties[] BuildStage { get; set; } + /// The code of error. + string Code { get; set; } + /// Error when build is failed. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get; set; } + /// The message of error. + string Message { get; set; } + /// The name of this build result + string Name { get; set; } + /// Provisioning state of the KPack build result + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.json.cs new file mode 100644 index 000000000000..fcc19ea4d12a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultProperties.json.cs @@ -0,0 +1,130 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build result resource properties payload + public partial class BuildResultProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildResultProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.Error.FromJson(__jsonError) : Error;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_buildPodName = If( json?.PropertyT("buildPodName"), out var __jsonBuildPodName) ? (string)__jsonBuildPodName : (string)BuildPodName;} + {_buildStage = If( json?.PropertyT("buildStages"), out var __jsonBuildStages) ? If( __jsonBuildStages as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuildStageProperties) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildStageProperties.FromJson(__u) )) ))() : null : BuildStage;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildResultProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._error.ToJson(null,serializationMode) : null, "error" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._buildPodName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._buildPodName.ToString()) : null, "buildPodName" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._buildStage) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._buildStage ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("buildStages",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.PowerShell.cs new file mode 100644 index 000000000000..f217f2ffa5c7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Reference to a build result + [System.ComponentModel.TypeConverter(typeof(BuildResultUserSourceInfoTypeConverter))] + public partial class BuildResultUserSourceInfo + { + + /// + /// 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 BuildResultUserSourceInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("BuildResultId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfoInternal)this).BuildResultId = (string) content.GetValueForProperty("BuildResultId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfoInternal)this).BuildResultId, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, 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 BuildResultUserSourceInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("BuildResultId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfoInternal)this).BuildResultId = (string) content.GetValueForProperty("BuildResultId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfoInternal)this).BuildResultId, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, 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.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildResultUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildResultUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Reference to a build result + [System.ComponentModel.TypeConverter(typeof(BuildResultUserSourceInfoTypeConverter))] + public partial interface IBuildResultUserSourceInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.TypeConverter.cs new file mode 100644 index 000000000000..b5d822ab4a61 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildResultUserSourceInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildResultUserSourceInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildResultUserSourceInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildResultUserSourceInfo.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/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.cs new file mode 100644 index 000000000000..dd22957465ba --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Reference to a build result + public partial class BuildResultUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo __userSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo(); + + /// Backing field for property. + private string _buildResultId; + + /// + /// Resource id of an existing succeeded build result under the same Spring instance. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuildResultId { get => this._buildResultId; set => this._buildResultId = value; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Type = value ; } + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Version = value ?? null; } + + /// Creates an new instance. + public BuildResultUserSourceInfo() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__userSourceInfo), __userSourceInfo); + await eventListener.AssertObjectIsValid(nameof(__userSourceInfo), __userSourceInfo); + } + } + /// Reference to a build result + public partial interface IBuildResultUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo + { + /// + /// Resource id of an existing succeeded build result under the same Spring instance. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource id of an existing succeeded build result under the same Spring instance.", + SerializedName = @"buildResultId", + PossibleTypes = new [] { typeof(string) })] + string BuildResultId { get; set; } + + } + /// Reference to a build result + internal partial interface IBuildResultUserSourceInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal + { + /// + /// Resource id of an existing succeeded build result under the same Spring instance. + /// + string BuildResultId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.json.cs new file mode 100644 index 000000000000..fc012d56776c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildResultUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Reference to a build result + public partial class BuildResultUserSourceInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildResultUserSourceInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __userSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo(json); + {_buildResultId = If( json?.PropertyT("buildResultId"), out var __jsonBuildResultId) ? (string)__jsonBuildResultId : (string)BuildResultId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultUserSourceInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildResultUserSourceInfo(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __userSourceInfo?.ToJson(container, serializationMode); + AddIf( null != (((object)this._buildResultId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._buildResultId.ToString()) : null, "buildResultId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.PowerShell.cs new file mode 100644 index 000000000000..ee566967452b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.PowerShell.cs @@ -0,0 +1,264 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build service resource payload + [System.ComponentModel.TypeConverter(typeof(BuildServiceTypeConverter))] + public partial class BuildService + { + + /// + /// 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 BuildService(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.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("KPackVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).KPackVersion = (string) content.GetValueForProperty("KPackVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).KPackVersion, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState.CreateFrom); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequestMemory, 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 BuildService(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.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("KPackVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).KPackVersion = (string) content.GetValueForProperty("KPackVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).KPackVersion, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState.CreateFrom); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal)this).ResourceRequestMemory, 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.AppPlatform.Models.Api20221101Preview.IBuildService DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildService(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.AppPlatform.Models.Api20221101Preview.IBuildService DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildService(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.AppPlatform.Models.Api20221101Preview.IBuildService FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build service resource payload + [System.ComponentModel.TypeConverter(typeof(BuildServiceTypeConverter))] + public partial interface IBuildService + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.TypeConverter.cs new file mode 100644 index 000000000000..29a473ad0545 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildServiceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildService ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildService.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildService.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildService.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/appplatform/generated/api/Models/Api20221101Preview/BuildService.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.cs new file mode 100644 index 000000000000..a22326332cbf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build service resource payload + public partial class BuildService : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// The installed KPack version in this build service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string KPackVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).KPackVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).KPackVersion = value ?? null; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal.ResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ResourceRequest = value; } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ResourceRequestCpu = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ResourceRequestMemory = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties _property; + + /// Properties of the build resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceProperties()); set => this._property = value; } + + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ProvisioningState; } + + /// vCPU allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ResourceRequestCpu; } + + /// Memory allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)Property).ResourceRequestMemory; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public BuildService() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Build service resource payload + public partial interface IBuildService : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The installed KPack version in this build service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The installed KPack version in this build service.", + SerializedName = @"kPackVersion", + PossibleTypes = new [] { typeof(string) })] + string KPackVersion { get; set; } + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the KPack build result", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? ProvisioningState { get; } + /// vCPU allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"vCPU allocated to the entire build service node pool.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Memory allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to the entire build service node pool.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + /// Build service resource payload + internal partial interface IBuildServiceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The installed KPack version in this build service. + string KPackVersion { get; set; } + /// Properties of the build resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties Property { get; set; } + /// Provisioning state of the KPack build result + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? ProvisioningState { get; set; } + /// The runtime resource configuration of this build service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests ResourceRequest { get; set; } + /// vCPU allocated to the entire build service node pool. + string ResourceRequestCpu { get; set; } + /// Memory allocated to the entire build service node pool. + string ResourceRequestMemory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.json.cs new file mode 100644 index 000000000000..b2ff40406a25 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildService.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build service resource payload + public partial class BuildService + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildService(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildService(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.PowerShell.cs new file mode 100644 index 000000000000..2c4f39b68d0a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build service agent pool properties + [System.ComponentModel.TypeConverter(typeof(BuildServiceAgentPoolPropertiesTypeConverter))] + public partial class BuildServiceAgentPoolProperties + { + + /// + /// 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 BuildServiceAgentPoolProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PoolSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSize = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties) content.GetValueForProperty("PoolSize",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSize, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).ProvisioningState = (string) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).ProvisioningState, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeName = (string) content.GetValueForProperty("PoolSizeName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeName, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeCpu = (string) content.GetValueForProperty("PoolSizeCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeCpu, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeMemory = (string) content.GetValueForProperty("PoolSizeMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeMemory, 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 BuildServiceAgentPoolProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PoolSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSize = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties) content.GetValueForProperty("PoolSize",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSize, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).ProvisioningState = (string) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).ProvisioningState, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeName = (string) content.GetValueForProperty("PoolSizeName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeName, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeCpu = (string) content.GetValueForProperty("PoolSizeCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeCpu, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeMemory = (string) content.GetValueForProperty("PoolSizeMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)this).PoolSizeMemory, 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildServiceAgentPoolProperties(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildServiceAgentPoolProperties(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build service agent pool properties + [System.ComponentModel.TypeConverter(typeof(BuildServiceAgentPoolPropertiesTypeConverter))] + public partial interface IBuildServiceAgentPoolProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.TypeConverter.cs new file mode 100644 index 000000000000..621287492b13 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildServiceAgentPoolPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildServiceAgentPoolProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildServiceAgentPoolProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildServiceAgentPoolProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.cs new file mode 100644 index 000000000000..8f7c3e2e99f6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build service agent pool properties + public partial class BuildServiceAgentPoolProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal + { + + /// Internal Acessors for PoolSize + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal.PoolSize { get => (this._poolSize = this._poolSize ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizeProperties()); set { {_poolSize = value;} } } + + /// Internal Acessors for PoolSizeCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal.PoolSizeCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)PoolSize).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)PoolSize).Cpu = value; } + + /// Internal Acessors for PoolSizeMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal.PoolSizeMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)PoolSize).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)PoolSize).Memory = value; } + + /// Internal Acessors for ProvisioningState + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties _poolSize; + + /// build service agent pool size properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties PoolSize { get => (this._poolSize = this._poolSize ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizeProperties()); set => this._poolSize = value; } + + /// The cpu property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PoolSizeCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)PoolSize).Cpu; } + + /// The memory property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PoolSizeMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)PoolSize).Memory; } + + /// The name of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PoolSizeName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)PoolSize).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)PoolSize).Name = value ?? null; } + + /// Backing field for property. + private string _provisioningState; + + /// Provisioning state of the build service agent pool + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public BuildServiceAgentPoolProperties() + { + + } + } + /// Build service agent pool properties + public partial interface IBuildServiceAgentPoolProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The cpu property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cpu property of build service agent pool size", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string PoolSizeCpu { get; } + /// The memory property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The memory property of build service agent pool size", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string PoolSizeMemory { get; } + /// The name of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of build service agent pool size", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string PoolSizeName { get; set; } + /// Provisioning state of the build service agent pool + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the build service agent pool", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(string) })] + string ProvisioningState { get; } + + } + /// Build service agent pool properties + internal partial interface IBuildServiceAgentPoolPropertiesInternal + + { + /// build service agent pool size properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties PoolSize { get; set; } + /// The cpu property of build service agent pool size + string PoolSizeCpu { get; set; } + /// The memory property of build service agent pool size + string PoolSizeMemory { get; set; } + /// The name of build service agent pool size + string PoolSizeName { get; set; } + /// Provisioning state of the build service agent pool + string ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.json.cs new file mode 100644 index 000000000000..5ba6419833bf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build service agent pool properties + public partial class BuildServiceAgentPoolProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildServiceAgentPoolProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_poolSize = If( json?.PropertyT("poolSize"), out var __jsonPoolSize) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizeProperties.FromJson(__jsonPoolSize) : PoolSize;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildServiceAgentPoolProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._poolSize ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._poolSize.ToJson(null,serializationMode) : null, "poolSize" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.PowerShell.cs new file mode 100644 index 000000000000..b248a212aa97 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.PowerShell.cs @@ -0,0 +1,266 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The build service agent pool resource + [System.ComponentModel.TypeConverter(typeof(BuildServiceAgentPoolResourceTypeConverter))] + public partial class BuildServiceAgentPoolResource + { + + /// + /// 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 BuildServiceAgentPoolResource(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PoolSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSize = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties) content.GetValueForProperty("PoolSize",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSize, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).ProvisioningState = (string) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).ProvisioningState, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeName = (string) content.GetValueForProperty("PoolSizeName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeName, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeCpu = (string) content.GetValueForProperty("PoolSizeCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeCpu, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeMemory = (string) content.GetValueForProperty("PoolSizeMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeMemory, 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 BuildServiceAgentPoolResource(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PoolSize")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSize = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties) content.GetValueForProperty("PoolSize",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSize, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolSizePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).ProvisioningState = (string) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).ProvisioningState, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeName = (string) content.GetValueForProperty("PoolSizeName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeName, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeCpu = (string) content.GetValueForProperty("PoolSizeCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeCpu, global::System.Convert.ToString); + } + if (content.Contains("PoolSizeMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeMemory = (string) content.GetValueForProperty("PoolSizeMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal)this).PoolSizeMemory, 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildServiceAgentPoolResource(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildServiceAgentPoolResource(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The build service agent pool resource + [System.ComponentModel.TypeConverter(typeof(BuildServiceAgentPoolResourceTypeConverter))] + public partial interface IBuildServiceAgentPoolResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.TypeConverter.cs new file mode 100644 index 000000000000..a3f1fcdaf2c2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildServiceAgentPoolResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildServiceAgentPoolResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildServiceAgentPoolResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildServiceAgentPoolResource.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.cs new file mode 100644 index 000000000000..73299aa3b1ff --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The build service agent pool resource + public partial class BuildServiceAgentPoolResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for PoolSize + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal.PoolSize { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSize; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSize = value; } + + /// Internal Acessors for PoolSizeCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal.PoolSizeCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSizeCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSizeCpu = value; } + + /// Internal Acessors for PoolSizeMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal.PoolSizeMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSizeMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSizeMemory = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// The cpu property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PoolSizeCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSizeCpu; } + + /// The memory property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PoolSizeMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSizeMemory; } + + /// The name of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PoolSizeName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSizeName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).PoolSizeName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties _property; + + /// build service agent pool properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolProperties()); set => this._property = value; } + + /// Provisioning state of the build service agent pool + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolPropertiesInternal)Property).ProvisioningState; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public BuildServiceAgentPoolResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// The build service agent pool resource + public partial interface IBuildServiceAgentPoolResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The cpu property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cpu property of build service agent pool size", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string PoolSizeCpu { get; } + /// The memory property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The memory property of build service agent pool size", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string PoolSizeMemory { get; } + /// The name of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of build service agent pool size", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string PoolSizeName { get; set; } + /// Provisioning state of the build service agent pool + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the build service agent pool", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(string) })] + string ProvisioningState { get; } + + } + /// The build service agent pool resource + internal partial interface IBuildServiceAgentPoolResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// build service agent pool size properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties PoolSize { get; set; } + /// The cpu property of build service agent pool size + string PoolSizeCpu { get; set; } + /// The memory property of build service agent pool size + string PoolSizeMemory { get; set; } + /// The name of build service agent pool size + string PoolSizeName { get; set; } + /// build service agent pool properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolProperties Property { get; set; } + /// Provisioning state of the build service agent pool + string ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.json.cs new file mode 100644 index 000000000000..23aada2a37ce --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The build service agent pool resource + public partial class BuildServiceAgentPoolResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildServiceAgentPoolResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildServiceAgentPoolResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..43caac961c4e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.PowerShell.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of build service agent pool resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(BuildServiceAgentPoolResourceCollectionTypeConverter))] + public partial class BuildServiceAgentPoolResourceCollection + { + + /// + /// 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 BuildServiceAgentPoolResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal)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 BuildServiceAgentPoolResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildServiceAgentPoolResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildServiceAgentPoolResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of build service agent pool resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(BuildServiceAgentPoolResourceCollectionTypeConverter))] + public partial interface IBuildServiceAgentPoolResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..ab4f184dc5e0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildServiceAgentPoolResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildServiceAgentPoolResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildServiceAgentPoolResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildServiceAgentPoolResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.cs new file mode 100644 index 000000000000..b5165b2ae99c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of build service agent pool resources and a possible link for next set + /// + public partial class BuildServiceAgentPoolResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource[] _value; + + /// Collection of build service agent pool resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BuildServiceAgentPoolResourceCollection() + { + + } + } + /// Object that includes an array of build service agent pool resources and a possible link for next set + public partial interface IBuildServiceAgentPoolResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of build service agent pool resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of build service agent pool resource", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource[] Value { get; set; } + + } + /// Object that includes an array of build service agent pool resources and a possible link for next set + internal partial interface IBuildServiceAgentPoolResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of build service agent pool resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.json.cs new file mode 100644 index 000000000000..8e80465948c9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of build service agent pool resources and a possible link for next set + /// + public partial class BuildServiceAgentPoolResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildServiceAgentPoolResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceAgentPoolResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildServiceAgentPoolResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.PowerShell.cs new file mode 100644 index 000000000000..7038eedcad54 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build service agent pool size properties + [System.ComponentModel.TypeConverter(typeof(BuildServiceAgentPoolSizePropertiesTypeConverter))] + public partial class BuildServiceAgentPoolSizeProperties + { + + /// + /// 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 BuildServiceAgentPoolSizeProperties(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Memory, 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 BuildServiceAgentPoolSizeProperties(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal)this).Memory, 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildServiceAgentPoolSizeProperties(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildServiceAgentPoolSizeProperties(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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build service agent pool size properties + [System.ComponentModel.TypeConverter(typeof(BuildServiceAgentPoolSizePropertiesTypeConverter))] + public partial interface IBuildServiceAgentPoolSizeProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.TypeConverter.cs new file mode 100644 index 000000000000..4c8697fac2a8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildServiceAgentPoolSizePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildServiceAgentPoolSizeProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildServiceAgentPoolSizeProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildServiceAgentPoolSizeProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.cs new file mode 100644 index 000000000000..73b063901990 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build service agent pool size properties + public partial class BuildServiceAgentPoolSizeProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal + { + + /// Backing field for property. + private string _cpu; + + /// The cpu property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private string _memory; + + /// The memory property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizePropertiesInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public BuildServiceAgentPoolSizeProperties() + { + + } + } + /// Build service agent pool size properties + public partial interface IBuildServiceAgentPoolSizeProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The cpu property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The cpu property of build service agent pool size", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// The memory property of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The memory property of build service agent pool size", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + /// The name of build service agent pool size + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of build service agent pool size", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Build service agent pool size properties + internal partial interface IBuildServiceAgentPoolSizePropertiesInternal + + { + /// The cpu property of build service agent pool size + string Cpu { get; set; } + /// The memory property of build service agent pool size + string Memory { get; set; } + /// The name of build service agent pool size + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.json.cs new file mode 100644 index 000000000000..c0df4e45266d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceAgentPoolSizeProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build service agent pool size properties + public partial class BuildServiceAgentPoolSizeProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildServiceAgentPoolSizeProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolSizeProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildServiceAgentPoolSizeProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.PowerShell.cs new file mode 100644 index 000000000000..c7806f2bb8cb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Build service resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(BuildServiceCollectionTypeConverter))] + public partial class BuildServiceCollection + { + + /// + /// 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 BuildServiceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal)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 BuildServiceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServiceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildServiceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildServiceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Build service resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(BuildServiceCollectionTypeConverter))] + public partial interface IBuildServiceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.TypeConverter.cs new file mode 100644 index 000000000000..56d4c39b5e61 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildServiceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildServiceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildServiceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildServiceCollection.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.cs new file mode 100644 index 000000000000..9f9176f4a87e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Build service resources and a possible link for next set + /// + public partial class BuildServiceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService[] _value; + + /// Collection of Build service resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BuildServiceCollection() + { + + } + } + /// Object that includes an array of Build service resources and a possible link for next set + public partial interface IBuildServiceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Build service resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Build service resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService[] Value { get; set; } + + } + /// Object that includes an array of Build service resources and a possible link for next set + internal partial interface IBuildServiceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Build service resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.json.cs new file mode 100644 index 000000000000..f8d37f2df339 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Build service resources and a possible link for next set + /// + public partial class BuildServiceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildServiceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuildService) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildService.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildServiceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.PowerShell.cs new file mode 100644 index 000000000000..7ebd8052192b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Build service resource properties payload + [System.ComponentModel.TypeConverter(typeof(BuildServicePropertiesTypeConverter))] + public partial class BuildServiceProperties + { + + /// + /// 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 BuildServiceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("KPackVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).KPackVersion = (string) content.GetValueForProperty("KPackVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).KPackVersion, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState.CreateFrom); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequestMemory, 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 BuildServiceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("KPackVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).KPackVersion = (string) content.GetValueForProperty("KPackVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).KPackVersion, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState.CreateFrom); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal)this).ResourceRequestMemory, 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.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildServiceProperties(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.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildServiceProperties(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.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Build service resource properties payload + [System.ComponentModel.TypeConverter(typeof(BuildServicePropertiesTypeConverter))] + public partial interface IBuildServiceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.TypeConverter.cs new file mode 100644 index 000000000000..8a2640ff0546 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildServicePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildServiceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildServiceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildServiceProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.cs new file mode 100644 index 000000000000..d7a5b9a94bcb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build service resource properties payload + public partial class BuildServiceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal + { + + /// Backing field for property. + private string _kPackVersion; + + /// The installed KPack version in this build service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string KPackVersion { get => this._kPackVersion; set => this._kPackVersion = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)ResourceRequest).Cpu = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)ResourceRequest).Memory = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? _provisioningState; + + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests _resourceRequest; + + /// The runtime resource configuration of this build service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequests()); set => this._resourceRequest = value; } + + /// vCPU allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)ResourceRequest).Cpu; } + + /// Memory allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)ResourceRequest).Memory; } + + /// Creates an new instance. + public BuildServiceProperties() + { + + } + } + /// Build service resource properties payload + public partial interface IBuildServiceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The installed KPack version in this build service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The installed KPack version in this build service.", + SerializedName = @"kPackVersion", + PossibleTypes = new [] { typeof(string) })] + string KPackVersion { get; set; } + /// Provisioning state of the KPack build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the KPack build result", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? ProvisioningState { get; } + /// vCPU allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"vCPU allocated to the entire build service node pool.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Memory allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to the entire build service node pool.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + /// Build service resource properties payload + internal partial interface IBuildServicePropertiesInternal + + { + /// The installed KPack version in this build service. + string KPackVersion { get; set; } + /// Provisioning state of the KPack build result + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState? ProvisioningState { get; set; } + /// The runtime resource configuration of this build service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests ResourceRequest { get; set; } + /// vCPU allocated to the entire build service node pool. + string ResourceRequestCpu { get; set; } + /// Memory allocated to the entire build service node pool. + string ResourceRequestMemory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.json.cs new file mode 100644 index 000000000000..84723ab12532 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServiceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Build service resource properties payload + public partial class BuildServiceProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildServiceProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildServicePropertiesResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_kPackVersion = If( json?.PropertyT("kPackVersion"), out var __jsonKPackVersion) ? (string)__jsonKPackVersion : (string)KPackVersion;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildServiceProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + AddIf( null != (((object)this._kPackVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._kPackVersion.ToString()) : null, "kPackVersion" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..11700e770a7c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The runtime resource configuration of this build service. + [System.ComponentModel.TypeConverter(typeof(BuildServicePropertiesResourceRequestsTypeConverter))] + public partial class BuildServicePropertiesResourceRequests + { + + /// + /// 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 BuildServicePropertiesResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)this).Memory, 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 BuildServicePropertiesResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal)this).Memory, 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.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildServicePropertiesResourceRequests(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.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildServicePropertiesResourceRequests(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.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The runtime resource configuration of this build service. + [System.ComponentModel.TypeConverter(typeof(BuildServicePropertiesResourceRequestsTypeConverter))] + public partial interface IBuildServicePropertiesResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..1e5adaf9195e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildServicePropertiesResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildServicePropertiesResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildServicePropertiesResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildServicePropertiesResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.cs new file mode 100644 index 000000000000..8fd2f0f800e6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The runtime resource configuration of this build service. + public partial class BuildServicePropertiesResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// vCPU allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private string _memory; + + /// Memory allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequestsInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Creates an new instance. + public BuildServicePropertiesResourceRequests() + { + + } + } + /// The runtime resource configuration of this build service. + public partial interface IBuildServicePropertiesResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// vCPU allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"vCPU allocated to the entire build service node pool.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// Memory allocated to the entire build service node pool. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to the entire build service node pool.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + + } + /// The runtime resource configuration of this build service. + internal partial interface IBuildServicePropertiesResourceRequestsInternal + + { + /// vCPU allocated to the entire build service node pool. + string Cpu { get; set; } + /// Memory allocated to the entire build service node pool. + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.json.cs new file mode 100644 index 000000000000..f56cf08a68dc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildServicePropertiesResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The runtime resource configuration of this build service. + public partial class BuildServicePropertiesResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildServicePropertiesResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServicePropertiesResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildServicePropertiesResourceRequests(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.PowerShell.cs new file mode 100644 index 000000000000..8aa2c6f3a734 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The build stage (init-container and container) resources in build pod. + [System.ComponentModel.TypeConverter(typeof(BuildStagePropertiesTypeConverter))] + public partial class BuildStageProperties + { + + /// + /// 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 BuildStageProperties(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.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState.CreateFrom); + } + if (content.Contains("ExitCode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).ExitCode = (string) content.GetValueForProperty("ExitCode",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).ExitCode, global::System.Convert.ToString); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Reason, 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 BuildStageProperties(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.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState.CreateFrom); + } + if (content.Contains("ExitCode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).ExitCode = (string) content.GetValueForProperty("ExitCode",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).ExitCode, global::System.Convert.ToString); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal)this).Reason, 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.AppPlatform.Models.Api20221101Preview.IBuildStageProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildStageProperties(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.AppPlatform.Models.Api20221101Preview.IBuildStageProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildStageProperties(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.AppPlatform.Models.Api20221101Preview.IBuildStageProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The build stage (init-container and container) resources in build pod. + [System.ComponentModel.TypeConverter(typeof(BuildStagePropertiesTypeConverter))] + public partial interface IBuildStageProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.TypeConverter.cs new file mode 100644 index 000000000000..ab3fc1f1515b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildStagePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildStageProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildStageProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildStageProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildStageProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.cs new file mode 100644 index 000000000000..5c18f7211cd5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The build stage (init-container and container) resources in build pod. + public partial class BuildStageProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal + { + + /// Backing field for property. + private string _exitCode; + + /// The exit code of this build init container. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ExitCode { get => this._exitCode; } + + /// Internal Acessors for ExitCode + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal.ExitCode { get => this._exitCode; set { {_exitCode = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Reason + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal.Reason { get => this._reason; set { {_reason = value;} } } + + /// Internal Acessors for Status + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStagePropertiesInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of this build stage resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _reason; + + /// The reason of this build init container. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Reason { get => this._reason; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState? _status; + + /// The provisioning state of this build stage resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState? Status { get => this._status; } + + /// Creates an new instance. + public BuildStageProperties() + { + + } + } + /// The build stage (init-container and container) resources in build pod. + public partial interface IBuildStageProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The exit code of this build init container. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The exit code of this build init container.", + SerializedName = @"exitCode", + PossibleTypes = new [] { typeof(string) })] + string ExitCode { get; } + /// The name of this build stage resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of this build stage resource.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// The reason of this build init container. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The reason of this build init container.", + SerializedName = @"reason", + PossibleTypes = new [] { typeof(string) })] + string Reason { get; } + /// The provisioning state of this build stage resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The provisioning state of this build stage resource.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState? Status { get; } + + } + /// The build stage (init-container and container) resources in build pod. + internal partial interface IBuildStagePropertiesInternal + + { + /// The exit code of this build init container. + string ExitCode { get; set; } + /// The name of this build stage resource. + string Name { get; set; } + /// The reason of this build init container. + string Reason { get; set; } + /// The provisioning state of this build stage resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState? Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.json.cs new file mode 100644 index 000000000000..05c2c40e2743 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildStageProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The build stage (init-container and container) resources in build pod. + public partial class BuildStageProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildStageProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + {_exitCode = If( json?.PropertyT("exitCode"), out var __jsonExitCode) ? (string)__jsonExitCode : (string)ExitCode;} + {_reason = If( json?.PropertyT("reason"), out var __jsonReason) ? (string)__jsonReason : (string)Reason;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildStageProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildStageProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._exitCode)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._exitCode.ToString()) : null, "exitCode" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._reason)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.PowerShell.cs new file mode 100644 index 000000000000..bc9ef68324e8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// KPack Builder properties payload + [System.ComponentModel.TypeConverter(typeof(BuilderPropertiesTypeConverter))] + public partial class BuilderProperties + { + + /// + /// 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 BuilderProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Stack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).Stack = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties) content.GetValueForProperty("Stack",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).Stack, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState.CreateFrom); + } + if (content.Contains("BuildpackGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).BuildpackGroup = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[]) content.GetValueForProperty("BuildpackGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).BuildpackGroup, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpacksGroupPropertiesTypeConverter.ConvertFrom)); + } + if (content.Contains("StackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).StackId = (string) content.GetValueForProperty("StackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).StackId, global::System.Convert.ToString); + } + if (content.Contains("StackVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).StackVersion = (string) content.GetValueForProperty("StackVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).StackVersion, 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 BuilderProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Stack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).Stack = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties) content.GetValueForProperty("Stack",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).Stack, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState.CreateFrom); + } + if (content.Contains("BuildpackGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).BuildpackGroup = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[]) content.GetValueForProperty("BuildpackGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).BuildpackGroup, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpacksGroupPropertiesTypeConverter.ConvertFrom)); + } + if (content.Contains("StackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).StackId = (string) content.GetValueForProperty("StackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).StackId, global::System.Convert.ToString); + } + if (content.Contains("StackVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).StackVersion = (string) content.GetValueForProperty("StackVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)this).StackVersion, 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.AppPlatform.Models.Api20221101Preview.IBuilderProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuilderProperties(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.AppPlatform.Models.Api20221101Preview.IBuilderProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuilderProperties(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.AppPlatform.Models.Api20221101Preview.IBuilderProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// KPack Builder properties payload + [System.ComponentModel.TypeConverter(typeof(BuilderPropertiesTypeConverter))] + public partial interface IBuilderProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.TypeConverter.cs new file mode 100644 index 000000000000..37d4055e4776 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuilderPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuilderProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuilderProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuilderProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuilderProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.cs new file mode 100644 index 000000000000..021758fddb87 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// KPack Builder properties payload + public partial class BuilderProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] _buildpackGroup; + + /// Builder buildpack groups. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] BuildpackGroup { get => this._buildpackGroup; set => this._buildpackGroup = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for Stack + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal.Stack { get => (this._stack = this._stack ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackProperties()); set { {_stack = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? _provisioningState; + + /// Builder provision status. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties _stack; + + /// Builder cluster stack property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties Stack { get => (this._stack = this._stack ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackProperties()); set => this._stack = value; } + + /// Id of the ClusterStack. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string StackId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)Stack).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)Stack).Id = value ?? null; } + + /// Version of the ClusterStack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string StackVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)Stack).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)Stack).Version = value ?? null; } + + /// Creates an new instance. + public BuilderProperties() + { + + } + } + /// KPack Builder properties payload + public partial interface IBuilderProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Builder buildpack groups. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Builder buildpack groups.", + SerializedName = @"buildpackGroups", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] BuildpackGroup { get; set; } + /// Builder provision status. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Builder provision status.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? ProvisioningState { get; } + /// Id of the ClusterStack. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Id of the ClusterStack.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string StackId { get; set; } + /// Version of the ClusterStack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the ClusterStack", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string StackVersion { get; set; } + + } + /// KPack Builder properties payload + internal partial interface IBuilderPropertiesInternal + + { + /// Builder buildpack groups. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] BuildpackGroup { get; set; } + /// Builder provision status. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? ProvisioningState { get; set; } + /// Builder cluster stack property. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties Stack { get; set; } + /// Id of the ClusterStack. + string StackId { get; set; } + /// Version of the ClusterStack + string StackVersion { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.json.cs new file mode 100644 index 000000000000..71a0773f4f70 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// KPack Builder properties payload + public partial class BuilderProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuilderProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_stack = If( json?.PropertyT("stack"), out var __jsonStack) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackProperties.FromJson(__jsonStack) : Stack;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_buildpackGroup = If( json?.PropertyT("buildpackGroups"), out var __jsonBuildpackGroups) ? If( __jsonBuildpackGroups as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpacksGroupProperties.FromJson(__u) )) ))() : null : BuildpackGroup;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuilderProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._stack ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._stack.ToJson(null,serializationMode) : null, "stack" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (null != this._buildpackGroup) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._buildpackGroup ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("buildpackGroups",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.PowerShell.cs new file mode 100644 index 000000000000..99a5d2ac535d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.PowerShell.cs @@ -0,0 +1,264 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// KPack Builder resource + [System.ComponentModel.TypeConverter(typeof(BuilderResourceTypeConverter))] + public partial class BuilderResource + { + + /// + /// 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 BuilderResource(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.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Stack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).Stack = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties) content.GetValueForProperty("Stack",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).Stack, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState.CreateFrom); + } + if (content.Contains("BuildpackGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).BuildpackGroup = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[]) content.GetValueForProperty("BuildpackGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).BuildpackGroup, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpacksGroupPropertiesTypeConverter.ConvertFrom)); + } + if (content.Contains("StackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).StackId = (string) content.GetValueForProperty("StackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).StackId, global::System.Convert.ToString); + } + if (content.Contains("StackVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).StackVersion = (string) content.GetValueForProperty("StackVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).StackVersion, 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 BuilderResource(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.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Stack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).Stack = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties) content.GetValueForProperty("Stack",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).Stack, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StackPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState.CreateFrom); + } + if (content.Contains("BuildpackGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).BuildpackGroup = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[]) content.GetValueForProperty("BuildpackGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).BuildpackGroup, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpacksGroupPropertiesTypeConverter.ConvertFrom)); + } + if (content.Contains("StackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).StackId = (string) content.GetValueForProperty("StackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).StackId, global::System.Convert.ToString); + } + if (content.Contains("StackVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).StackVersion = (string) content.GetValueForProperty("StackVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal)this).StackVersion, 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.AppPlatform.Models.Api20221101Preview.IBuilderResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuilderResource(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.AppPlatform.Models.Api20221101Preview.IBuilderResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuilderResource(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.AppPlatform.Models.Api20221101Preview.IBuilderResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// KPack Builder resource + [System.ComponentModel.TypeConverter(typeof(BuilderResourceTypeConverter))] + public partial interface IBuilderResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.TypeConverter.cs new file mode 100644 index 000000000000..b7f6dccddec3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuilderResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuilderResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuilderResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuilderResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuilderResource.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/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.cs new file mode 100644 index 000000000000..1a9c116737fb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// KPack Builder resource + public partial class BuilderResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Builder buildpack groups. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] BuildpackGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).BuildpackGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).BuildpackGroup = value ?? null /* arrayOf */; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Stack + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceInternal.Stack { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).Stack; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).Stack = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties _property; + + /// Property of the Builder resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderProperties()); set => this._property = value; } + + /// Builder provision status. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).ProvisioningState; } + + /// Id of the ClusterStack. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string StackId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).StackId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).StackId = value ?? null; } + + /// Version of the ClusterStack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string StackVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).StackVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderPropertiesInternal)Property).StackVersion = value ?? null; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public BuilderResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// KPack Builder resource + public partial interface IBuilderResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Builder buildpack groups. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Builder buildpack groups.", + SerializedName = @"buildpackGroups", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] BuildpackGroup { get; set; } + /// Builder provision status. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Builder provision status.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? ProvisioningState { get; } + /// Id of the ClusterStack. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Id of the ClusterStack.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string StackId { get; set; } + /// Version of the ClusterStack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the ClusterStack", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string StackVersion { get; set; } + + } + /// KPack Builder resource + internal partial interface IBuilderResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Builder buildpack groups. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] BuildpackGroup { get; set; } + /// Property of the Builder resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderProperties Property { get; set; } + /// Builder provision status. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState? ProvisioningState { get; set; } + /// Builder cluster stack property. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties Stack { get; set; } + /// Id of the ClusterStack. + string StackId { get; set; } + /// Version of the ClusterStack + string StackVersion { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.json.cs new file mode 100644 index 000000000000..bff32729024f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// KPack Builder resource + public partial class BuilderResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuilderResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuilderResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..d353d7eade88 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Builder resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(BuilderResourceCollectionTypeConverter))] + public partial class BuilderResourceCollection + { + + /// + /// 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 BuilderResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal)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 BuilderResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuilderResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuilderResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Builder resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(BuilderResourceCollectionTypeConverter))] + public partial interface IBuilderResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..b3c5051b09b7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuilderResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuilderResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuilderResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuilderResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.cs new file mode 100644 index 000000000000..3ddb2d4c551a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Builder resources and a possible link for next set + /// + public partial class BuilderResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource[] _value; + + /// Collection of Builder resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BuilderResourceCollection() + { + + } + } + /// Object that includes an array of Builder resources and a possible link for next set + public partial interface IBuilderResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Builder resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Builder resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource[] Value { get; set; } + + } + /// Object that includes an array of Builder resources and a possible link for next set + internal partial interface IBuilderResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Builder resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.json.cs new file mode 100644 index 000000000000..f39601184c57 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuilderResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Builder resources and a possible link for next set + /// + public partial class BuilderResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuilderResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuilderResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuilderResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.PowerShell.cs new file mode 100644 index 000000000000..8e756792d92a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Non-sensitive properties for launchProperties + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingLaunchPropertiesTypeConverter))] + public partial class BuildpackBindingLaunchProperties + { + + /// + /// 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 BuildpackBindingLaunchProperties(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 BuildpackBindingLaunchProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildpackBindingLaunchProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildpackBindingLaunchProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Non-sensitive properties for launchProperties + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingLaunchPropertiesTypeConverter))] + public partial interface IBuildpackBindingLaunchProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.TypeConverter.cs new file mode 100644 index 000000000000..dd46036b37c4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildpackBindingLaunchPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildpackBindingLaunchProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildpackBindingLaunchProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildpackBindingLaunchProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.cs new file mode 100644 index 000000000000..395705a6df90 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Non-sensitive properties for launchProperties + public partial class BuildpackBindingLaunchProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesInternal + { + + /// Creates an new instance. + public BuildpackBindingLaunchProperties() + { + + } + } + /// Non-sensitive properties for launchProperties + public partial interface IBuildpackBindingLaunchProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Non-sensitive properties for launchProperties + internal partial interface IBuildpackBindingLaunchPropertiesInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.dictionary.cs new file mode 100644 index 000000000000..f558690319db --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class BuildpackBindingLaunchProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.json.cs new file mode 100644 index 000000000000..387db934e0dc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Non-sensitive properties for launchProperties + public partial class BuildpackBindingLaunchProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal BuildpackBindingLaunchProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildpackBindingLaunchProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.PowerShell.cs new file mode 100644 index 000000000000..c42dcf9b5bc7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Buildpack Binding Launch Properties + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingLaunchProperties1TypeConverter))] + public partial class BuildpackBindingLaunchProperties1 + { + + /// + /// 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 BuildpackBindingLaunchProperties1(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)this).Secret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecretsTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal BuildpackBindingLaunchProperties1(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)this).Secret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecretsTypeConverter.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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildpackBindingLaunchProperties1(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildpackBindingLaunchProperties1(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Buildpack Binding Launch Properties + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingLaunchProperties1TypeConverter))] + public partial interface IBuildpackBindingLaunchProperties1 + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.TypeConverter.cs new file mode 100644 index 000000000000..5f71b68b1471 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildpackBindingLaunchProperties1TypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildpackBindingLaunchProperties1.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildpackBindingLaunchProperties1.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildpackBindingLaunchProperties1.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.cs new file mode 100644 index 000000000000..686bc75de076 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Buildpack Binding Launch Properties + public partial class BuildpackBindingLaunchProperties1 : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties _property; + + /// Non-sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties()); set => this._property = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets _secret; + + /// Sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets Secret { get => (this._secret = this._secret ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecrets()); set => this._secret = value; } + + /// Creates an new instance. + public BuildpackBindingLaunchProperties1() + { + + } + } + /// Buildpack Binding Launch Properties + public partial interface IBuildpackBindingLaunchProperties1 : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Non-sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-sensitive properties for launchProperties", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties Property { get; set; } + /// Sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sensitive properties for launchProperties", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets Secret { get; set; } + + } + /// Buildpack Binding Launch Properties + internal partial interface IBuildpackBindingLaunchProperties1Internal + + { + /// Non-sensitive properties for launchProperties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties Property { get; set; } + /// Sensitive properties for launchProperties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets Secret { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.json.cs new file mode 100644 index 000000000000..b82a98adac84 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchProperties1.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Buildpack Binding Launch Properties + public partial class BuildpackBindingLaunchProperties1 + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildpackBindingLaunchProperties1(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties.FromJson(__jsonProperties) : Property;} + {_secret = If( json?.PropertyT("secrets"), out var __jsonSecrets) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecrets.FromJson(__jsonSecrets) : Secret;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildpackBindingLaunchProperties1(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._secret ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._secret.ToJson(null,serializationMode) : null, "secrets" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.PowerShell.cs new file mode 100644 index 000000000000..0f572ad40e95 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Sensitive properties for launchProperties + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingLaunchPropertiesSecretsTypeConverter))] + public partial class BuildpackBindingLaunchPropertiesSecrets + { + + /// + /// 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 BuildpackBindingLaunchPropertiesSecrets(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 BuildpackBindingLaunchPropertiesSecrets(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildpackBindingLaunchPropertiesSecrets(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildpackBindingLaunchPropertiesSecrets(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Sensitive properties for launchProperties + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingLaunchPropertiesSecretsTypeConverter))] + public partial interface IBuildpackBindingLaunchPropertiesSecrets + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.TypeConverter.cs new file mode 100644 index 000000000000..a05d545ba255 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildpackBindingLaunchPropertiesSecretsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildpackBindingLaunchPropertiesSecrets.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildpackBindingLaunchPropertiesSecrets.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildpackBindingLaunchPropertiesSecrets.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.cs new file mode 100644 index 000000000000..da1ea7679cdc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sensitive properties for launchProperties + public partial class BuildpackBindingLaunchPropertiesSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecretsInternal + { + + /// Creates an new instance. + public BuildpackBindingLaunchPropertiesSecrets() + { + + } + } + /// Sensitive properties for launchProperties + public partial interface IBuildpackBindingLaunchPropertiesSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Sensitive properties for launchProperties + internal partial interface IBuildpackBindingLaunchPropertiesSecretsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.dictionary.cs new file mode 100644 index 000000000000..958b69535e9e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class BuildpackBindingLaunchPropertiesSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecrets source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.json.cs new file mode 100644 index 000000000000..4f065f7ef35f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingLaunchPropertiesSecrets.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sensitive properties for launchProperties + public partial class BuildpackBindingLaunchPropertiesSecrets + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal BuildpackBindingLaunchPropertiesSecrets(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildpackBindingLaunchPropertiesSecrets(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.PowerShell.cs new file mode 100644 index 000000000000..33fbeb26669b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Properties of a buildpack binding + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingPropertiesTypeConverter))] + public partial class BuildpackBindingProperties + { + + /// + /// 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 BuildpackBindingProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LaunchProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1) content.GetValueForProperty("LaunchProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties1TypeConverter.ConvertFrom); + } + if (content.Contains("BindingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).BindingType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType?) content.GetValueForProperty("BindingType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).BindingType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState.CreateFrom); + } + if (content.Contains("LaunchPropertiesProperties")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchPropertiesProperties = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) content.GetValueForProperty("LaunchPropertiesProperties",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchPropertiesProperties, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LaunchPropertySecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchPropertySecret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) content.GetValueForProperty("LaunchPropertySecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchPropertySecret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecretsTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal BuildpackBindingProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LaunchProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1) content.GetValueForProperty("LaunchProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties1TypeConverter.ConvertFrom); + } + if (content.Contains("BindingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).BindingType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType?) content.GetValueForProperty("BindingType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).BindingType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState.CreateFrom); + } + if (content.Contains("LaunchPropertiesProperties")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchPropertiesProperties = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) content.GetValueForProperty("LaunchPropertiesProperties",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchPropertiesProperties, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LaunchPropertySecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchPropertySecret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) content.GetValueForProperty("LaunchPropertySecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)this).LaunchPropertySecret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecretsTypeConverter.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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildpackBindingProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildpackBindingProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of a buildpack binding + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingPropertiesTypeConverter))] + public partial interface IBuildpackBindingProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.TypeConverter.cs new file mode 100644 index 000000000000..83d792093467 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildpackBindingPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildpackBindingProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildpackBindingProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildpackBindingProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.cs new file mode 100644 index 000000000000..ad488a6ad759 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of a buildpack binding + public partial class BuildpackBindingProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType? _bindingType; + + /// Buildpack Binding Type + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType? BindingType { get => this._bindingType; set => this._bindingType = value; } + + /// Non-sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties LaunchPropertiesProperties { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)LaunchProperty).Property; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)LaunchProperty).Property = value ?? null /* model class */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 _launchProperty; + + /// The object describes the buildpack binding launch properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 LaunchProperty { get => (this._launchProperty = this._launchProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties1()); set => this._launchProperty = value; } + + /// Sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets LaunchPropertySecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)LaunchProperty).Secret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1Internal)LaunchProperty).Secret = value ?? null /* model class */; } + + /// Internal Acessors for LaunchProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal.LaunchProperty { get => (this._launchProperty = this._launchProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties1()); set { {_launchProperty = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? _provisioningState; + + /// State of the Buildpack Binding. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public BuildpackBindingProperties() + { + + } + } + /// Properties of a buildpack binding + public partial interface IBuildpackBindingProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Buildpack Binding Type + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Buildpack Binding Type", + SerializedName = @"bindingType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType? BindingType { get; set; } + /// Non-sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-sensitive properties for launchProperties", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties LaunchPropertiesProperties { get; set; } + /// Sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sensitive properties for launchProperties", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets LaunchPropertySecret { get; set; } + /// State of the Buildpack Binding. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Buildpack Binding.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? ProvisioningState { get; } + + } + /// Properties of a buildpack binding + internal partial interface IBuildpackBindingPropertiesInternal + + { + /// Buildpack Binding Type + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType? BindingType { get; set; } + /// Non-sensitive properties for launchProperties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties LaunchPropertiesProperties { get; set; } + /// The object describes the buildpack binding launch properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 LaunchProperty { get; set; } + /// Sensitive properties for launchProperties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets LaunchPropertySecret { get; set; } + /// State of the Buildpack Binding. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.json.cs new file mode 100644 index 000000000000..cdcb3ab55a2b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of a buildpack binding + public partial class BuildpackBindingProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildpackBindingProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_launchProperty = If( json?.PropertyT("launchProperties"), out var __jsonLaunchProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties1.FromJson(__jsonLaunchProperties) : LaunchProperty;} + {_bindingType = If( json?.PropertyT("bindingType"), out var __jsonBindingType) ? (string)__jsonBindingType : (string)BindingType;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildpackBindingProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._launchProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._launchProperty.ToJson(null,serializationMode) : null, "launchProperties" ,container.Add ); + AddIf( null != (((object)this._bindingType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._bindingType.ToString()) : null, "bindingType" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.PowerShell.cs new file mode 100644 index 000000000000..9aea6f3bb318 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.PowerShell.cs @@ -0,0 +1,266 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Buildpack Binding Resource object + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingResourceTypeConverter))] + public partial class BuildpackBindingResource + { + + /// + /// 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 BuildpackBindingResource(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("BindingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).BindingType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType?) content.GetValueForProperty("BindingType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).BindingType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType.CreateFrom); + } + if (content.Contains("LaunchProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).LaunchProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1) content.GetValueForProperty("LaunchProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).LaunchProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties1TypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState.CreateFrom); + } + if (content.Contains("PropertiesLaunchPropertiesProperties")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).PropertiesLaunchPropertiesProperties = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) content.GetValueForProperty("PropertiesLaunchPropertiesProperties",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).PropertiesLaunchPropertiesProperties, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LaunchPropertySecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).LaunchPropertySecret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) content.GetValueForProperty("LaunchPropertySecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).LaunchPropertySecret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecretsTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal BuildpackBindingResource(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("BindingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).BindingType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType?) content.GetValueForProperty("BindingType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).BindingType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType.CreateFrom); + } + if (content.Contains("LaunchProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).LaunchProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1) content.GetValueForProperty("LaunchProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).LaunchProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchProperties1TypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState.CreateFrom); + } + if (content.Contains("PropertiesLaunchPropertiesProperties")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).PropertiesLaunchPropertiesProperties = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) content.GetValueForProperty("PropertiesLaunchPropertiesProperties",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).PropertiesLaunchPropertiesProperties, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("LaunchPropertySecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).LaunchPropertySecret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) content.GetValueForProperty("LaunchPropertySecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal)this).LaunchPropertySecret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingLaunchPropertiesSecretsTypeConverter.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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildpackBindingResource(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildpackBindingResource(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Buildpack Binding Resource object + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingResourceTypeConverter))] + public partial interface IBuildpackBindingResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.TypeConverter.cs new file mode 100644 index 000000000000..55ef23b3e890 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildpackBindingResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildpackBindingResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildpackBindingResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildpackBindingResource.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.cs new file mode 100644 index 000000000000..0ee346420945 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Buildpack Binding Resource object + public partial class BuildpackBindingResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Buildpack Binding Type + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType? BindingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).BindingType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).BindingType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType)""); } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets LaunchPropertySecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).LaunchPropertySecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).LaunchPropertySecret = value ?? null /* model class */; } + + /// Internal Acessors for LaunchProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal.LaunchProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).LaunchProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).LaunchProperty = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Non-sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties PropertiesLaunchPropertiesProperties { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).LaunchPropertiesProperties; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).LaunchPropertiesProperties = value ?? null /* model class */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties _property; + + /// Properties of a buildpack binding + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingProperties()); set => this._property = value; } + + /// State of the Buildpack Binding. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingPropertiesInternal)Property).ProvisioningState; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public BuildpackBindingResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Buildpack Binding Resource object + public partial interface IBuildpackBindingResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Buildpack Binding Type + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Buildpack Binding Type", + SerializedName = @"bindingType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType? BindingType { get; set; } + /// Sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sensitive properties for launchProperties", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets LaunchPropertySecret { get; set; } + /// Non-sensitive properties for launchProperties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-sensitive properties for launchProperties", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties PropertiesLaunchPropertiesProperties { get; set; } + /// State of the Buildpack Binding. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Buildpack Binding.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? ProvisioningState { get; } + + } + /// Buildpack Binding Resource object + internal partial interface IBuildpackBindingResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Buildpack Binding Type + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType? BindingType { get; set; } + /// The object describes the buildpack binding launch properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties1 LaunchProperty { get; set; } + /// Sensitive properties for launchProperties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets LaunchPropertySecret { get; set; } + /// Non-sensitive properties for launchProperties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties PropertiesLaunchPropertiesProperties { get; set; } + /// Properties of a buildpack binding + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingProperties Property { get; set; } + /// State of the Buildpack Binding. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.json.cs new file mode 100644 index 000000000000..3bb7a5dd10b1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Buildpack Binding Resource object + public partial class BuildpackBindingResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildpackBindingResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildpackBindingResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..7526729d3e6c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of BuildpackBinding resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingResourceCollectionTypeConverter))] + public partial class BuildpackBindingResourceCollection + { + + /// + /// 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 BuildpackBindingResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal)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 BuildpackBindingResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildpackBindingResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildpackBindingResourceCollection(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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of BuildpackBinding resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(BuildpackBindingResourceCollectionTypeConverter))] + public partial interface IBuildpackBindingResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..b5e620485ddc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildpackBindingResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildpackBindingResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildpackBindingResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildpackBindingResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.cs new file mode 100644 index 000000000000..c37486997cc4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of BuildpackBinding resources and a possible link for next set + /// + public partial class BuildpackBindingResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource[] _value; + + /// Collection of BuildpackBinding resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BuildpackBindingResourceCollection() + { + + } + } + /// Object that includes an array of BuildpackBinding resources and a possible link for next set + public partial interface IBuildpackBindingResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of BuildpackBinding resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of BuildpackBinding resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource[] Value { get; set; } + + } + /// Object that includes an array of BuildpackBinding resources and a possible link for next set + internal partial interface IBuildpackBindingResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of BuildpackBinding resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.json.cs new file mode 100644 index 000000000000..89583c70f645 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackBindingResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of BuildpackBinding resources and a possible link for next set + /// + public partial class BuildpackBindingResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildpackBindingResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildpackBindingResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.PowerShell.cs new file mode 100644 index 000000000000..872d2d8d1440 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Buildpack properties payload + [System.ComponentModel.TypeConverter(typeof(BuildpackPropertiesTypeConverter))] + public partial class BuildpackProperties + { + + /// + /// 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 BuildpackProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackPropertiesInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackPropertiesInternal)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 BuildpackProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackPropertiesInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackPropertiesInternal)this).Id, 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.AppPlatform.Models.Api20221101Preview.IBuildpackProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildpackProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildpackProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpackProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Buildpack properties payload + [System.ComponentModel.TypeConverter(typeof(BuildpackPropertiesTypeConverter))] + public partial interface IBuildpackProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.TypeConverter.cs new file mode 100644 index 000000000000..0c1dd5182f53 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildpackPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildpackProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildpackProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildpackProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.cs new file mode 100644 index 000000000000..329333b6e779 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Buildpack properties payload + public partial class BuildpackProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackPropertiesInternal + { + + /// Backing field for property. + private string _id; + + /// Id of the buildpack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Creates an new instance. + public BuildpackProperties() + { + + } + } + /// Buildpack properties payload + public partial interface IBuildpackProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Id of the buildpack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Id of the buildpack", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + + } + /// Buildpack properties payload + internal partial interface IBuildpackPropertiesInternal + + { + /// Id of the buildpack + string Id { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.json.cs new file mode 100644 index 000000000000..050172364594 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpackProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Buildpack properties payload + public partial class BuildpackProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildpackProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildpackProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.PowerShell.cs new file mode 100644 index 000000000000..b253b803751b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Buildpack group properties of the Builder + [System.ComponentModel.TypeConverter(typeof(BuildpacksGroupPropertiesTypeConverter))] + public partial class BuildpacksGroupProperties + { + + /// + /// 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 BuildpacksGroupProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Buildpack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal)this).Buildpack = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties[]) content.GetValueForProperty("Buildpack",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal)this).Buildpack, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackPropertiesTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal BuildpacksGroupProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Buildpack")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal)this).Buildpack = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties[]) content.GetValueForProperty("Buildpack",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal)this).Buildpack, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackPropertiesTypeConverter.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.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BuildpacksGroupProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BuildpacksGroupProperties(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.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Buildpack group properties of the Builder + [System.ComponentModel.TypeConverter(typeof(BuildpacksGroupPropertiesTypeConverter))] + public partial interface IBuildpacksGroupProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.TypeConverter.cs new file mode 100644 index 000000000000..db3d76db8ad4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BuildpacksGroupPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BuildpacksGroupProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BuildpacksGroupProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BuildpacksGroupProperties.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/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.cs new file mode 100644 index 000000000000..61677ee31af2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Buildpack group properties of the Builder + public partial class BuildpacksGroupProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties[] _buildpack; + + /// Buildpacks in the buildpack group + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties[] Buildpack { get => this._buildpack; set => this._buildpack = value; } + + /// Backing field for property. + private string _name; + + /// Buildpack group name + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public BuildpacksGroupProperties() + { + + } + } + /// Buildpack group properties of the Builder + public partial interface IBuildpacksGroupProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Buildpacks in the buildpack group + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Buildpacks in the buildpack group", + SerializedName = @"buildpacks", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties[] Buildpack { get; set; } + /// Buildpack group name + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Buildpack group name", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Buildpack group properties of the Builder + internal partial interface IBuildpacksGroupPropertiesInternal + + { + /// Buildpacks in the buildpack group + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackProperties[] Buildpack { get; set; } + /// Buildpack group name + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.json.cs new file mode 100644 index 000000000000..c80f7f142515 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/BuildpacksGroupProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Buildpack group properties of the Builder + public partial class BuildpacksGroupProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal BuildpacksGroupProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_buildpack = If( json?.PropertyT("buildpacks"), out var __jsonBuildpacks) ? If( __jsonBuildpacks as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IBuildpackProperties) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackProperties.FromJson(__u) )) ))() : null : Buildpack;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new BuildpacksGroupProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + if (null != this._buildpack) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._buildpack ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("buildpacks",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.PowerShell.cs new file mode 100644 index 000000000000..60a2976c0164 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Certificate resource payload. + [System.ComponentModel.TypeConverter(typeof(CertificatePropertiesTypeConverter))] + public partial class CertificateProperties + { + + /// + /// 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 CertificateProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssuedDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate, global::System.Convert.ToString); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate, global::System.Convert.ToString); + } + if (content.Contains("ActivateDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("DnsName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CertificateProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssuedDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate, global::System.Convert.ToString); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate, global::System.Convert.ToString); + } + if (content.Contains("ActivateDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("DnsName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState.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.AppPlatform.Models.Api20221101Preview.ICertificateProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CertificateProperties(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.AppPlatform.Models.Api20221101Preview.ICertificateProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CertificateProperties(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.AppPlatform.Models.Api20221101Preview.ICertificateProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Certificate resource payload. + [System.ComponentModel.TypeConverter(typeof(CertificatePropertiesTypeConverter))] + public partial interface ICertificateProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.TypeConverter.cs new file mode 100644 index 000000000000..28f5c4d702f4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CertificatePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICertificateProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CertificateProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CertificateProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CertificateProperties.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/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.cs new file mode 100644 index 000000000000..a293c5e6c1c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.cs @@ -0,0 +1,211 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Certificate resource payload. + public partial class CertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal + { + + /// Backing field for property. + private string _activateDate; + + /// The activate date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ActivateDate { get => this._activateDate; } + + /// Backing field for property. + private string[] _dnsName; + + /// The domain list of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] DnsName { get => this._dnsName; } + + /// Backing field for property. + private string _expirationDate; + + /// The expiration date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ExpirationDate { get => this._expirationDate; } + + /// Backing field for property. + private string _issuedDate; + + /// The issue date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string IssuedDate { get => this._issuedDate; } + + /// Backing field for property. + private string _issuer; + + /// The issuer of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Issuer { get => this._issuer; } + + /// Internal Acessors for ActivateDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ActivateDate { get => this._activateDate; set { {_activateDate = value;} } } + + /// Internal Acessors for DnsName + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.DnsName { get => this._dnsName; set { {_dnsName = value;} } } + + /// Internal Acessors for ExpirationDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ExpirationDate { get => this._expirationDate; set { {_expirationDate = value;} } } + + /// Internal Acessors for IssuedDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.IssuedDate { get => this._issuedDate; set { {_issuedDate = value;} } } + + /// Internal Acessors for Issuer + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.Issuer { get => this._issuer; set { {_issuer = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.SubjectName { get => this._subjectName; set { {_subjectName = value;} } } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.Thumbprint { get => this._thumbprint; set { {_thumbprint = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? _provisioningState; + + /// Provisioning state of the Certificate + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _subjectName; + + /// The subject name of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string SubjectName { get => this._subjectName; } + + /// Backing field for property. + private string _thumbprint; + + /// The thumbprint of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Thumbprint { get => this._thumbprint; } + + /// Backing field for property. + private string _type; + + /// The type of the certificate source. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public CertificateProperties() + { + + } + } + /// Certificate resource payload. + public partial interface ICertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The activate date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The activate date of certificate.", + SerializedName = @"activateDate", + PossibleTypes = new [] { typeof(string) })] + string ActivateDate { get; } + /// The domain list of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The domain list of certificate.", + SerializedName = @"dnsNames", + PossibleTypes = new [] { typeof(string) })] + string[] DnsName { get; } + /// The expiration date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The expiration date of certificate.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(string) })] + string ExpirationDate { get; } + /// The issue date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The issue date of certificate.", + SerializedName = @"issuedDate", + PossibleTypes = new [] { typeof(string) })] + string IssuedDate { get; } + /// The issuer of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The issuer of certificate.", + SerializedName = @"issuer", + PossibleTypes = new [] { typeof(string) })] + string Issuer { get; } + /// Provisioning state of the Certificate + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Certificate", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? ProvisioningState { get; } + /// The subject name of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The subject name of certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string SubjectName { get; } + /// The thumbprint of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The thumbprint of certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; } + /// The type of the certificate source. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the certificate source.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; set; } + + } + /// Certificate resource payload. + internal partial interface ICertificatePropertiesInternal + + { + /// The activate date of certificate. + string ActivateDate { get; set; } + /// The domain list of certificate. + string[] DnsName { get; set; } + /// The expiration date of certificate. + string ExpirationDate { get; set; } + /// The issue date of certificate. + string IssuedDate { get; set; } + /// The issuer of certificate. + string Issuer { get; set; } + /// Provisioning state of the Certificate + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? ProvisioningState { get; set; } + /// The subject name of certificate. + string SubjectName { get; set; } + /// The thumbprint of certificate. + string Thumbprint { get; set; } + /// The type of the certificate source. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.json.cs new file mode 100644 index 000000000000..b8aa28f96c4b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateProperties.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Certificate resource payload. + public partial class CertificateProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CertificateProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_thumbprint = If( json?.PropertyT("thumbprint"), out var __jsonThumbprint) ? (string)__jsonThumbprint : (string)Thumbprint;} + {_issuer = If( json?.PropertyT("issuer"), out var __jsonIssuer) ? (string)__jsonIssuer : (string)Issuer;} + {_issuedDate = If( json?.PropertyT("issuedDate"), out var __jsonIssuedDate) ? (string)__jsonIssuedDate : (string)IssuedDate;} + {_expirationDate = If( json?.PropertyT("expirationDate"), out var __jsonExpirationDate) ? (string)__jsonExpirationDate : (string)ExpirationDate;} + {_activateDate = If( json?.PropertyT("activateDate"), out var __jsonActivateDate) ? (string)__jsonActivateDate : (string)ActivateDate;} + {_subjectName = If( json?.PropertyT("subjectName"), out var __jsonSubjectName) ? (string)__jsonSubjectName : (string)SubjectName;} + {_dnsName = If( json?.PropertyT("dnsNames"), out var __jsonDnsNames) ? If( __jsonDnsNames as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : DnsName;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties 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.AppPlatform.Models.Api20221101Preview.ICertificateProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("type") ) + { + case "KeyVaultCertificate": + { + return new KeyVaultCertificateProperties(json); + } + case "ContentCertificate": + { + return new ContentCertificateProperties(json); + } + } + return new CertificateProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._thumbprint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._thumbprint.ToString()) : null, "thumbprint" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._issuer)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._issuer.ToString()) : null, "issuer" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._issuedDate)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._issuedDate.ToString()) : null, "issuedDate" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._expirationDate)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._expirationDate.ToString()) : null, "expirationDate" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._activateDate)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._activateDate.ToString()) : null, "activateDate" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._subjectName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._subjectName.ToString()) : null, "subjectName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._dnsName) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._dnsName ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("dnsNames",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.PowerShell.cs new file mode 100644 index 000000000000..b3a28e08fcc3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.PowerShell.cs @@ -0,0 +1,298 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Certificate resource payload. + [System.ComponentModel.TypeConverter(typeof(CertificateResourceTypeConverter))] + public partial class CertificateResource + { + + /// + /// 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 CertificateResource(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.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificatePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PropertiesType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).PropertiesType = (string) content.GetValueForProperty("PropertiesType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).PropertiesType, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssuedDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).IssuedDate, global::System.Convert.ToString); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ExpirationDate, global::System.Convert.ToString); + } + if (content.Contains("ActivateDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ActivateDate, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("DnsName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).DnsName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CertificateResource(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.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificatePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PropertiesType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).PropertiesType = (string) content.GetValueForProperty("PropertiesType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).PropertiesType, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssuedDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).IssuedDate, global::System.Convert.ToString); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ExpirationDate, global::System.Convert.ToString); + } + if (content.Contains("ActivateDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ActivateDate, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("DnsName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).DnsName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState.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.AppPlatform.Models.Api20221101Preview.ICertificateResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CertificateResource(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.AppPlatform.Models.Api20221101Preview.ICertificateResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CertificateResource(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.AppPlatform.Models.Api20221101Preview.ICertificateResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Certificate resource payload. + [System.ComponentModel.TypeConverter(typeof(CertificateResourceTypeConverter))] + public partial interface ICertificateResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.TypeConverter.cs new file mode 100644 index 000000000000..40ccf2604840 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CertificateResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICertificateResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CertificateResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CertificateResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CertificateResource.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/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.cs new file mode 100644 index 000000000000..2ffdda065a5c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Certificate resource payload. + public partial class CertificateResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// The activate date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ActivateDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ActivateDate; } + + /// The domain list of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] DnsName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).DnsName; } + + /// The expiration date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ExpirationDate; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// The issue date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string IssuedDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).IssuedDate; } + + /// The issuer of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Issuer; } + + /// Internal Acessors for ActivateDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.ActivateDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ActivateDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ActivateDate = value; } + + /// Internal Acessors for DnsName + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.DnsName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).DnsName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).DnsName = value; } + + /// Internal Acessors for ExpirationDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ExpirationDate = value; } + + /// Internal Acessors for IssuedDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.IssuedDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).IssuedDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).IssuedDate = value; } + + /// Internal Acessors for Issuer + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Issuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Issuer = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectName = value; } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceInternal.Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Thumbprint = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// The type of the certificate source. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string PropertiesType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Type = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties _property; + + /// Properties of the certificate resource payload. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties()); set => this._property = value; } + + /// Provisioning state of the Certificate + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).ProvisioningState; } + + /// The subject name of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).SubjectName; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The thumbprint of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)Property).Thumbprint; } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public CertificateResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Certificate resource payload. + public partial interface ICertificateResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The activate date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The activate date of certificate.", + SerializedName = @"activateDate", + PossibleTypes = new [] { typeof(string) })] + string ActivateDate { get; } + /// The domain list of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The domain list of certificate.", + SerializedName = @"dnsNames", + PossibleTypes = new [] { typeof(string) })] + string[] DnsName { get; } + /// The expiration date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The expiration date of certificate.", + SerializedName = @"expirationDate", + PossibleTypes = new [] { typeof(string) })] + string ExpirationDate { get; } + /// The issue date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The issue date of certificate.", + SerializedName = @"issuedDate", + PossibleTypes = new [] { typeof(string) })] + string IssuedDate { get; } + /// The issuer of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The issuer of certificate.", + SerializedName = @"issuer", + PossibleTypes = new [] { typeof(string) })] + string Issuer { get; } + /// The type of the certificate source. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the certificate source.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string PropertiesType { get; set; } + /// Provisioning state of the Certificate + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Certificate", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? ProvisioningState { get; } + /// The subject name of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The subject name of certificate.", + SerializedName = @"subjectName", + PossibleTypes = new [] { typeof(string) })] + string SubjectName { get; } + /// The thumbprint of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The thumbprint of certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; } + + } + /// Certificate resource payload. + internal partial interface ICertificateResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The activate date of certificate. + string ActivateDate { get; set; } + /// The domain list of certificate. + string[] DnsName { get; set; } + /// The expiration date of certificate. + string ExpirationDate { get; set; } + /// The issue date of certificate. + string IssuedDate { get; set; } + /// The issuer of certificate. + string Issuer { get; set; } + /// The type of the certificate source. + string PropertiesType { get; set; } + /// Properties of the certificate resource payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties Property { get; set; } + /// Provisioning state of the Certificate + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? ProvisioningState { get; set; } + /// The subject name of certificate. + string SubjectName { get; set; } + /// The thumbprint of certificate. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.json.cs new file mode 100644 index 000000000000..f549cea1921c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Certificate resource payload. + public partial class CertificateResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CertificateResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CertificateResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..079084ab0827 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Collection compose of certificate resources list and a possible link for next page. + /// + [System.ComponentModel.TypeConverter(typeof(CertificateResourceCollectionTypeConverter))] + public partial class CertificateResourceCollection + { + + /// + /// 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 CertificateResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal)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 CertificateResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CertificateResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CertificateResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection compose of certificate resources list and a possible link for next page. + [System.ComponentModel.TypeConverter(typeof(CertificateResourceCollectionTypeConverter))] + public partial interface ICertificateResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..84bff905475a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CertificateResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CertificateResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CertificateResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CertificateResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.cs new file mode 100644 index 000000000000..4fea5626a7d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Collection compose of certificate resources list and a possible link for next page. + /// + public partial class CertificateResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// The link to next page of certificate list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource[] _value; + + /// The certificate resources list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public CertificateResourceCollection() + { + + } + } + /// Collection compose of certificate resources list and a possible link for next page. + public partial interface ICertificateResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The link to next page of certificate list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The link to next page of certificate list.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// The certificate resources list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The certificate resources list.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource[] Value { get; set; } + + } + /// Collection compose of certificate resources list and a possible link for next page. + internal partial interface ICertificateResourceCollectionInternal + + { + /// The link to next page of certificate list. + string NextLink { get; set; } + /// The certificate resources list. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.json.cs new file mode 100644 index 000000000000..0728324ba4f3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CertificateResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Collection compose of certificate resources list and a possible link for next page. + /// + public partial class CertificateResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CertificateResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ICertificateResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CertificateResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CloudError.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.PowerShell.cs new file mode 100644 index 000000000000..ca93af2668d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// An error response from the service. + [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.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudErrorBodyTypeConverter.ConvertFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudErrorBodyTypeConverter.ConvertFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ICloudError FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// An error response from the service. + [System.ComponentModel.TypeConverter(typeof(CloudErrorTypeConverter))] + public partial interface ICloudError + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.TypeConverter.cs new file mode 100644 index 000000000000..d3be7e1537f9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICloudError ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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/appplatform/generated/api/Models/Api20221101Preview/CloudError.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.cs new file mode 100644 index 000000000000..3bb1c53d9eb7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// An error response from the service. + public partial class CloudError : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal + { + + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)Error).Code = value ?? null; } + + /// A list of additional details about the error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[] Detail { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)Error).Detail; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)Error).Detail = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody _error; + + /// An error response from the service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudErrorBody()); set => this._error = value; } + + /// + /// A message describing the error, intended to be suitable for display in a user interface. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)Error).Message = value ?? null; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudErrorBody()); set { {_error = value;} } } + + /// + /// The target of the particular error. For example, the name of the property in error. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Target { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)Error).Target; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)Error).Target = value ?? null; } + + /// Creates an new instance. + public CloudError() + { + + } + } + /// An error response from the service. + public partial interface ICloudError : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of additional details about the error.", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[] Detail { get; set; } + /// + /// A message describing the error, intended to be suitable for display in a user interface. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A message describing the error, intended to be suitable for display 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.AppPlatform.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 the service. + 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.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[] Detail { get; set; } + /// An error response from the service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody Error { get; set; } + /// + /// A message describing the error, intended to be suitable for display 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/appplatform/generated/api/Models/Api20221101Preview/CloudError.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.json.cs new file mode 100644 index 000000000000..f96c00eed153 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudError.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// An error response from the service. + 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CloudError(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.CloudErrorBody.FromJson(__jsonError) : Error;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.PowerShell.cs new file mode 100644 index 000000000000..dcc71596b985 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// An error response from the service. + [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.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("Target")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Target, global::System.Convert.ToString); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBodyInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ICloudErrorBody FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// An error response from the service. + [System.ComponentModel.TypeConverter(typeof(CloudErrorBodyTypeConverter))] + public partial interface ICloudErrorBody + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.TypeConverter.cs new file mode 100644 index 000000000000..d4f07bab3edd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICloudErrorBody ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.cs new file mode 100644 index 000000000000..b77bc7e7b039 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// An error response from the service. + public partial class CloudErrorBody : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Code { get => this._code; set => this._code = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[] _detail; + + /// A list of additional details about the error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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 display in a user interface. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Target { get => this._target; set => this._target = value; } + + /// Creates an new instance. + public CloudErrorBody() + { + + } + } + /// An error response from the service. + public partial interface ICloudErrorBody : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of additional details about the error.", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[] Detail { get; set; } + /// + /// A message describing the error, intended to be suitable for display in a user interface. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A message describing the error, intended to be suitable for display 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.AppPlatform.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 the service. + 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.AppPlatform.Models.Api20221101Preview.ICloudErrorBody[] Detail { get; set; } + /// + /// A message describing the error, intended to be suitable for display 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/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.json.cs new file mode 100644 index 000000000000..eb05590211df --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CloudErrorBody.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// An error response from the service. + 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CloudErrorBody(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ICloudErrorBody) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CloudErrorBody.FromJson(__u) )) ))() : null : Detail;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudErrorBody FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._message.ToString()) : null, "message" ,container.Add ); + AddIf( null != (((object)this._target)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._target.ToString()) : null, "target" ,container.Add ); + if (null != this._detail) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..efab604084af --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.PowerShell.cs @@ -0,0 +1,330 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Service properties payload + [System.ComponentModel.TypeConverter(typeof(ClusterResourcePropertiesTypeConverter))] + public partial class ClusterResourceProperties + { + + /// + /// 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 ClusterResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NetworkProfile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfile = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile) content.GetValueForProperty("NetworkProfile",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfile, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileTypeConverter.ConvertFrom); + } + if (content.Contains("VnetAddon")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).VnetAddon = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons) content.GetValueForProperty("VnetAddon",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).VnetAddon, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddonsTypeConverter.ConvertFrom); + } + if (content.Contains("MarketplaceResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResource = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource) content.GetValueForProperty("MarketplaceResource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResource, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResourceTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).Version = (int?) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ServiceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ServiceId = (string) content.GetValueForProperty("ServiceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ServiceId, global::System.Convert.ToString); + } + if (content.Contains("PowerState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).PowerState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState?) content.GetValueForProperty("PowerState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).PowerState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState.CreateFrom); + } + if (content.Contains("ZoneRedundant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ZoneRedundant = (bool?) content.GetValueForProperty("ZoneRedundant",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ZoneRedundant, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileIngressConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileIngressConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig) content.GetValueForProperty("NetworkProfileIngressConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileIngressConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfigTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfileServiceCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceCidr = (string) content.GetValueForProperty("NetworkProfileServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceCidr, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileRequiredTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileRequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[]) content.GetValueForProperty("NetworkProfileRequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileRequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTrafficTypeConverter.ConvertFrom)); + } + if (content.Contains("NetworkProfileOutboundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundType = (string) content.GetValueForProperty("NetworkProfileOutboundType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundType, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourcePlan")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourcePlan = (string) content.GetValueForProperty("MarketplaceResourcePlan",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourcePlan, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourcePublisher")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourcePublisher = (string) content.GetValueForProperty("MarketplaceResourcePublisher",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourcePublisher, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourceProduct")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourceProduct = (string) content.GetValueForProperty("MarketplaceResourceProduct",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourceProduct, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileOutboundIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("NetworkProfileOutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfileServiceRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeSubnetId = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileAppSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppSubnetId = (string) content.GetValueForProperty("NetworkProfileAppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppSubnetId, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileServiceRuntimeNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileAppNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileAppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("VnetAddonLogStreamPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).VnetAddonLogStreamPublicEndpoint = (bool?) content.GetValueForProperty("VnetAddonLogStreamPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).VnetAddonLogStreamPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("OutboundIPPublicIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).OutboundIPPublicIP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("IngressConfigReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).IngressConfigReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressConfigReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).IngressConfigReadTimeoutInSecond, (__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 ClusterResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NetworkProfile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfile = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile) content.GetValueForProperty("NetworkProfile",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfile, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileTypeConverter.ConvertFrom); + } + if (content.Contains("VnetAddon")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).VnetAddon = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons) content.GetValueForProperty("VnetAddon",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).VnetAddon, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddonsTypeConverter.ConvertFrom); + } + if (content.Contains("MarketplaceResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResource = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource) content.GetValueForProperty("MarketplaceResource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResource, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResourceTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).Version = (int?) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ServiceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ServiceId = (string) content.GetValueForProperty("ServiceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ServiceId, global::System.Convert.ToString); + } + if (content.Contains("PowerState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).PowerState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState?) content.GetValueForProperty("PowerState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).PowerState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState.CreateFrom); + } + if (content.Contains("ZoneRedundant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ZoneRedundant = (bool?) content.GetValueForProperty("ZoneRedundant",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).ZoneRedundant, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileIngressConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileIngressConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig) content.GetValueForProperty("NetworkProfileIngressConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileIngressConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfigTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfileServiceCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceCidr = (string) content.GetValueForProperty("NetworkProfileServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceCidr, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileRequiredTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileRequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[]) content.GetValueForProperty("NetworkProfileRequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileRequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTrafficTypeConverter.ConvertFrom)); + } + if (content.Contains("NetworkProfileOutboundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundType = (string) content.GetValueForProperty("NetworkProfileOutboundType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundType, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourcePlan")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourcePlan = (string) content.GetValueForProperty("MarketplaceResourcePlan",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourcePlan, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourcePublisher")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourcePublisher = (string) content.GetValueForProperty("MarketplaceResourcePublisher",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourcePublisher, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourceProduct")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourceProduct = (string) content.GetValueForProperty("MarketplaceResourceProduct",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).MarketplaceResourceProduct, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileOutboundIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("NetworkProfileOutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfileServiceRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeSubnetId = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileAppSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppSubnetId = (string) content.GetValueForProperty("NetworkProfileAppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppSubnetId, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileServiceRuntimeNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileAppNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileAppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("VnetAddonLogStreamPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).VnetAddonLogStreamPublicEndpoint = (bool?) content.GetValueForProperty("VnetAddonLogStreamPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).VnetAddonLogStreamPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("OutboundIPPublicIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).OutboundIPPublicIP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("IngressConfigReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).IngressConfigReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressConfigReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)this).IngressConfigReadTimeoutInSecond, (__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.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ClusterResourceProperties(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.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ClusterResourceProperties(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.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Service properties payload + [System.ComponentModel.TypeConverter(typeof(ClusterResourcePropertiesTypeConverter))] + public partial interface IClusterResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..0088ce7395df --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ClusterResourcePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ClusterResourceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ClusterResourceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ClusterResourceProperties.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/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.cs new file mode 100644 index 000000000000..c3e0c9939713 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.cs @@ -0,0 +1,414 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service properties payload + public partial class ClusterResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal + { + + /// Backing field for property. + private string _fqdn; + + /// Fully qualified dns name of the service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Fqdn { get => this._fqdn; } + + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressConfigReadTimeoutInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).IngressConfigReadTimeoutInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).IngressConfigReadTimeoutInSecond = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource _marketplaceResource; + + /// Purchasing 3rd party product of the Service resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource MarketplaceResource { get => (this._marketplaceResource = this._marketplaceResource ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResource()); set => this._marketplaceResource = value; } + + /// The plan id of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string MarketplaceResourcePlan { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)MarketplaceResource).Plan; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)MarketplaceResource).Plan = value ?? null; } + + /// The 3rd Party artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string MarketplaceResourceProduct { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)MarketplaceResource).Product; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)MarketplaceResource).Product = value ?? null; } + + /// The publisher id of the 3rd Party Artifact that is being bought. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string MarketplaceResourcePublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)MarketplaceResource).Publisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)MarketplaceResource).Publisher = value ?? null; } + + /// Internal Acessors for Fqdn + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.Fqdn { get => this._fqdn; set { {_fqdn = value;} } } + + /// Internal Acessors for MarketplaceResource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.MarketplaceResource { get => (this._marketplaceResource = this._marketplaceResource ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResource()); set { {_marketplaceResource = value;} } } + + /// Internal Acessors for NetworkProfile + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.NetworkProfile { get => (this._networkProfile = this._networkProfile ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfile()); set { {_networkProfile = value;} } } + + /// Internal Acessors for NetworkProfileIngressConfig + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.NetworkProfileIngressConfig { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).IngressConfig; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).IngressConfig = value; } + + /// Internal Acessors for NetworkProfileOutboundIP + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.NetworkProfileOutboundIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).OutboundIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).OutboundIP = value; } + + /// Internal Acessors for NetworkProfileRequiredTraffic + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.NetworkProfileRequiredTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).RequiredTraffic; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).RequiredTraffic = value; } + + /// Internal Acessors for OutboundIPPublicIP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).OutboundIPPublicIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).OutboundIPPublicIP = value; } + + /// Internal Acessors for PowerState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.PowerState { get => this._powerState; set { {_powerState = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ServiceId + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.ServiceId { get => this._serviceId; set { {_serviceId = value;} } } + + /// Internal Acessors for Version + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.Version { get => this._version; set { {_version = value;} } } + + /// Internal Acessors for VnetAddon + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal.VnetAddon { get => (this._vnetAddon = this._vnetAddon ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddons()); set { {_vnetAddon = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile _networkProfile; + + /// Network profile of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile NetworkProfile { get => (this._networkProfile = this._networkProfile ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfile()); set => this._networkProfile = value; } + + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileAppNetworkResourceGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).AppNetworkResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).AppNetworkResourceGroup = value ?? null; } + + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileAppSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).AppSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).AppSubnetId = value ?? null; } + + /// The egress traffic type of Azure Spring Apps VNet instances. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileOutboundType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).OutboundType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).OutboundType = value ?? null; } + + /// Required inbound or outbound traffics for Azure Spring Apps resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).RequiredTraffic; } + + /// Azure Spring Apps service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileServiceCidr { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).ServiceCidr; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).ServiceCidr = value ?? null; } + + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileServiceRuntimeNetworkResourceGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).ServiceRuntimeNetworkResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).ServiceRuntimeNetworkResourceGroup = value ?? null; } + + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileServiceRuntimeSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).ServiceRuntimeSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).ServiceRuntimeSubnetId = value ?? null; } + + /// A list of public IP addresses. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)NetworkProfile).OutboundIPPublicIP; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? _powerState; + + /// Power state of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? PowerState { get => this._powerState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? _provisioningState; + + /// Provisioning state of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _serviceId; + + /// ServiceInstanceEntity GUID which uniquely identifies a created resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ServiceId { get => this._serviceId; } + + /// Backing field for property. + private int? _version; + + /// Version of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Version { get => this._version; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons _vnetAddon; + + /// Additional Service settings in vnet injection instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons VnetAddon { get => (this._vnetAddon = this._vnetAddon ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddons()); set => this._vnetAddon = value; } + + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? VnetAddonLogStreamPublicEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddonsInternal)VnetAddon).LogStreamPublicEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddonsInternal)VnetAddon).LogStreamPublicEndpoint = value ?? default(bool); } + + /// Backing field for property. + private bool? _zoneRedundant; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? ZoneRedundant { get => this._zoneRedundant; set => this._zoneRedundant = value; } + + /// Creates an new instance. + public ClusterResourceProperties() + { + + } + } + /// Service properties payload + public partial interface IClusterResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Fully qualified dns name of the service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified dns name of the service instance", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { get; } + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? IngressConfigReadTimeoutInSecond { get; set; } + /// The plan id of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The plan id of the 3rd Party Artifact that is being procured.", + SerializedName = @"plan", + PossibleTypes = new [] { typeof(string) })] + string MarketplaceResourcePlan { get; set; } + /// The 3rd Party artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured.", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + string MarketplaceResourceProduct { get; set; } + /// The publisher id of the 3rd Party Artifact that is being bought. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher id of the 3rd Party Artifact that is being bought.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string MarketplaceResourcePublisher { get; set; } + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources for customer apps in Azure Spring Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileAppNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileAppSubnetId { get; set; } + /// The egress traffic type of Azure Spring Apps VNet instances. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The egress traffic type of Azure Spring Apps VNet instances.", + SerializedName = @"outboundType", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileOutboundType { get; set; } + /// Required inbound or outbound traffics for Azure Spring Apps resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Required inbound or outbound traffics for Azure Spring Apps resource.", + SerializedName = @"requiredTraffics", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get; } + /// Azure Spring Apps service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Apps service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceRuntimeSubnetId { get; set; } + /// A list of public IP addresses. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A list of public IP addresses.", + SerializedName = @"publicIPs", + PossibleTypes = new [] { typeof(string) })] + string[] OutboundIPPublicIP { get; } + /// Power state of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Power state of the Service", + SerializedName = @"powerState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? PowerState { get; } + /// Provisioning state of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Service", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? ProvisioningState { get; } + /// ServiceInstanceEntity GUID which uniquely identifies a created resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ServiceInstanceEntity GUID which uniquely identifies a created resource", + SerializedName = @"serviceId", + PossibleTypes = new [] { typeof(string) })] + string ServiceId { get; } + /// Version of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Version of the Service", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + int? Version { get; } + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the log stream in vnet injection instance could be accessed from internet.", + SerializedName = @"logStreamPublicEndpoint", + PossibleTypes = new [] { typeof(bool) })] + bool? VnetAddonLogStreamPublicEndpoint { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(bool) })] + bool? ZoneRedundant { get; set; } + + } + /// Service properties payload + internal partial interface IClusterResourcePropertiesInternal + + { + /// Fully qualified dns name of the service instance + string Fqdn { get; set; } + /// Ingress read time out in seconds. + int? IngressConfigReadTimeoutInSecond { get; set; } + /// Purchasing 3rd party product of the Service resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource MarketplaceResource { get; set; } + /// The plan id of the 3rd Party Artifact that is being procured. + string MarketplaceResourcePlan { get; set; } + /// The 3rd Party artifact that is being procured. + string MarketplaceResourceProduct { get; set; } + /// The publisher id of the 3rd Party Artifact that is being bought. + string MarketplaceResourcePublisher { get; set; } + /// Network profile of the Service + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile NetworkProfile { get; set; } + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + string NetworkProfileAppNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + string NetworkProfileAppSubnetId { get; set; } + /// Ingress configuration payload for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig NetworkProfileIngressConfig { get; set; } + /// Desired outbound IP resources for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs NetworkProfileOutboundIP { get; set; } + /// The egress traffic type of Azure Spring Apps VNet instances. + string NetworkProfileOutboundType { get; set; } + /// Required inbound or outbound traffics for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get; set; } + /// Azure Spring Apps service reserved CIDR + string NetworkProfileServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + string NetworkProfileServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + string NetworkProfileServiceRuntimeSubnetId { get; set; } + /// A list of public IP addresses. + string[] OutboundIPPublicIP { get; set; } + /// Power state of the Service + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? PowerState { get; set; } + /// Provisioning state of the Service + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? ProvisioningState { get; set; } + /// ServiceInstanceEntity GUID which uniquely identifies a created resource + string ServiceId { get; set; } + /// Version of the Service + int? Version { get; set; } + /// Additional Service settings in vnet injection instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons VnetAddon { get; set; } + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + bool? VnetAddonLogStreamPublicEndpoint { get; set; } + + bool? ZoneRedundant { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.json.cs new file mode 100644 index 000000000000..0ca8b975ff85 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ClusterResourceProperties.json.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service properties payload + public partial class ClusterResourceProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ClusterResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_networkProfile = If( json?.PropertyT("networkProfile"), out var __jsonNetworkProfile) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfile.FromJson(__jsonNetworkProfile) : NetworkProfile;} + {_vnetAddon = If( json?.PropertyT("vnetAddons"), out var __jsonVnetAddons) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddons.FromJson(__jsonVnetAddons) : VnetAddon;} + {_marketplaceResource = If( json?.PropertyT("marketplaceResource"), out var __jsonMarketplaceResource) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResource.FromJson(__jsonMarketplaceResource) : MarketplaceResource;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (int?)__jsonVersion : Version;} + {_serviceId = If( json?.PropertyT("serviceId"), out var __jsonServiceId) ? (string)__jsonServiceId : (string)ServiceId;} + {_powerState = If( json?.PropertyT("powerState"), out var __jsonPowerState) ? (string)__jsonPowerState : (string)PowerState;} + {_zoneRedundant = If( json?.PropertyT("zoneRedundant"), out var __jsonZoneRedundant) ? (bool?)__jsonZoneRedundant : ZoneRedundant;} + {_fqdn = If( json?.PropertyT("fqdn"), out var __jsonFqdn) ? (string)__jsonFqdn : (string)Fqdn;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ClusterResourceProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._networkProfile ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._networkProfile.ToJson(null,serializationMode) : null, "networkProfile" ,container.Add ); + AddIf( null != this._vnetAddon ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._vnetAddon.ToJson(null,serializationMode) : null, "vnetAddons" ,container.Add ); + AddIf( null != this._marketplaceResource ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._marketplaceResource.ToJson(null,serializationMode) : null, "marketplaceResource" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._version ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._version) : null, "version" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._serviceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._serviceId.ToString()) : null, "serviceId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._powerState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._powerState.ToString()) : null, "powerState" ,container.Add ); + } + AddIf( null != this._zoneRedundant ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._zoneRedundant) : null, "zoneRedundant" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._fqdn)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._fqdn.ToString()) : null, "fqdn" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.PowerShell.cs new file mode 100644 index 000000000000..82528b88e881 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Property of git. + [System.ComponentModel.TypeConverter(typeof(ConfigServerGitPropertyTypeConverter))] + public partial class ConfigServerGitProperty + { + + /// + /// 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 ConfigServerGitProperty(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Repository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Repository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]) content.GetValueForProperty("Repository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Repository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Label, global::System.Convert.ToString); + } + if (content.Contains("SearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("HostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).HostKey, global::System.Convert.ToString); + } + if (content.Contains("HostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("PrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).PrivateKey, global::System.Convert.ToString); + } + if (content.Contains("StrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).StrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigServerGitProperty(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Repository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Repository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]) content.GetValueForProperty("Repository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Repository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Label, global::System.Convert.ToString); + } + if (content.Contains("SearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("HostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).HostKey, global::System.Convert.ToString); + } + if (content.Contains("HostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("PrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).PrivateKey, global::System.Convert.ToString); + } + if (content.Contains("StrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)this).StrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigServerGitProperty(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.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigServerGitProperty(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.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Property of git. + [System.ComponentModel.TypeConverter(typeof(ConfigServerGitPropertyTypeConverter))] + public partial interface IConfigServerGitProperty + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.TypeConverter.cs new file mode 100644 index 000000000000..49457f3abb1f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigServerGitPropertyTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigServerGitProperty.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigServerGitProperty.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigServerGitProperty.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/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.cs new file mode 100644 index 000000000000..63373bbc90c0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Property of git. + public partial class ConfigServerGitProperty : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal + { + + /// Backing field for property. + private string _hostKey; + + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string HostKey { get => this._hostKey; set => this._hostKey = value; } + + /// Backing field for property. + private string _hostKeyAlgorithm; + + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string HostKeyAlgorithm { get => this._hostKeyAlgorithm; set => this._hostKeyAlgorithm = value; } + + /// Backing field for property. + private string _label; + + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Label { get => this._label; set => this._label = value; } + + /// Backing field for property. + private string _password; + + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Password { get => this._password; set => this._password = value; } + + /// Backing field for property. + private string _privateKey; + + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PrivateKey { get => this._privateKey; set => this._privateKey = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] _repository; + + /// Repositories of git. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] Repository { get => this._repository; set => this._repository = value; } + + /// Backing field for property. + private string[] _searchPath; + + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] SearchPath { get => this._searchPath; set => this._searchPath = value; } + + /// Backing field for property. + private bool? _strictHostKeyChecking; + + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? StrictHostKeyChecking { get => this._strictHostKeyChecking; set => this._strictHostKeyChecking = value; } + + /// Backing field for property. + private string _uri; + + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Uri { get => this._uri; set => this._uri = value; } + + /// Backing field for property. + private string _username; + + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Username { get => this._username; set => this._username = value; } + + /// Creates an new instance. + public ConfigServerGitProperty() + { + + } + } + /// Property of git. + public partial interface IConfigServerGitProperty : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + string HostKey { get; set; } + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + string HostKeyAlgorithm { get; set; } + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + string Label { get; set; } + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string Password { get; set; } + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + string PrivateKey { get; set; } + /// Repositories of git. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of git.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] Repository { get; set; } + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + string[] SearchPath { get; set; } + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(bool) })] + bool? StrictHostKeyChecking { get; set; } + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; set; } + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string Username { get; set; } + + } + /// Property of git. + internal partial interface IConfigServerGitPropertyInternal + + { + /// Public sshKey of git repository. + string HostKey { get; set; } + /// SshKey algorithm of git repository. + string HostKeyAlgorithm { get; set; } + /// Label of the repository + string Label { get; set; } + /// Password of git repository basic auth. + string Password { get; set; } + /// Private sshKey algorithm of git repository. + string PrivateKey { get; set; } + /// Repositories of git. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] Repository { get; set; } + /// Searching path of the repository + string[] SearchPath { get; set; } + /// Strict host key checking or not. + bool? StrictHostKeyChecking { get; set; } + /// URI of the repository + string Uri { get; set; } + /// Username of git repository basic auth. + string Username { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.json.cs new file mode 100644 index 000000000000..09e60b28073a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerGitProperty.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Property of git. + public partial class ConfigServerGitProperty + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigServerGitProperty(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_repository = If( json?.PropertyT("repositories"), out var __jsonRepositories) ? If( __jsonRepositories as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepository.FromJson(__u) )) ))() : null : Repository;} + {_uri = If( json?.PropertyT("uri"), out var __jsonUri) ? (string)__jsonUri : (string)Uri;} + {_label = If( json?.PropertyT("label"), out var __jsonLabel) ? (string)__jsonLabel : (string)Label;} + {_searchPath = If( json?.PropertyT("searchPaths"), out var __jsonSearchPaths) ? If( __jsonSearchPaths as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : SearchPath;} + {_username = If( json?.PropertyT("username"), out var __jsonUsername) ? (string)__jsonUsername : (string)Username;} + {_password = If( json?.PropertyT("password"), out var __jsonPassword) ? (string)__jsonPassword : (string)Password;} + {_hostKey = If( json?.PropertyT("hostKey"), out var __jsonHostKey) ? (string)__jsonHostKey : (string)HostKey;} + {_hostKeyAlgorithm = If( json?.PropertyT("hostKeyAlgorithm"), out var __jsonHostKeyAlgorithm) ? (string)__jsonHostKeyAlgorithm : (string)HostKeyAlgorithm;} + {_privateKey = If( json?.PropertyT("privateKey"), out var __jsonPrivateKey) ? (string)__jsonPrivateKey : (string)PrivateKey;} + {_strictHostKeyChecking = If( json?.PropertyT("strictHostKeyChecking"), out var __jsonStrictHostKeyChecking) ? (bool?)__jsonStrictHostKeyChecking : StrictHostKeyChecking;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigServerGitProperty(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._repository) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._repository ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("repositories",__w); + } + AddIf( null != (((object)this._uri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._uri.ToString()) : null, "uri" ,container.Add ); + AddIf( null != (((object)this._label)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._label.ToString()) : null, "label" ,container.Add ); + if (null != this._searchPath) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._searchPath ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("searchPaths",__r); + } + AddIf( null != (((object)this._username)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._username.ToString()) : null, "username" ,container.Add ); + AddIf( null != (((object)this._password)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._password.ToString()) : null, "password" ,container.Add ); + AddIf( null != (((object)this._hostKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._hostKey.ToString()) : null, "hostKey" ,container.Add ); + AddIf( null != (((object)this._hostKeyAlgorithm)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._hostKeyAlgorithm.ToString()) : null, "hostKeyAlgorithm" ,container.Add ); + AddIf( null != (((object)this._privateKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._privateKey.ToString()) : null, "privateKey" ,container.Add ); + AddIf( null != this._strictHostKeyChecking ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._strictHostKeyChecking) : null, "strictHostKeyChecking" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.PowerShell.cs new file mode 100644 index 000000000000..338a8d82c353 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.PowerShell.cs @@ -0,0 +1,266 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Config server git properties payload + [System.ComponentModel.TypeConverter(typeof(ConfigServerPropertiesTypeConverter))] + public partial class ConfigServerProperties + { + + /// + /// 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 ConfigServerProperties(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.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigServer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ConfigServer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings) content.GetValueForProperty("ConfigServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ConfigServer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState.CreateFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("ConfigServerGitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ConfigServerGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty) content.GetValueForProperty("ConfigServerGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ConfigServerGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + } + if (content.Contains("GitPropertyUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyUri, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyLabel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyLabel, global::System.Convert.ToString); + } + if (content.Contains("GitPropertySearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitPropertyUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyUsername, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyPassword, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyStrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyStrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigServerProperties(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.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigServer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ConfigServer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings) content.GetValueForProperty("ConfigServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ConfigServer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState.CreateFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("ConfigServerGitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ConfigServerGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty) content.GetValueForProperty("ConfigServerGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).ConfigServerGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + } + if (content.Contains("GitPropertyUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyUri, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyLabel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyLabel, global::System.Convert.ToString); + } + if (content.Contains("GitPropertySearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitPropertyUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyUsername, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyPassword, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyStrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)this).GitPropertyStrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Models.Api20221101Preview.IConfigServerProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigServerProperties(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.AppPlatform.Models.Api20221101Preview.IConfigServerProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigServerProperties(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.AppPlatform.Models.Api20221101Preview.IConfigServerProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Config server git properties payload + [System.ComponentModel.TypeConverter(typeof(ConfigServerPropertiesTypeConverter))] + public partial interface IConfigServerProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.TypeConverter.cs new file mode 100644 index 000000000000..afbe01e63928 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigServerPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigServerProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigServerProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigServerProperties.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/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.cs new file mode 100644 index 000000000000..ab0594875747 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.cs @@ -0,0 +1,251 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Config server git properties payload + public partial class ConfigServerProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal + { + + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Code = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings _configServer; + + /// Settings of config server. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings ConfigServer { get => (this._configServer = this._configServer ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettings()); set => this._configServer = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError _error; + + /// Error when apply config server settings. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Error()); set => this._error = value; } + + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyHostKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyHostKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyHostKey = value ?? null; } + + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyHostKeyAlgorithm { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyHostKeyAlgorithm; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyHostKeyAlgorithm = value ?? null; } + + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyLabel { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyLabel; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyLabel = value ?? null; } + + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyPassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyPassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyPassword = value ?? null; } + + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyPrivateKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyPrivateKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyPrivateKey = value ?? null; } + + /// Repositories of git. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyRepository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyRepository = value ?? null /* arrayOf */; } + + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] GitPropertySearchPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertySearchPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertySearchPath = value ?? null /* arrayOf */; } + + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? GitPropertyStrictHostKeyChecking { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyStrictHostKeyChecking; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyStrictHostKeyChecking = value ?? default(bool); } + + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyUri = value ?? null; } + + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyUsername { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyUsername; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyUsername = value ?? null; } + + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Message = value ?? null; } + + /// Internal Acessors for ConfigServer + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal.ConfigServer { get => (this._configServer = this._configServer ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettings()); set { {_configServer = value;} } } + + /// Internal Acessors for ConfigServerGitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal.ConfigServerGitProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)ConfigServer).GitProperty = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Error()); set { {_error = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? _provisioningState; + + /// State of the config server. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public ConfigServerProperties() + { + + } + } + /// Config server git properties payload + public partial interface IConfigServerProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyHostKey { get; set; } + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyHostKeyAlgorithm { get; set; } + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyLabel { get; set; } + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyPassword { get; set; } + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyPrivateKey { get; set; } + /// Repositories of git. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of git.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get; set; } + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + string[] GitPropertySearchPath { get; set; } + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(bool) })] + bool? GitPropertyStrictHostKeyChecking { get; set; } + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyUri { get; set; } + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyUsername { get; set; } + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// State of the config server. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the config server.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? ProvisioningState { get; } + + } + /// Config server git properties payload + internal partial interface IConfigServerPropertiesInternal + + { + /// The code of error. + string Code { get; set; } + /// Settings of config server. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings ConfigServer { get; set; } + /// Property of git environment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty ConfigServerGitProperty { get; set; } + /// Error when apply config server settings. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get; set; } + /// Public sshKey of git repository. + string GitPropertyHostKey { get; set; } + /// SshKey algorithm of git repository. + string GitPropertyHostKeyAlgorithm { get; set; } + /// Label of the repository + string GitPropertyLabel { get; set; } + /// Password of git repository basic auth. + string GitPropertyPassword { get; set; } + /// Private sshKey algorithm of git repository. + string GitPropertyPrivateKey { get; set; } + /// Repositories of git. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get; set; } + /// Searching path of the repository + string[] GitPropertySearchPath { get; set; } + /// Strict host key checking or not. + bool? GitPropertyStrictHostKeyChecking { get; set; } + /// URI of the repository + string GitPropertyUri { get; set; } + /// Username of git repository basic auth. + string GitPropertyUsername { get; set; } + /// The message of error. + string Message { get; set; } + /// State of the config server. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.json.cs new file mode 100644 index 000000000000..ec5fcfe45f64 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Config server git properties payload + public partial class ConfigServerProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigServerProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.Error.FromJson(__jsonError) : Error;} + {_configServer = If( json?.PropertyT("configServer"), out var __jsonConfigServer) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettings.FromJson(__jsonConfigServer) : ConfigServer;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigServerProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._error.ToJson(null,serializationMode) : null, "error" ,container.Add ); + AddIf( null != this._configServer ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._configServer.ToJson(null,serializationMode) : null, "configServer" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.PowerShell.cs new file mode 100644 index 000000000000..a329636e8dcb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.PowerShell.cs @@ -0,0 +1,354 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Config Server resource + [System.ComponentModel.TypeConverter(typeof(ConfigServerResourceTypeConverter))] + public partial class ConfigServerResource + { + + /// + /// 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 ConfigServerResource(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.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigServer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ConfigServer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings) content.GetValueForProperty("ConfigServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ConfigServer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState.CreateFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("ConfigServerGitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ConfigServerGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty) content.GetValueForProperty("ConfigServerGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ConfigServerGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + } + if (content.Contains("GitPropertyUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyUri, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyLabel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyLabel, global::System.Convert.ToString); + } + if (content.Contains("GitPropertySearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitPropertyUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyUsername, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyPassword, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyStrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyStrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigServerResource(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.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("ConfigServer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ConfigServer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings) content.GetValueForProperty("ConfigServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ConfigServer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState.CreateFrom); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("ConfigServerGitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ConfigServerGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty) content.GetValueForProperty("ConfigServerGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).ConfigServerGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + } + if (content.Contains("GitPropertyUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyUri, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyLabel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyLabel, global::System.Convert.ToString); + } + if (content.Contains("GitPropertySearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitPropertyUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyUsername, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyPassword, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyStrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal)this).GitPropertyStrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Models.Api20221101Preview.IConfigServerResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigServerResource(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.AppPlatform.Models.Api20221101Preview.IConfigServerResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigServerResource(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.AppPlatform.Models.Api20221101Preview.IConfigServerResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Config Server resource + [System.ComponentModel.TypeConverter(typeof(ConfigServerResourceTypeConverter))] + public partial interface IConfigServerResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.TypeConverter.cs new file mode 100644 index 000000000000..6b93b7c780a7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigServerResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigServerResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigServerResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigServerResource.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/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.cs new file mode 100644 index 000000000000..5ec4e62cf37f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Config Server resource + public partial class ConfigServerResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).Code = value ?? null; } + + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyHostKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyHostKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyHostKey = value ?? null; } + + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyHostKeyAlgorithm { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyHostKeyAlgorithm; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyHostKeyAlgorithm = value ?? null; } + + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyLabel { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyLabel; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyLabel = value ?? null; } + + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyPassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyPassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyPassword = value ?? null; } + + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyPrivateKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyPrivateKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyPrivateKey = value ?? null; } + + /// Repositories of git. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyRepository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyRepository = value ?? null /* arrayOf */; } + + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] GitPropertySearchPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertySearchPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertySearchPath = value ?? null /* arrayOf */; } + + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? GitPropertyStrictHostKeyChecking { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyStrictHostKeyChecking; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyStrictHostKeyChecking = value ?? default(bool); } + + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyUri = value ?? null; } + + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyUsername { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyUsername; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).GitPropertyUsername = value ?? null; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).Message = value ?? null; } + + /// Internal Acessors for ConfigServer + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal.ConfigServer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).ConfigServer; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).ConfigServer = value; } + + /// Internal Acessors for ConfigServerGitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal.ConfigServerGitProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).ConfigServerGitProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).ConfigServerGitProperty = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal.Error { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).Error; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).Error = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties _property; + + /// Properties of the Config Server resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerProperties()); set => this._property = value; } + + /// State of the config server. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerPropertiesInternal)Property).ProvisioningState; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ConfigServerResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Config Server resource + public partial interface IConfigServerResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyHostKey { get; set; } + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyHostKeyAlgorithm { get; set; } + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyLabel { get; set; } + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyPassword { get; set; } + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyPrivateKey { get; set; } + /// Repositories of git. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of git.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get; set; } + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + string[] GitPropertySearchPath { get; set; } + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(bool) })] + bool? GitPropertyStrictHostKeyChecking { get; set; } + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyUri { get; set; } + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyUsername { get; set; } + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// State of the config server. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the config server.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? ProvisioningState { get; } + + } + /// Config Server resource + internal partial interface IConfigServerResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The code of error. + string Code { get; set; } + /// Settings of config server. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings ConfigServer { get; set; } + /// Property of git environment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty ConfigServerGitProperty { get; set; } + /// Error when apply config server settings. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get; set; } + /// Public sshKey of git repository. + string GitPropertyHostKey { get; set; } + /// SshKey algorithm of git repository. + string GitPropertyHostKeyAlgorithm { get; set; } + /// Label of the repository + string GitPropertyLabel { get; set; } + /// Password of git repository basic auth. + string GitPropertyPassword { get; set; } + /// Private sshKey algorithm of git repository. + string GitPropertyPrivateKey { get; set; } + /// Repositories of git. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get; set; } + /// Searching path of the repository + string[] GitPropertySearchPath { get; set; } + /// Strict host key checking or not. + bool? GitPropertyStrictHostKeyChecking { get; set; } + /// URI of the repository + string GitPropertyUri { get; set; } + /// Username of git repository basic auth. + string GitPropertyUsername { get; set; } + /// The message of error. + string Message { get; set; } + /// Properties of the Config Server resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerProperties Property { get; set; } + /// State of the config server. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.json.cs new file mode 100644 index 000000000000..4ae3e56624e2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Config Server resource + public partial class ConfigServerResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigServerResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigServerResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.PowerShell.cs new file mode 100644 index 000000000000..365a36a9a09f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.PowerShell.cs @@ -0,0 +1,226 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The settings of config server. + [System.ComponentModel.TypeConverter(typeof(ConfigServerSettingsTypeConverter))] + public partial class ConfigServerSettings + { + + /// + /// 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 ConfigServerSettings(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty) content.GetValueForProperty("GitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + } + if (content.Contains("GitPropertyUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyUri, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyLabel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyLabel, global::System.Convert.ToString); + } + if (content.Contains("GitPropertySearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitPropertyUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyUsername, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyPassword, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyStrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyStrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigServerSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty) content.GetValueForProperty("GitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + } + if (content.Contains("GitPropertyUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyUri, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyLabel")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyLabel, global::System.Convert.ToString); + } + if (content.Contains("GitPropertySearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitPropertyUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyUsername, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyPassword, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyHostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyPrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + } + if (content.Contains("GitPropertyStrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal)this).GitPropertyStrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Models.Api20221101Preview.IConfigServerSettings DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigServerSettings(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.AppPlatform.Models.Api20221101Preview.IConfigServerSettings DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigServerSettings(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.AppPlatform.Models.Api20221101Preview.IConfigServerSettings FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The settings of config server. + [System.ComponentModel.TypeConverter(typeof(ConfigServerSettingsTypeConverter))] + public partial interface IConfigServerSettings + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.TypeConverter.cs new file mode 100644 index 000000000000..11bd1f89cf2b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigServerSettingsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigServerSettings.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigServerSettings.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigServerSettings.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/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.cs new file mode 100644 index 000000000000..f1bd8b538467 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The settings of config server. + public partial class ConfigServerSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty _gitProperty; + + /// Property of git environment. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty GitProperty { get => (this._gitProperty = this._gitProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitProperty()); set => this._gitProperty = value; } + + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyHostKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).HostKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).HostKey = value ?? null; } + + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyHostKeyAlgorithm { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).HostKeyAlgorithm; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).HostKeyAlgorithm = value ?? null; } + + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyLabel { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Label; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Label = value ?? null; } + + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyPassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Password; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Password = value ?? null; } + + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyPrivateKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).PrivateKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).PrivateKey = value ?? null; } + + /// Repositories of git. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Repository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Repository = value ?? null /* arrayOf */; } + + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] GitPropertySearchPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).SearchPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).SearchPath = value ?? null /* arrayOf */; } + + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? GitPropertyStrictHostKeyChecking { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).StrictHostKeyChecking; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).StrictHostKeyChecking = value ?? default(bool); } + + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Uri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Uri = value ?? null; } + + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitPropertyUsername { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Username; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitPropertyInternal)GitProperty).Username = value ?? null; } + + /// Internal Acessors for GitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsInternal.GitProperty { get => (this._gitProperty = this._gitProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitProperty()); set { {_gitProperty = value;} } } + + /// Creates an new instance. + public ConfigServerSettings() + { + + } + } + /// The settings of config server. + public partial interface IConfigServerSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyHostKey { get; set; } + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyHostKeyAlgorithm { get; set; } + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyLabel { get; set; } + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyPassword { get; set; } + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyPrivateKey { get; set; } + /// Repositories of git. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of git.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get; set; } + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + string[] GitPropertySearchPath { get; set; } + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(bool) })] + bool? GitPropertyStrictHostKeyChecking { get; set; } + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyUri { get; set; } + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string GitPropertyUsername { get; set; } + + } + /// The settings of config server. + internal partial interface IConfigServerSettingsInternal + + { + /// Property of git environment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerGitProperty GitProperty { get; set; } + /// Public sshKey of git repository. + string GitPropertyHostKey { get; set; } + /// SshKey algorithm of git repository. + string GitPropertyHostKeyAlgorithm { get; set; } + /// Label of the repository + string GitPropertyLabel { get; set; } + /// Password of git repository basic auth. + string GitPropertyPassword { get; set; } + /// Private sshKey algorithm of git repository. + string GitPropertyPrivateKey { get; set; } + /// Repositories of git. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get; set; } + /// Searching path of the repository + string[] GitPropertySearchPath { get; set; } + /// Strict host key checking or not. + bool? GitPropertyStrictHostKeyChecking { get; set; } + /// URI of the repository + string GitPropertyUri { get; set; } + /// Username of git repository basic auth. + string GitPropertyUsername { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.json.cs new file mode 100644 index 000000000000..2fedff1aad8a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The settings of config server. + public partial class ConfigServerSettings + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigServerSettings(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_gitProperty = If( json?.PropertyT("gitProperty"), out var __jsonGitProperty) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerGitProperty.FromJson(__jsonGitProperty) : GitProperty;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigServerSettings(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._gitProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._gitProperty.ToJson(null,serializationMode) : null, "gitProperty" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.PowerShell.cs new file mode 100644 index 000000000000..ca52927307bf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Error record of the config server settings + [System.ComponentModel.TypeConverter(typeof(ConfigServerSettingsErrorRecordTypeConverter))] + public partial class ConfigServerSettingsErrorRecord + { + + /// + /// 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 ConfigServerSettingsErrorRecord(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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Message = (string[]) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Message, __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 ConfigServerSettingsErrorRecord(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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Message = (string[]) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal)this).Message, __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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigServerSettingsErrorRecord(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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigServerSettingsErrorRecord(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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Error record of the config server settings + [System.ComponentModel.TypeConverter(typeof(ConfigServerSettingsErrorRecordTypeConverter))] + public partial interface IConfigServerSettingsErrorRecord + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.TypeConverter.cs new file mode 100644 index 000000000000..17dd794df8ed --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigServerSettingsErrorRecordTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigServerSettingsErrorRecord.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigServerSettingsErrorRecord.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigServerSettingsErrorRecord.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/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.cs new file mode 100644 index 000000000000..0adcac51f1c7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Error record of the config server settings + public partial class ConfigServerSettingsErrorRecord : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecordInternal + { + + /// Backing field for property. + private string[] _message; + + /// The detail error messages of the record + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Message { get => this._message; set => this._message = value; } + + /// Backing field for property. + private string _name; + + /// The name of the config server settings error record + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _uri; + + /// The uri of the config server settings error record + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Uri { get => this._uri; set => this._uri = value; } + + /// Creates an new instance. + public ConfigServerSettingsErrorRecord() + { + + } + } + /// Error record of the config server settings + public partial interface IConfigServerSettingsErrorRecord : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The detail error messages of the record + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The detail error messages of the record", + SerializedName = @"messages", + PossibleTypes = new [] { typeof(string) })] + string[] Message { get; set; } + /// The name of the config server settings error record + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the config server settings error record", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The uri of the config server settings error record + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The uri of the config server settings error record", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; set; } + + } + /// Error record of the config server settings + internal partial interface IConfigServerSettingsErrorRecordInternal + + { + /// The detail error messages of the record + string[] Message { get; set; } + /// The name of the config server settings error record + string Name { get; set; } + /// The uri of the config server settings error record + string Uri { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.json.cs new file mode 100644 index 000000000000..bcc79dc2f5a7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsErrorRecord.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Error record of the config server settings + public partial class ConfigServerSettingsErrorRecord + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigServerSettingsErrorRecord(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_uri = If( json?.PropertyT("uri"), out var __jsonUri) ? (string)__jsonUri : (string)Uri;} + {_message = If( json?.PropertyT("messages"), out var __jsonMessages) ? If( __jsonMessages as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Message;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigServerSettingsErrorRecord(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._uri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._uri.ToString()) : null, "uri" ,container.Add ); + if (null != this._message) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._message ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("messages",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.PowerShell.cs new file mode 100644 index 000000000000..9cc1fd507977 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Validation result for config server settings + [System.ComponentModel.TypeConverter(typeof(ConfigServerSettingsValidateResultTypeConverter))] + public partial class ConfigServerSettingsValidateResult + { + + /// + /// 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 ConfigServerSettingsValidateResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IsValid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsErrorRecordTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigServerSettingsValidateResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IsValid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Detail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsErrorRecordTypeConverter.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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigServerSettingsValidateResult(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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigServerSettingsValidateResult(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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Validation result for config server settings + [System.ComponentModel.TypeConverter(typeof(ConfigServerSettingsValidateResultTypeConverter))] + public partial interface IConfigServerSettingsValidateResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.TypeConverter.cs new file mode 100644 index 000000000000..85de59011b6d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigServerSettingsValidateResultTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigServerSettingsValidateResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigServerSettingsValidateResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigServerSettingsValidateResult.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/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.cs new file mode 100644 index 000000000000..a011ebce4629 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for config server settings + public partial class ConfigServerSettingsValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord[] _detail; + + /// The detail validation results + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord[] Detail { get => this._detail; set => this._detail = value; } + + /// Backing field for property. + private bool? _isValid; + + /// Indicate if the config server settings are valid + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? IsValid { get => this._isValid; set => this._isValid = value; } + + /// Creates an new instance. + public ConfigServerSettingsValidateResult() + { + + } + } + /// Validation result for config server settings + public partial interface IConfigServerSettingsValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The detail validation results + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The detail validation results", + SerializedName = @"details", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord[] Detail { get; set; } + /// Indicate if the config server settings are valid + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if the config server settings are valid", + SerializedName = @"isValid", + PossibleTypes = new [] { typeof(bool) })] + bool? IsValid { get; set; } + + } + /// Validation result for config server settings + internal partial interface IConfigServerSettingsValidateResultInternal + + { + /// The detail validation results + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord[] Detail { get; set; } + /// Indicate if the config server settings are valid + bool? IsValid { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.json.cs new file mode 100644 index 000000000000..6b032f54f4b2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigServerSettingsValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for config server settings + public partial class ConfigServerSettingsValidateResult + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigServerSettingsValidateResult(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_isValid = If( json?.PropertyT("isValid"), out var __jsonIsValid) ? (bool?)__jsonIsValid : IsValid;} + {_detail = If( json?.PropertyT("details"), out var __jsonDetails) ? If( __jsonDetails as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsErrorRecord) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettingsErrorRecord.FromJson(__u) )) ))() : null : Detail;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigServerSettingsValidateResult(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._isValid ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._isValid) : null, "isValid" ,container.Add ); + if (null != this._detail) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.PowerShell.cs new file mode 100644 index 000000000000..0610fbb71067 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Property of git environment. + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceGitPropertyTypeConverter))] + public partial class ConfigurationServiceGitProperty + { + + /// + /// 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 ConfigurationServiceGitProperty(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Repository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyInternal)this).Repository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]) content.GetValueForProperty("Repository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyInternal)this).Repository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepositoryTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigurationServiceGitProperty(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Repository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyInternal)this).Repository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]) content.GetValueForProperty("Repository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyInternal)this).Repository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepositoryTypeConverter.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceGitProperty(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceGitProperty(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Property of git environment. + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceGitPropertyTypeConverter))] + public partial interface IConfigurationServiceGitProperty + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.TypeConverter.cs new file mode 100644 index 000000000000..8292363eceaa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceGitPropertyTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceGitProperty.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceGitProperty.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceGitProperty.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.cs new file mode 100644 index 000000000000..fb5faf060a74 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Property of git environment. + public partial class ConfigurationServiceGitProperty : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] _repository; + + /// Repositories of Application Configuration Service git property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] Repository { get => this._repository; set => this._repository = value; } + + /// Creates an new instance. + public ConfigurationServiceGitProperty() + { + + } + } + /// Property of git environment. + public partial interface IConfigurationServiceGitProperty : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Repositories of Application Configuration Service git property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of Application Configuration Service git property.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] Repository { get; set; } + + } + /// Property of git environment. + internal partial interface IConfigurationServiceGitPropertyInternal + + { + /// Repositories of Application Configuration Service git property. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] Repository { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.json.cs new file mode 100644 index 000000000000..b3b26fc9b975 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitProperty.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Property of git environment. + public partial class ConfigurationServiceGitProperty + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceGitProperty(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_repository = If( json?.PropertyT("repositories"), out var __jsonRepositories) ? If( __jsonRepositories as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepository.FromJson(__u) )) ))() : null : Repository;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceGitProperty(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._repository) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._repository ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("repositories",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.PowerShell.cs new file mode 100644 index 000000000000..3a5258525bc3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Validation result for configuration service settings + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceGitPropertyValidateResultTypeConverter))] + public partial class ConfigurationServiceGitPropertyValidateResult + { + + /// + /// 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 ConfigurationServiceGitPropertyValidateResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IsValid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GitReposValidationResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)this).GitReposValidationResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[]) content.GetValueForProperty("GitReposValidationResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)this).GitReposValidationResult, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ValidationMessagesTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigurationServiceGitPropertyValidateResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IsValid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GitReposValidationResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)this).GitReposValidationResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[]) content.GetValueForProperty("GitReposValidationResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)this).GitReposValidationResult, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ValidationMessagesTypeConverter.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceGitPropertyValidateResult(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceGitPropertyValidateResult(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Validation result for configuration service settings + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceGitPropertyValidateResultTypeConverter))] + public partial interface IConfigurationServiceGitPropertyValidateResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.TypeConverter.cs new file mode 100644 index 000000000000..5e2799aa9622 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceGitPropertyValidateResultTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceGitPropertyValidateResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceGitPropertyValidateResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceGitPropertyValidateResult.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.cs new file mode 100644 index 000000000000..e00bb2eaf059 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for configuration service settings + public partial class ConfigurationServiceGitPropertyValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[] _gitReposValidationResult; + + /// The detail validation results + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[] GitReposValidationResult { get => this._gitReposValidationResult; set => this._gitReposValidationResult = value; } + + /// Backing field for property. + private bool? _isValid; + + /// Indicate if the configuration service settings are valid + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? IsValid { get => this._isValid; set => this._isValid = value; } + + /// + /// Creates an new instance. + /// + public ConfigurationServiceGitPropertyValidateResult() + { + + } + } + /// Validation result for configuration service settings + public partial interface IConfigurationServiceGitPropertyValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The detail validation results + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The detail validation results", + SerializedName = @"gitReposValidationResult", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[] GitReposValidationResult { get; set; } + /// Indicate if the configuration service settings are valid + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if the configuration service settings are valid", + SerializedName = @"isValid", + PossibleTypes = new [] { typeof(bool) })] + bool? IsValid { get; set; } + + } + /// Validation result for configuration service settings + internal partial interface IConfigurationServiceGitPropertyValidateResultInternal + + { + /// The detail validation results + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[] GitReposValidationResult { get; set; } + /// Indicate if the configuration service settings are valid + bool? IsValid { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.json.cs new file mode 100644 index 000000000000..325e38f5f6e5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitPropertyValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for configuration service settings + public partial class ConfigurationServiceGitPropertyValidateResult + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceGitPropertyValidateResult(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_isValid = If( json?.PropertyT("isValid"), out var __jsonIsValid) ? (bool?)__jsonIsValid : IsValid;} + {_gitReposValidationResult = If( json?.PropertyT("gitReposValidationResult"), out var __jsonGitReposValidationResult) ? If( __jsonGitReposValidationResult as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IValidationMessages) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ValidationMessages.FromJson(__u) )) ))() : null : GitReposValidationResult;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceGitPropertyValidateResult(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._isValid ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._isValid) : null, "isValid" ,container.Add ); + if (null != this._gitReposValidationResult) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._gitReposValidationResult ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("gitReposValidationResult",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.PowerShell.cs new file mode 100644 index 000000000000..dfbce3aa6dd5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.PowerShell.cs @@ -0,0 +1,228 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Git repository property payload for Application Configuration Service + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceGitRepositoryTypeConverter))] + public partial class ConfigurationServiceGitRepository + { + + /// + /// 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 ConfigurationServiceGitRepository(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Pattern")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Pattern = (string[]) content.GetValueForProperty("Pattern",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Pattern, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Label, global::System.Convert.ToString); + } + if (content.Contains("SearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("HostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).HostKey, global::System.Convert.ToString); + } + if (content.Contains("HostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("PrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).PrivateKey, global::System.Convert.ToString); + } + if (content.Contains("StrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).StrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigurationServiceGitRepository(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Pattern")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Pattern = (string[]) content.GetValueForProperty("Pattern",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Pattern, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Label, global::System.Convert.ToString); + } + if (content.Contains("SearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("HostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).HostKey, global::System.Convert.ToString); + } + if (content.Contains("HostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("PrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).PrivateKey, global::System.Convert.ToString); + } + if (content.Contains("StrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal)this).StrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceGitRepository(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceGitRepository(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Git repository property payload for Application Configuration Service + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceGitRepositoryTypeConverter))] + public partial interface IConfigurationServiceGitRepository + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.TypeConverter.cs new file mode 100644 index 000000000000..f69de4a7d3d7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceGitRepositoryTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceGitRepository.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceGitRepository.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceGitRepository.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.cs new file mode 100644 index 000000000000..2f8d455a39a7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Git repository property payload for Application Configuration Service + public partial class ConfigurationServiceGitRepository : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepositoryInternal + { + + /// Backing field for property. + private string _hostKey; + + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string HostKey { get => this._hostKey; set => this._hostKey = value; } + + /// Backing field for property. + private string _hostKeyAlgorithm; + + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string HostKeyAlgorithm { get => this._hostKeyAlgorithm; set => this._hostKeyAlgorithm = value; } + + /// Backing field for property. + private string _label; + + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Label { get => this._label; set => this._label = value; } + + /// Backing field for property. + private string _name; + + /// Name of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _password; + + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Password { get => this._password; set => this._password = value; } + + /// Backing field for property. + private string[] _pattern; + + /// Collection of patterns of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Pattern { get => this._pattern; set => this._pattern = value; } + + /// Backing field for property. + private string _privateKey; + + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PrivateKey { get => this._privateKey; set => this._privateKey = value; } + + /// Backing field for property. + private string[] _searchPath; + + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] SearchPath { get => this._searchPath; set => this._searchPath = value; } + + /// Backing field for property. + private bool? _strictHostKeyChecking; + + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? StrictHostKeyChecking { get => this._strictHostKeyChecking; set => this._strictHostKeyChecking = value; } + + /// Backing field for property. + private string _uri; + + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Uri { get => this._uri; set => this._uri = value; } + + /// Backing field for property. + private string _username; + + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Username { get => this._username; set => this._username = value; } + + /// Creates an new instance. + public ConfigurationServiceGitRepository() + { + + } + } + /// Git repository property payload for Application Configuration Service + public partial interface IConfigurationServiceGitRepository : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + string HostKey { get; set; } + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + string HostKeyAlgorithm { get; set; } + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + string Label { get; set; } + /// Name of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the repository", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string Password { get; set; } + /// Collection of patterns of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Collection of patterns of the repository", + SerializedName = @"patterns", + PossibleTypes = new [] { typeof(string) })] + string[] Pattern { get; set; } + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + string PrivateKey { get; set; } + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + string[] SearchPath { get; set; } + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(bool) })] + bool? StrictHostKeyChecking { get; set; } + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; set; } + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string Username { get; set; } + + } + /// Git repository property payload for Application Configuration Service + internal partial interface IConfigurationServiceGitRepositoryInternal + + { + /// Public sshKey of git repository. + string HostKey { get; set; } + /// SshKey algorithm of git repository. + string HostKeyAlgorithm { get; set; } + /// Label of the repository + string Label { get; set; } + /// Name of the repository + string Name { get; set; } + /// Password of git repository basic auth. + string Password { get; set; } + /// Collection of patterns of the repository + string[] Pattern { get; set; } + /// Private sshKey algorithm of git repository. + string PrivateKey { get; set; } + /// Searching path of the repository + string[] SearchPath { get; set; } + /// Strict host key checking or not. + bool? StrictHostKeyChecking { get; set; } + /// URI of the repository + string Uri { get; set; } + /// Username of git repository basic auth. + string Username { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.json.cs new file mode 100644 index 000000000000..00a62441b114 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceGitRepository.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Git repository property payload for Application Configuration Service + public partial class ConfigurationServiceGitRepository + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceGitRepository(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_pattern = If( json?.PropertyT("patterns"), out var __jsonPatterns) ? If( __jsonPatterns as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Pattern;} + {_uri = If( json?.PropertyT("uri"), out var __jsonUri) ? (string)__jsonUri : (string)Uri;} + {_label = If( json?.PropertyT("label"), out var __jsonLabel) ? (string)__jsonLabel : (string)Label;} + {_searchPath = If( json?.PropertyT("searchPaths"), out var __jsonSearchPaths) ? If( __jsonSearchPaths as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : SearchPath;} + {_username = If( json?.PropertyT("username"), out var __jsonUsername) ? (string)__jsonUsername : (string)Username;} + {_password = If( json?.PropertyT("password"), out var __jsonPassword) ? (string)__jsonPassword : (string)Password;} + {_hostKey = If( json?.PropertyT("hostKey"), out var __jsonHostKey) ? (string)__jsonHostKey : (string)HostKey;} + {_hostKeyAlgorithm = If( json?.PropertyT("hostKeyAlgorithm"), out var __jsonHostKeyAlgorithm) ? (string)__jsonHostKeyAlgorithm : (string)HostKeyAlgorithm;} + {_privateKey = If( json?.PropertyT("privateKey"), out var __jsonPrivateKey) ? (string)__jsonPrivateKey : (string)PrivateKey;} + {_strictHostKeyChecking = If( json?.PropertyT("strictHostKeyChecking"), out var __jsonStrictHostKeyChecking) ? (bool?)__jsonStrictHostKeyChecking : StrictHostKeyChecking;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceGitRepository(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + if (null != this._pattern) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._pattern ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("patterns",__w); + } + AddIf( null != (((object)this._uri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._uri.ToString()) : null, "uri" ,container.Add ); + AddIf( null != (((object)this._label)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._label.ToString()) : null, "label" ,container.Add ); + if (null != this._searchPath) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._searchPath ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("searchPaths",__r); + } + AddIf( null != (((object)this._username)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._username.ToString()) : null, "username" ,container.Add ); + AddIf( null != (((object)this._password)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._password.ToString()) : null, "password" ,container.Add ); + AddIf( null != (((object)this._hostKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._hostKey.ToString()) : null, "hostKey" ,container.Add ); + AddIf( null != (((object)this._hostKeyAlgorithm)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._hostKeyAlgorithm.ToString()) : null, "hostKeyAlgorithm" ,container.Add ); + AddIf( null != (((object)this._privateKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._privateKey.ToString()) : null, "privateKey" ,container.Add ); + AddIf( null != this._strictHostKeyChecking ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._strictHostKeyChecking) : null, "strictHostKeyChecking" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.PowerShell.cs new file mode 100644 index 000000000000..e7d4c8b0810f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of instances belong to the Application Configuration Service + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceInstanceTypeConverter))] + public partial class ConfigurationServiceInstance + { + + /// + /// 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 ConfigurationServiceInstance(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal)this).Status, 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 ConfigurationServiceInstance(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal)this).Status, 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceInstance(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceInstance(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of instances belong to the Application Configuration Service + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceInstanceTypeConverter))] + public partial interface IConfigurationServiceInstance + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.TypeConverter.cs new file mode 100644 index 000000000000..86433fb7a381 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceInstanceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceInstance.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceInstance.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceInstance.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.cs new file mode 100644 index 000000000000..993ec34d298e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Application Configuration Service + public partial class ConfigurationServiceInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstanceInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _status; + + /// Status of the Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Status { get => this._status; } + + /// Creates an new instance. + public ConfigurationServiceInstance() + { + + } + } + /// Collection of instances belong to the Application Configuration Service + public partial interface IConfigurationServiceInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name of the Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the Application Configuration Service instance", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Status of the Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the Application Configuration Service instance", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; } + + } + /// Collection of instances belong to the Application Configuration Service + internal partial interface IConfigurationServiceInstanceInternal + + { + /// Name of the Application Configuration Service instance + string Name { get; set; } + /// Status of the Application Configuration Service instance + string Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.json.cs new file mode 100644 index 000000000000..bb895195d430 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Application Configuration Service + public partial class ConfigurationServiceInstance + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceInstance(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceInstance(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.PowerShell.cs new file mode 100644 index 000000000000..d404812cb612 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Application Configuration Service properties payload + [System.ComponentModel.TypeConverter(typeof(ConfigurationServicePropertiesTypeConverter))] + public partial class ConfigurationServiceProperties + { + + /// + /// 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 ConfigurationServiceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Setting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).Setting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings) content.GetValueForProperty("Setting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).Setting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestInstanceCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SettingGitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).SettingGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty) content.GetValueForProperty("SettingGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).SettingGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepositoryTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigurationServiceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Setting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).Setting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings) content.GetValueForProperty("Setting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).Setting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).ResourceRequestInstanceCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SettingGitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).SettingGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty) content.GetValueForProperty("SettingGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).SettingGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepositoryTypeConverter.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceProperties(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceProperties(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application Configuration Service properties payload + [System.ComponentModel.TypeConverter(typeof(ConfigurationServicePropertiesTypeConverter))] + public partial interface IConfigurationServiceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.TypeConverter.cs new file mode 100644 index 000000000000..a51f8c411211 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServicePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceProperties.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.cs new file mode 100644 index 000000000000..cba4d5846210 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Configuration Service properties payload + public partial class ConfigurationServiceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal + { + + /// Repositories of Application Configuration Service git property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)Setting).GitPropertyRepository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)Setting).GitPropertyRepository = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] _instance; + + /// Collection of instances belong to Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] Instance { get => this._instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).Cpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).InstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).InstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).Memory = value; } + + /// Internal Acessors for Setting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal.Setting { get => (this._setting = this._setting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettings()); set { {_setting = value;} } } + + /// Internal Acessors for SettingGitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal.SettingGitProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)Setting).GitProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)Setting).GitProperty = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? _provisioningState; + + /// State of the Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests _resourceRequest; + + /// The requested resource quantity for required CPU and Memory. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequests()); } + + /// Cpu allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).Cpu; } + + /// Instance count of the Application Configuration Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).InstanceCount; } + + /// Memory allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)ResourceRequest).Memory; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings _setting; + + /// The settings of Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings Setting { get => (this._setting = this._setting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettings()); set => this._setting = value; } + + /// Creates an new instance. + public ConfigurationServiceProperties() + { + + } + } + /// Application Configuration Service properties payload + public partial interface IConfigurationServiceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Repositories of Application Configuration Service git property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of Application Configuration Service git property.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get; set; } + /// Collection of instances belong to Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Application Configuration Service.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] Instance { get; } + /// State of the Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Application Configuration Service.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? ProvisioningState { get; } + /// Cpu allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Application Configuration Service instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Instance count of the Application Configuration Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Application Configuration Service", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// Memory allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Application Configuration Service instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + /// Application Configuration Service properties payload + internal partial interface IConfigurationServicePropertiesInternal + + { + /// Repositories of Application Configuration Service git property. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get; set; } + /// Collection of instances belong to Application Configuration Service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] Instance { get; set; } + /// State of the Application Configuration Service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? ProvisioningState { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests ResourceRequest { get; set; } + /// Cpu allocated to each Application Configuration Service instance + string ResourceRequestCpu { get; set; } + /// Instance count of the Application Configuration Service + int? ResourceRequestInstanceCount { get; set; } + /// Memory allocated to each Application Configuration Service instance + string ResourceRequestMemory { get; set; } + /// The settings of Application Configuration Service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings Setting { get; set; } + /// Property of git environment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty SettingGitProperty { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.json.cs new file mode 100644 index 000000000000..6744c0421b2b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceProperties.json.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Configuration Service properties payload + public partial class ConfigurationServiceProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_setting = If( json?.PropertyT("settings"), out var __jsonSettings) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettings.FromJson(__jsonSettings) : Setting;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceInstance.FromJson(__u) )) ))() : null : Instance;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + } + AddIf( null != this._setting ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._setting.ToJson(null,serializationMode) : null, "settings" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._instance ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("instances",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.PowerShell.cs new file mode 100644 index 000000000000..5f39b1115f5d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.PowerShell.cs @@ -0,0 +1,298 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Application Configuration Service resource + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceResourceTypeConverter))] + public partial class ConfigurationServiceResource + { + + /// + /// 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 ConfigurationServiceResource(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServicePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Setting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Setting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings) content.GetValueForProperty("Setting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Setting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestInstanceCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SettingGitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).SettingGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty) content.GetValueForProperty("SettingGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).SettingGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepositoryTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigurationServiceResource(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServicePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Setting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Setting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings) content.GetValueForProperty("Setting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Setting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).ResourceRequestInstanceCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SettingGitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).SettingGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty) content.GetValueForProperty("SettingGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).SettingGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepositoryTypeConverter.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceResource(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceResource(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Application Configuration Service resource + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceResourceTypeConverter))] + public partial interface IConfigurationServiceResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.TypeConverter.cs new file mode 100644 index 000000000000..f174ba21e644 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceResource.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.cs new file mode 100644 index 000000000000..de8786df658c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.cs @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Configuration Service resource + public partial class ConfigurationServiceResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Repositories of Application Configuration Service git property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).GitPropertyRepository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).GitPropertyRepository = value ?? null /* arrayOf */; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Collection of instances belong to Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).Instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).Instance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).Instance = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.ResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequest = value; } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestCpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestInstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestInstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestMemory = value; } + + /// Internal Acessors for Setting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.Setting { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).Setting; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).Setting = value; } + + /// Internal Acessors for SettingGitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceInternal.SettingGitProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).SettingGitProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).SettingGitProperty = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties _property; + + /// Application Configuration Service properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceProperties()); set => this._property = value; } + + /// State of the Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ProvisioningState; } + + /// Cpu allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestCpu; } + + /// Instance count of the Application Configuration Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestInstanceCount; } + + /// Memory allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServicePropertiesInternal)Property).ResourceRequestMemory; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ConfigurationServiceResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Application Configuration Service resource + public partial interface IConfigurationServiceResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Repositories of Application Configuration Service git property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of Application Configuration Service git property.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get; set; } + /// Collection of instances belong to Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Application Configuration Service.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] Instance { get; } + /// State of the Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Application Configuration Service.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? ProvisioningState { get; } + /// Cpu allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Application Configuration Service instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Instance count of the Application Configuration Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Application Configuration Service", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// Memory allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Application Configuration Service instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + /// Application Configuration Service resource + internal partial interface IConfigurationServiceResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Repositories of Application Configuration Service git property. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get; set; } + /// Collection of instances belong to Application Configuration Service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceInstance[] Instance { get; set; } + /// Application Configuration Service properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceProperties Property { get; set; } + /// State of the Application Configuration Service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState? ProvisioningState { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests ResourceRequest { get; set; } + /// Cpu allocated to each Application Configuration Service instance + string ResourceRequestCpu { get; set; } + /// Instance count of the Application Configuration Service + int? ResourceRequestInstanceCount { get; set; } + /// Memory allocated to each Application Configuration Service instance + string ResourceRequestMemory { get; set; } + /// The settings of Application Configuration Service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings Setting { get; set; } + /// Property of git environment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty SettingGitProperty { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.json.cs new file mode 100644 index 000000000000..b449227c7b64 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Application Configuration Service resource + public partial class ConfigurationServiceResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..370f8702715b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.PowerShell.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of configuration service resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceResourceCollectionTypeConverter))] + public partial class ConfigurationServiceResourceCollection + { + + /// + /// 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 ConfigurationServiceResourceCollection(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal)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 ConfigurationServiceResourceCollection(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceResourceCollection(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceResourceCollection(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of configuration service resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceResourceCollectionTypeConverter))] + public partial interface IConfigurationServiceResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..9257759e0e54 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.cs new file mode 100644 index 000000000000..e1761ad0a966 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of configuration service resources and a possible link for next set + /// + public partial class ConfigurationServiceResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource[] _value; + + /// Collection of configuration service resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ConfigurationServiceResourceCollection() + { + + } + } + /// Object that includes an array of configuration service resources and a possible link for next set + public partial interface IConfigurationServiceResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of configuration service resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of configuration service resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource[] Value { get; set; } + + } + /// Object that includes an array of configuration service resources and a possible link for next set + internal partial interface IConfigurationServiceResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of configuration service resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.json.cs new file mode 100644 index 000000000000..ee41553735a6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of configuration service resources and a possible link for next set + /// + public partial class ConfigurationServiceResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..8f3de0f33019 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Resource request payload of Application Configuration Service + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceResourceRequestsTypeConverter))] + public partial class ConfigurationServiceResourceRequests + { + + /// + /// 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 ConfigurationServiceResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).InstanceCount, (__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 ConfigurationServiceResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal)this).InstanceCount, (__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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceResourceRequests(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceResourceRequests(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Resource request payload of Application Configuration Service + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceResourceRequestsTypeConverter))] + public partial interface IConfigurationServiceResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..ffa928135d9e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.cs new file mode 100644 index 000000000000..eda8e85a0160 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource request payload of Application Configuration Service + public partial class ConfigurationServiceResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// Cpu allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private int? _instanceCount; + + /// Instance count of the Application Configuration Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? InstanceCount { get => this._instanceCount; } + + /// Backing field for property. + private string _memory; + + /// Memory allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for InstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal.InstanceCount { get => this._instanceCount; set { {_instanceCount = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequestsInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Creates an new instance. + public ConfigurationServiceResourceRequests() + { + + } + } + /// Resource request payload of Application Configuration Service + public partial interface IConfigurationServiceResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Cpu allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Application Configuration Service instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// Instance count of the Application Configuration Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Application Configuration Service", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? InstanceCount { get; } + /// Memory allocated to each Application Configuration Service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Application Configuration Service instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + + } + /// Resource request payload of Application Configuration Service + internal partial interface IConfigurationServiceResourceRequestsInternal + + { + /// Cpu allocated to each Application Configuration Service instance + string Cpu { get; set; } + /// Instance count of the Application Configuration Service + int? InstanceCount { get; set; } + /// Memory allocated to each Application Configuration Service instance + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.json.cs new file mode 100644 index 000000000000..ce4c5691bac3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource request payload of Application Configuration Service + public partial class ConfigurationServiceResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + {_instanceCount = If( json?.PropertyT("instanceCount"), out var __jsonInstanceCount) ? (int?)__jsonInstanceCount : InstanceCount;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceResourceRequests(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._instanceCount ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._instanceCount) : null, "instanceCount" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.PowerShell.cs new file mode 100644 index 000000000000..66eaa42ef5c4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The settings of Application Configuration Service. + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceSettingsTypeConverter))] + public partial class ConfigurationServiceSettings + { + + /// + /// 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 ConfigurationServiceSettings(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)this).GitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty) content.GetValueForProperty("GitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)this).GitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepositoryTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigurationServiceSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GitProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)this).GitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty) content.GetValueForProperty("GitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)this).GitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitRepositoryTypeConverter.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceSettings(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceSettings(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The settings of Application Configuration Service. + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceSettingsTypeConverter))] + public partial interface IConfigurationServiceSettings + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.TypeConverter.cs new file mode 100644 index 000000000000..76c5153388c6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceSettingsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceSettings.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceSettings.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceSettings.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.cs new file mode 100644 index 000000000000..c932d101080e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.cs @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The settings of Application Configuration Service. + public partial class ConfigurationServiceSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty _gitProperty; + + /// Property of git environment. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty GitProperty { get => (this._gitProperty = this._gitProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitProperty()); set => this._gitProperty = value; } + + /// Repositories of Application Configuration Service git property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyInternal)GitProperty).Repository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyInternal)GitProperty).Repository = value ?? null /* arrayOf */; } + + /// Internal Acessors for GitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsInternal.GitProperty { get => (this._gitProperty = this._gitProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitProperty()); set { {_gitProperty = value;} } } + + /// Creates an new instance. + public ConfigurationServiceSettings() + { + + } + } + /// The settings of Application Configuration Service. + public partial interface IConfigurationServiceSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Repositories of Application Configuration Service git property. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of Application Configuration Service git property.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get; set; } + + } + /// The settings of Application Configuration Service. + internal partial interface IConfigurationServiceSettingsInternal + + { + /// Property of git environment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitProperty GitProperty { get; set; } + /// Repositories of Application Configuration Service git property. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.json.cs new file mode 100644 index 000000000000..f6b70e9231f7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The settings of Application Configuration Service. + public partial class ConfigurationServiceSettings + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceSettings(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_gitProperty = If( json?.PropertyT("gitProperty"), out var __jsonGitProperty) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitProperty.FromJson(__jsonGitProperty) : GitProperty;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceSettings(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._gitProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._gitProperty.ToJson(null,serializationMode) : null, "gitProperty" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.PowerShell.cs new file mode 100644 index 000000000000..f50379a6600f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Validation result for configuration service settings + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceSettingsValidateResultTypeConverter))] + public partial class ConfigurationServiceSettingsValidateResult + { + + /// + /// 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 ConfigurationServiceSettingsValidateResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GitPropertyValidationResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult) content.GetValueForProperty("GitPropertyValidationResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResult, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyValidateResultTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyValidationResultIsValid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResultIsValid = (bool?) content.GetValueForProperty("GitPropertyValidationResultIsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResultIsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GitPropertyValidationResultGitReposValidationResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResultGitReposValidationResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[]) content.GetValueForProperty("GitPropertyValidationResultGitReposValidationResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResultGitReposValidationResult, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ValidationMessagesTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ConfigurationServiceSettingsValidateResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GitPropertyValidationResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult) content.GetValueForProperty("GitPropertyValidationResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResult, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyValidateResultTypeConverter.ConvertFrom); + } + if (content.Contains("GitPropertyValidationResultIsValid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResultIsValid = (bool?) content.GetValueForProperty("GitPropertyValidationResultIsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResultIsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("GitPropertyValidationResultGitReposValidationResult")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResultGitReposValidationResult = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[]) content.GetValueForProperty("GitPropertyValidationResultGitReposValidationResult",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal)this).GitPropertyValidationResultGitReposValidationResult, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ValidationMessagesTypeConverter.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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConfigurationServiceSettingsValidateResult(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConfigurationServiceSettingsValidateResult(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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Validation result for configuration service settings + [System.ComponentModel.TypeConverter(typeof(ConfigurationServiceSettingsValidateResultTypeConverter))] + public partial interface IConfigurationServiceSettingsValidateResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.TypeConverter.cs new file mode 100644 index 000000000000..054c339ca0a2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConfigurationServiceSettingsValidateResultTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConfigurationServiceSettingsValidateResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConfigurationServiceSettingsValidateResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConfigurationServiceSettingsValidateResult.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/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.cs new file mode 100644 index 000000000000..80d09a6d864f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for configuration service settings + public partial class ConfigurationServiceSettingsValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult _gitPropertyValidationResult; + + /// Validation result for configuration service settings + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult GitPropertyValidationResult { get => (this._gitPropertyValidationResult = this._gitPropertyValidationResult ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyValidateResult()); set => this._gitPropertyValidationResult = value; } + + /// The detail validation results + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[] GitPropertyValidationResultGitReposValidationResult { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)GitPropertyValidationResult).GitReposValidationResult; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)GitPropertyValidationResult).GitReposValidationResult = value ?? null /* arrayOf */; } + + /// Indicate if the configuration service settings are valid + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? GitPropertyValidationResultIsValid { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)GitPropertyValidationResult).IsValid; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResultInternal)GitPropertyValidationResult).IsValid = value ?? default(bool); } + + /// Internal Acessors for GitPropertyValidationResult + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResultInternal.GitPropertyValidationResult { get => (this._gitPropertyValidationResult = this._gitPropertyValidationResult ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyValidateResult()); set { {_gitPropertyValidationResult = value;} } } + + /// + /// Creates an new instance. + /// + public ConfigurationServiceSettingsValidateResult() + { + + } + } + /// Validation result for configuration service settings + public partial interface IConfigurationServiceSettingsValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The detail validation results + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The detail validation results", + SerializedName = @"gitReposValidationResult", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[] GitPropertyValidationResultGitReposValidationResult { get; set; } + /// Indicate if the configuration service settings are valid + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if the configuration service settings are valid", + SerializedName = @"isValid", + PossibleTypes = new [] { typeof(bool) })] + bool? GitPropertyValidationResultIsValid { get; set; } + + } + /// Validation result for configuration service settings + internal partial interface IConfigurationServiceSettingsValidateResultInternal + + { + /// Validation result for configuration service settings + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult GitPropertyValidationResult { get; set; } + /// The detail validation results + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages[] GitPropertyValidationResultGitReposValidationResult { get; set; } + /// Indicate if the configuration service settings are valid + bool? GitPropertyValidationResultIsValid { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.json.cs new file mode 100644 index 000000000000..486348e0f59b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ConfigurationServiceSettingsValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for configuration service settings + public partial class ConfigurationServiceSettingsValidateResult + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ConfigurationServiceSettingsValidateResult(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_gitPropertyValidationResult = If( json?.PropertyT("gitPropertyValidationResult"), out var __jsonGitPropertyValidationResult) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceGitPropertyValidateResult.FromJson(__jsonGitPropertyValidationResult) : GitPropertyValidationResult;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ConfigurationServiceSettingsValidateResult(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._gitPropertyValidationResult ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._gitPropertyValidationResult.ToJson(null,serializationMode) : null, "gitPropertyValidationResult" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.PowerShell.cs new file mode 100644 index 000000000000..61d8b4714438 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Container liveness and readiness probe settings + [System.ComponentModel.TypeConverter(typeof(ContainerProbeSettingsTypeConverter))] + public partial class ContainerProbeSettings + { + + /// + /// 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 ContainerProbeSettings(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettingsInternal)this).DisableProbe = (bool?) content.GetValueForProperty("DisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettingsInternal)this).DisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ContainerProbeSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettingsInternal)this).DisableProbe = (bool?) content.GetValueForProperty("DisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettingsInternal)this).DisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContainerProbeSettings(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.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContainerProbeSettings(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.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Container liveness and readiness probe settings + [System.ComponentModel.TypeConverter(typeof(ContainerProbeSettingsTypeConverter))] + public partial interface IContainerProbeSettings + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.TypeConverter.cs new file mode 100644 index 000000000000..ea78000fe26b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContainerProbeSettingsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContainerProbeSettings.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContainerProbeSettings.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContainerProbeSettings.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/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.cs new file mode 100644 index 000000000000..4bda6845d269 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Container liveness and readiness probe settings + public partial class ContainerProbeSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettingsInternal + { + + /// Backing field for property. + private bool? _disableProbe; + + /// Indicates whether disable the liveness and readiness probe + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? DisableProbe { get => this._disableProbe; set => this._disableProbe = value; } + + /// Creates an new instance. + public ContainerProbeSettings() + { + + } + } + /// Container liveness and readiness probe settings + public partial interface IContainerProbeSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Indicates whether disable the liveness and readiness probe + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether disable the liveness and readiness probe", + SerializedName = @"disableProbe", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableProbe { get; set; } + + } + /// Container liveness and readiness probe settings + internal partial interface IContainerProbeSettingsInternal + + { + /// Indicates whether disable the liveness and readiness probe + bool? DisableProbe { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.json.cs new file mode 100644 index 000000000000..9cc61639f709 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContainerProbeSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Container liveness and readiness probe settings + public partial class ContainerProbeSettings + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ContainerProbeSettings(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_disableProbe = If( json?.PropertyT("disableProbe"), out var __jsonDisableProbe) ? (bool?)__jsonDisableProbe : DisableProbe;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ContainerProbeSettings(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._disableProbe ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._disableProbe) : null, "disableProbe" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.PowerShell.cs new file mode 100644 index 000000000000..5cecb9b7696c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Properties of certificate imported from key vault. + [System.ComponentModel.TypeConverter(typeof(ContentCertificatePropertiesTypeConverter))] + public partial class ContentCertificateProperties + { + + /// + /// 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 ContentCertificateProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Content")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificatePropertiesInternal)this).Content = (string) content.GetValueForProperty("Content",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificatePropertiesInternal)this).Content, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssuedDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate, global::System.Convert.ToString); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate, global::System.Convert.ToString); + } + if (content.Contains("ActivateDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("DnsName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ContentCertificateProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Content")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificatePropertiesInternal)this).Content = (string) content.GetValueForProperty("Content",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificatePropertiesInternal)this).Content, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssuedDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate, global::System.Convert.ToString); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate, global::System.Convert.ToString); + } + if (content.Contains("ActivateDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("DnsName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState.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.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ContentCertificateProperties(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.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ContentCertificateProperties(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.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of certificate imported from key vault. + [System.ComponentModel.TypeConverter(typeof(ContentCertificatePropertiesTypeConverter))] + public partial interface IContentCertificateProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.TypeConverter.cs new file mode 100644 index 000000000000..28513c28e80e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ContentCertificatePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ContentCertificateProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ContentCertificateProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ContentCertificateProperties.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/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.cs new file mode 100644 index 000000000000..abdc28edb121 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.cs @@ -0,0 +1,130 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of certificate imported from key vault. + public partial class ContentCertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificatePropertiesInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties __certificateProperties = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties(); + + /// The activate date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string ActivateDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ActivateDate; } + + /// Backing field for property. + private string _content; + + /// The content of uploaded certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Content { get => this._content; set => this._content = value; } + + /// The domain list of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string[] DnsName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).DnsName; } + + /// The expiration date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ExpirationDate; } + + /// The issue date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string IssuedDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).IssuedDate; } + + /// The issuer of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Issuer; } + + /// Internal Acessors for ActivateDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ActivateDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ActivateDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ActivateDate = value; } + + /// Internal Acessors for DnsName + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.DnsName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).DnsName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).DnsName = value; } + + /// Internal Acessors for ExpirationDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ExpirationDate = value; } + + /// Internal Acessors for IssuedDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.IssuedDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).IssuedDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).IssuedDate = value; } + + /// Internal Acessors for Issuer + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Issuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Issuer = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ProvisioningState = value; } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).SubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).SubjectName = value; } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Thumbprint = value; } + + /// Provisioning state of the Certificate + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ProvisioningState; } + + /// The subject name of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).SubjectName; } + + /// The thumbprint of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Thumbprint; } + + /// The type of the certificate source. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Type = value ; } + + /// Creates an new instance. + public ContentCertificateProperties() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__certificateProperties), __certificateProperties); + await eventListener.AssertObjectIsValid(nameof(__certificateProperties), __certificateProperties); + } + } + /// Properties of certificate imported from key vault. + public partial interface IContentCertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties + { + /// The content of uploaded certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The content of uploaded certificate.", + SerializedName = @"content", + PossibleTypes = new [] { typeof(string) })] + string Content { get; set; } + + } + /// Properties of certificate imported from key vault. + internal partial interface IContentCertificatePropertiesInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal + { + /// The content of uploaded certificate. + string Content { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.json.cs new file mode 100644 index 000000000000..1f6a35468d7b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ContentCertificateProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of certificate imported from key vault. + public partial class ContentCertificateProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ContentCertificateProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __certificateProperties = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties(json); + {_content = If( json?.PropertyT("content"), out var __jsonContent) ? (string)__jsonContent : (string)Content;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContentCertificateProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ContentCertificateProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __certificateProperties?.ToJson(container, serializationMode); + AddIf( null != (((object)this._content)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._content.ToString()) : null, "content" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.PowerShell.cs new file mode 100644 index 000000000000..ce31e3cd2435 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom container payload + [System.ComponentModel.TypeConverter(typeof(CustomContainerTypeConverter))] + public partial class CustomContainer + { + + /// + /// 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 CustomContainer(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ImageRegistryCredential")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredential = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential) content.GetValueForProperty("ImageRegistryCredential",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredential, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredentialTypeConverter.ConvertFrom); + } + if (content.Contains("Server")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Server = (string) content.GetValueForProperty("Server",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Server, global::System.Convert.ToString); + } + if (content.Contains("ContainerImage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ContainerImage = (string) content.GetValueForProperty("ContainerImage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ContainerImage, global::System.Convert.ToString); + } + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Arg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Arg = (string[]) content.GetValueForProperty("Arg",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Arg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LanguageFramework")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).LanguageFramework = (string) content.GetValueForProperty("LanguageFramework",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).LanguageFramework, global::System.Convert.ToString); + } + if (content.Contains("ImageRegistryCredentialUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredentialUsername = (string) content.GetValueForProperty("ImageRegistryCredentialUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredentialUsername, global::System.Convert.ToString); + } + if (content.Contains("ImageRegistryCredentialPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredentialPassword = (string) content.GetValueForProperty("ImageRegistryCredentialPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredentialPassword, 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 CustomContainer(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ImageRegistryCredential")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredential = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential) content.GetValueForProperty("ImageRegistryCredential",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredential, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredentialTypeConverter.ConvertFrom); + } + if (content.Contains("Server")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Server = (string) content.GetValueForProperty("Server",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Server, global::System.Convert.ToString); + } + if (content.Contains("ContainerImage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ContainerImage = (string) content.GetValueForProperty("ContainerImage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ContainerImage, global::System.Convert.ToString); + } + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Arg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Arg = (string[]) content.GetValueForProperty("Arg",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).Arg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LanguageFramework")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).LanguageFramework = (string) content.GetValueForProperty("LanguageFramework",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).LanguageFramework, global::System.Convert.ToString); + } + if (content.Contains("ImageRegistryCredentialUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredentialUsername = (string) content.GetValueForProperty("ImageRegistryCredentialUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredentialUsername, global::System.Convert.ToString); + } + if (content.Contains("ImageRegistryCredentialPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredentialPassword = (string) content.GetValueForProperty("ImageRegistryCredentialPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)this).ImageRegistryCredentialPassword, 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.AppPlatform.Models.Api20221101Preview.ICustomContainer DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomContainer(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.AppPlatform.Models.Api20221101Preview.ICustomContainer DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomContainer(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.AppPlatform.Models.Api20221101Preview.ICustomContainer FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom container payload + [System.ComponentModel.TypeConverter(typeof(CustomContainerTypeConverter))] + public partial interface ICustomContainer + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.TypeConverter.cs new file mode 100644 index 000000000000..83e0cb9d1b7b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomContainerTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomContainer ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomContainer.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomContainer.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomContainer.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/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.cs new file mode 100644 index 000000000000..449312ad2161 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom container payload + public partial class CustomContainer : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal + { + + /// Backing field for property. + private string[] _arg; + + /// + /// Arguments to the entrypoint. The docker image's CMD is used if this is not provided. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Arg { get => this._arg; set => this._arg = value; } + + /// Backing field for property. + private string[] _command; + + /// + /// Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Command { get => this._command; set => this._command = value; } + + /// Backing field for property. + private string _containerImage; + + /// + /// Container image of the custom container. This should be in the form of : without the server name of the + /// registry + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ContainerImage { get => this._containerImage; set => this._containerImage = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential _imageRegistryCredential; + + /// Credential of the image registry + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential ImageRegistryCredential { get => (this._imageRegistryCredential = this._imageRegistryCredential ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredential()); set => this._imageRegistryCredential = value; } + + /// The password of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ImageRegistryCredentialPassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)ImageRegistryCredential).Password; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)ImageRegistryCredential).Password = value ?? null; } + + /// The username of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ImageRegistryCredentialUsername { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)ImageRegistryCredential).Username; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)ImageRegistryCredential).Username = value ?? null; } + + /// Backing field for property. + private string _languageFramework; + + /// Language framework of the container image uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string LanguageFramework { get => this._languageFramework; set => this._languageFramework = value; } + + /// Internal Acessors for ImageRegistryCredential + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal.ImageRegistryCredential { get => (this._imageRegistryCredential = this._imageRegistryCredential ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredential()); set { {_imageRegistryCredential = value;} } } + + /// Backing field for property. + private string _server; + + /// The name of the registry that contains the container image + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Server { get => this._server; set => this._server = value; } + + /// Creates an new instance. + public CustomContainer() + { + + } + } + /// Custom container payload + public partial interface ICustomContainer : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Arguments to the entrypoint. The docker image's CMD is used if this is not provided. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Arguments to the entrypoint. The docker image's CMD is used if this is not provided.", + SerializedName = @"args", + PossibleTypes = new [] { typeof(string) })] + string[] Arg { get; set; } + /// + /// Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided.", + SerializedName = @"command", + PossibleTypes = new [] { typeof(string) })] + string[] Command { get; set; } + /// + /// Container image of the custom container. This should be in the form of : without the server name of the + /// registry + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container image of the custom container. This should be in the form of : without the server name of the registry", + SerializedName = @"containerImage", + PossibleTypes = new [] { typeof(string) })] + string ContainerImage { get; set; } + /// The password of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The password of the image registry credential", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string ImageRegistryCredentialPassword { get; set; } + /// The username of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The username of the image registry credential", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string ImageRegistryCredentialUsername { get; set; } + /// Language framework of the container image uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Language framework of the container image uploaded", + SerializedName = @"languageFramework", + PossibleTypes = new [] { typeof(string) })] + string LanguageFramework { get; set; } + /// The name of the registry that contains the container image + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the registry that contains the container image", + SerializedName = @"server", + PossibleTypes = new [] { typeof(string) })] + string Server { get; set; } + + } + /// Custom container payload + internal partial interface ICustomContainerInternal + + { + /// + /// Arguments to the entrypoint. The docker image's CMD is used if this is not provided. + /// + string[] Arg { get; set; } + /// + /// Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. + /// + string[] Command { get; set; } + /// + /// Container image of the custom container. This should be in the form of : without the server name of the + /// registry + /// + string ContainerImage { get; set; } + /// Credential of the image registry + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential ImageRegistryCredential { get; set; } + /// The password of the image registry credential + string ImageRegistryCredentialPassword { get; set; } + /// The username of the image registry credential + string ImageRegistryCredentialUsername { get; set; } + /// Language framework of the container image uploaded + string LanguageFramework { get; set; } + /// The name of the registry that contains the container image + string Server { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.json.cs new file mode 100644 index 000000000000..3359cf19b2b1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainer.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom container payload + public partial class CustomContainer + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomContainer(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_imageRegistryCredential = If( json?.PropertyT("imageRegistryCredential"), out var __jsonImageRegistryCredential) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredential.FromJson(__jsonImageRegistryCredential) : ImageRegistryCredential;} + {_server = If( json?.PropertyT("server"), out var __jsonServer) ? (string)__jsonServer : (string)Server;} + {_containerImage = If( json?.PropertyT("containerImage"), out var __jsonContainerImage) ? (string)__jsonContainerImage : (string)ContainerImage;} + {_command = If( json?.PropertyT("command"), out var __jsonCommand) ? If( __jsonCommand as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Command;} + {_arg = If( json?.PropertyT("args"), out var __jsonArgs) ? If( __jsonArgs as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : Arg;} + {_languageFramework = If( json?.PropertyT("languageFramework"), out var __jsonLanguageFramework) ? (string)__jsonLanguageFramework : (string)LanguageFramework;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomContainer(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._imageRegistryCredential ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._imageRegistryCredential.ToJson(null,serializationMode) : null, "imageRegistryCredential" ,container.Add ); + AddIf( null != (((object)this._server)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._server.ToString()) : null, "server" ,container.Add ); + AddIf( null != (((object)this._containerImage)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._containerImage.ToString()) : null, "containerImage" ,container.Add ); + if (null != this._command) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._command ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("command",__w); + } + if (null != this._arg) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._arg ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("args",__r); + } + AddIf( null != (((object)this._languageFramework)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._languageFramework.ToString()) : null, "languageFramework" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.PowerShell.cs new file mode 100644 index 000000000000..78a636cbf3cc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.PowerShell.cs @@ -0,0 +1,226 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom container user source info + [System.ComponentModel.TypeConverter(typeof(CustomContainerUserSourceInfoTypeConverter))] + public partial class CustomContainerUserSourceInfo + { + + /// + /// 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 CustomContainerUserSourceInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer) content.GetValueForProperty("CustomContainer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainerTypeConverter.ConvertFrom); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("CustomContainerServer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerServer = (string) content.GetValueForProperty("CustomContainerServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerServer, global::System.Convert.ToString); + } + if (content.Contains("CustomContainerCommand")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerCommand = (string[]) content.GetValueForProperty("CustomContainerCommand",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerCommand, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CustomContainerArg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerArg = (string[]) content.GetValueForProperty("CustomContainerArg",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerArg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CustomContainerLanguageFramework")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerLanguageFramework = (string) content.GetValueForProperty("CustomContainerLanguageFramework",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerLanguageFramework, global::System.Convert.ToString); + } + if (content.Contains("CustomContainerImageRegistryCredential")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerImageRegistryCredential = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential) content.GetValueForProperty("CustomContainerImageRegistryCredential",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerImageRegistryCredential, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredentialTypeConverter.ConvertFrom); + } + if (content.Contains("CustomContainerImage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerImage = (string) content.GetValueForProperty("CustomContainerImage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerImage, global::System.Convert.ToString); + } + if (content.Contains("ImageRegistryCredentialUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).ImageRegistryCredentialUsername = (string) content.GetValueForProperty("ImageRegistryCredentialUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).ImageRegistryCredentialUsername, global::System.Convert.ToString); + } + if (content.Contains("ImageRegistryCredentialPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).ImageRegistryCredentialPassword = (string) content.GetValueForProperty("ImageRegistryCredentialPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).ImageRegistryCredentialPassword, 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 CustomContainerUserSourceInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomContainer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer) content.GetValueForProperty("CustomContainer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainerTypeConverter.ConvertFrom); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("CustomContainerServer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerServer = (string) content.GetValueForProperty("CustomContainerServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerServer, global::System.Convert.ToString); + } + if (content.Contains("CustomContainerCommand")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerCommand = (string[]) content.GetValueForProperty("CustomContainerCommand",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerCommand, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CustomContainerArg")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerArg = (string[]) content.GetValueForProperty("CustomContainerArg",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerArg, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CustomContainerLanguageFramework")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerLanguageFramework = (string) content.GetValueForProperty("CustomContainerLanguageFramework",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerLanguageFramework, global::System.Convert.ToString); + } + if (content.Contains("CustomContainerImageRegistryCredential")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerImageRegistryCredential = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential) content.GetValueForProperty("CustomContainerImageRegistryCredential",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerImageRegistryCredential, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ImageRegistryCredentialTypeConverter.ConvertFrom); + } + if (content.Contains("CustomContainerImage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerImage = (string) content.GetValueForProperty("CustomContainerImage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).CustomContainerImage, global::System.Convert.ToString); + } + if (content.Contains("ImageRegistryCredentialUsername")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).ImageRegistryCredentialUsername = (string) content.GetValueForProperty("ImageRegistryCredentialUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).ImageRegistryCredentialUsername, global::System.Convert.ToString); + } + if (content.Contains("ImageRegistryCredentialPassword")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).ImageRegistryCredentialPassword = (string) content.GetValueForProperty("ImageRegistryCredentialPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal)this).ImageRegistryCredentialPassword, 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.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomContainerUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomContainerUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom container user source info + [System.ComponentModel.TypeConverter(typeof(CustomContainerUserSourceInfoTypeConverter))] + public partial interface ICustomContainerUserSourceInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.TypeConverter.cs new file mode 100644 index 000000000000..dabb2dafe2a0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomContainerUserSourceInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomContainerUserSourceInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomContainerUserSourceInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomContainerUserSourceInfo.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/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.cs new file mode 100644 index 000000000000..3eaf95e30362 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom container user source info + public partial class CustomContainerUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo __userSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer _customContainer; + + /// Custom container payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer CustomContainer { get => (this._customContainer = this._customContainer ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainer()); set => this._customContainer = value; } + + /// + /// Arguments to the entrypoint. The docker image's CMD is used if this is not provided. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CustomContainerArg { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).Arg; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).Arg = value ?? null /* arrayOf */; } + + /// + /// Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CustomContainerCommand { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).Command; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).Command = value ?? null /* arrayOf */; } + + /// + /// Container image of the custom container. This should be in the form of : without the server name of the + /// registry + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string CustomContainerImage { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).ContainerImage; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).ContainerImage = value ?? null; } + + /// Language framework of the container image uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string CustomContainerLanguageFramework { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).LanguageFramework; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).LanguageFramework = value ?? null; } + + /// The name of the registry that contains the container image + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string CustomContainerServer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).Server; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).Server = value ?? null; } + + /// The password of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ImageRegistryCredentialPassword { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).ImageRegistryCredentialPassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).ImageRegistryCredentialPassword = value ?? null; } + + /// The username of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ImageRegistryCredentialUsername { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).ImageRegistryCredentialUsername; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).ImageRegistryCredentialUsername = value ?? null; } + + /// Internal Acessors for CustomContainer + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal.CustomContainer { get => (this._customContainer = this._customContainer ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainer()); set { {_customContainer = value;} } } + + /// Internal Acessors for CustomContainerImageRegistryCredential + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfoInternal.CustomContainerImageRegistryCredential { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).ImageRegistryCredential; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerInternal)CustomContainer).ImageRegistryCredential = value; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Type = value ; } + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Version = value ?? null; } + + /// Creates an new instance. + public CustomContainerUserSourceInfo() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__userSourceInfo), __userSourceInfo); + await eventListener.AssertObjectIsValid(nameof(__userSourceInfo), __userSourceInfo); + } + } + /// Custom container user source info + public partial interface ICustomContainerUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo + { + /// + /// Arguments to the entrypoint. The docker image's CMD is used if this is not provided. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Arguments to the entrypoint. The docker image's CMD is used if this is not provided.", + SerializedName = @"args", + PossibleTypes = new [] { typeof(string) })] + string[] CustomContainerArg { get; set; } + /// + /// Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided.", + SerializedName = @"command", + PossibleTypes = new [] { typeof(string) })] + string[] CustomContainerCommand { get; set; } + /// + /// Container image of the custom container. This should be in the form of : without the server name of the + /// registry + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Container image of the custom container. This should be in the form of : without the server name of the registry", + SerializedName = @"containerImage", + PossibleTypes = new [] { typeof(string) })] + string CustomContainerImage { get; set; } + /// Language framework of the container image uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Language framework of the container image uploaded", + SerializedName = @"languageFramework", + PossibleTypes = new [] { typeof(string) })] + string CustomContainerLanguageFramework { get; set; } + /// The name of the registry that contains the container image + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the registry that contains the container image", + SerializedName = @"server", + PossibleTypes = new [] { typeof(string) })] + string CustomContainerServer { get; set; } + /// The password of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The password of the image registry credential", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string ImageRegistryCredentialPassword { get; set; } + /// The username of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The username of the image registry credential", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string ImageRegistryCredentialUsername { get; set; } + + } + /// Custom container user source info + internal partial interface ICustomContainerUserSourceInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal + { + /// Custom container payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainer CustomContainer { get; set; } + /// + /// Arguments to the entrypoint. The docker image's CMD is used if this is not provided. + /// + string[] CustomContainerArg { get; set; } + /// + /// Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. + /// + string[] CustomContainerCommand { get; set; } + /// + /// Container image of the custom container. This should be in the form of : without the server name of the + /// registry + /// + string CustomContainerImage { get; set; } + /// Credential of the image registry + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential CustomContainerImageRegistryCredential { get; set; } + /// Language framework of the container image uploaded + string CustomContainerLanguageFramework { get; set; } + /// The name of the registry that contains the container image + string CustomContainerServer { get; set; } + /// The password of the image registry credential + string ImageRegistryCredentialPassword { get; set; } + /// The username of the image registry credential + string ImageRegistryCredentialUsername { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.json.cs new file mode 100644 index 000000000000..120d6bd00a01 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomContainerUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom container user source info + public partial class CustomContainerUserSourceInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomContainerUserSourceInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __userSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo(json); + {_customContainer = If( json?.PropertyT("customContainer"), out var __jsonCustomContainer) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomContainer.FromJson(__jsonCustomContainer) : CustomContainer;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomContainerUserSourceInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomContainerUserSourceInfo(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __userSourceInfo?.ToJson(container, serializationMode); + AddIf( null != this._customContainer ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._customContainer.ToJson(null,serializationMode) : null, "customContainer" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.PowerShell.cs new file mode 100644 index 000000000000..d5da3348d0de --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom domain of app resource payload. + [System.ComponentModel.TypeConverter(typeof(CustomDomainPropertiesTypeConverter))] + public partial class CustomDomainProperties + { + + /// + /// 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 CustomDomainProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("AppName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).AppName, global::System.Convert.ToString); + } + if (content.Contains("CertName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).CertName = (string) content.GetValueForProperty("CertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).CertName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CustomDomainProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("AppName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).AppName, global::System.Convert.ToString); + } + if (content.Contains("CertName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).CertName = (string) content.GetValueForProperty("CertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).CertName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState.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.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomDomainProperties(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.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomDomainProperties(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.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom domain of app resource payload. + [System.ComponentModel.TypeConverter(typeof(CustomDomainPropertiesTypeConverter))] + public partial interface ICustomDomainProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.TypeConverter.cs new file mode 100644 index 000000000000..10486caf174c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomDomainPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomDomainProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomDomainProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomDomainProperties.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/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.cs new file mode 100644 index 000000000000..2dbb374427fb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain of app resource payload. + public partial class CustomDomainProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal + { + + /// Backing field for property. + private string _appName; + + /// The app name of domain. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppName { get => this._appName; } + + /// Backing field for property. + private string _certName; + + /// The bound certificate name of domain. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string CertName { get => this._certName; set => this._certName = value; } + + /// Internal Acessors for AppName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal.AppName { get => this._appName; set { {_appName = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? _provisioningState; + + /// Provisioning state of the Domain + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _thumbprint; + + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Thumbprint { get => this._thumbprint; set => this._thumbprint = value; } + + /// Creates an new instance. + public CustomDomainProperties() + { + + } + } + /// Custom domain of app resource payload. + public partial interface ICustomDomainProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The app name of domain. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The app name of domain.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + string AppName { get; } + /// The bound certificate name of domain. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The bound certificate name of domain.", + SerializedName = @"certName", + PossibleTypes = new [] { typeof(string) })] + string CertName { get; set; } + /// Provisioning state of the Domain + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Domain", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? ProvisioningState { get; } + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; set; } + + } + /// Custom domain of app resource payload. + internal partial interface ICustomDomainPropertiesInternal + + { + /// The app name of domain. + string AppName { get; set; } + /// The bound certificate name of domain. + string CertName { get; set; } + /// Provisioning state of the Domain + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? ProvisioningState { get; set; } + /// The thumbprint of bound certificate. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.json.cs new file mode 100644 index 000000000000..a0c0f783af5f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain of app resource payload. + public partial class CustomDomainProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomDomainProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_thumbprint = If( json?.PropertyT("thumbprint"), out var __jsonThumbprint) ? (string)__jsonThumbprint : (string)Thumbprint;} + {_appName = If( json?.PropertyT("appName"), out var __jsonAppName) ? (string)__jsonAppName : (string)AppName;} + {_certName = If( json?.PropertyT("certName"), out var __jsonCertName) ? (string)__jsonCertName : (string)CertName;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomDomainProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._thumbprint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._thumbprint.ToString()) : null, "thumbprint" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._appName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._appName.ToString()) : null, "appName" ,container.Add ); + } + AddIf( null != (((object)this._certName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._certName.ToString()) : null, "certName" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.PowerShell.cs new file mode 100644 index 000000000000..49c5ea7e644a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.PowerShell.cs @@ -0,0 +1,258 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom domain resource payload. + [System.ComponentModel.TypeConverter(typeof(CustomDomainResourceTypeConverter))] + public partial class CustomDomainResource + { + + /// + /// 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 CustomDomainResource(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.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("AppName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).AppName, global::System.Convert.ToString); + } + if (content.Contains("CertName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).CertName = (string) content.GetValueForProperty("CertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).CertName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CustomDomainResource(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.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("AppName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).AppName, global::System.Convert.ToString); + } + if (content.Contains("CertName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).CertName = (string) content.GetValueForProperty("CertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).CertName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState.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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomDomainResource(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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomDomainResource(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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom domain resource payload. + [System.ComponentModel.TypeConverter(typeof(CustomDomainResourceTypeConverter))] + public partial interface ICustomDomainResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.TypeConverter.cs new file mode 100644 index 000000000000..090d6a79faf9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomDomainResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomDomainResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomDomainResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomDomainResource.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/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.cs new file mode 100644 index 000000000000..079d6037f2c2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain resource payload. + public partial class CustomDomainResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// The app name of domain. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AppName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).AppName; } + + /// The bound certificate name of domain. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string CertName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).CertName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).CertName = value ?? null; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for AppName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal.AppName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).AppName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).AppName = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties _property; + + /// Properties of the custom domain resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainProperties()); set => this._property = value; } + + /// Provisioning state of the Domain + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).ProvisioningState; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainPropertiesInternal)Property).Thumbprint = value ?? null; } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public CustomDomainResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Custom domain resource payload. + public partial interface ICustomDomainResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The app name of domain. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The app name of domain.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + string AppName { get; } + /// The bound certificate name of domain. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The bound certificate name of domain.", + SerializedName = @"certName", + PossibleTypes = new [] { typeof(string) })] + string CertName { get; set; } + /// Provisioning state of the Domain + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Domain", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? ProvisioningState { get; } + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; set; } + + } + /// Custom domain resource payload. + internal partial interface ICustomDomainResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The app name of domain. + string AppName { get; set; } + /// The bound certificate name of domain. + string CertName { get; set; } + /// Properties of the custom domain resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainProperties Property { get; set; } + /// Provisioning state of the Domain + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState? ProvisioningState { get; set; } + /// The thumbprint of bound certificate. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.json.cs new file mode 100644 index 000000000000..35be1e943d1e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain resource payload. + public partial class CustomDomainResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomDomainResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomDomainResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..4750b007f338 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Collection compose of a custom domain resources list and a possible link for next page. + /// + [System.ComponentModel.TypeConverter(typeof(CustomDomainResourceCollectionTypeConverter))] + public partial class CustomDomainResourceCollection + { + + /// + /// 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 CustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal)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 CustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection compose of a custom domain resources list and a possible link for next page. + [System.ComponentModel.TypeConverter(typeof(CustomDomainResourceCollectionTypeConverter))] + public partial interface ICustomDomainResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..359b59f33fc7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomDomainResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomDomainResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomDomainResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomDomainResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.cs new file mode 100644 index 000000000000..56dfbef0100e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Collection compose of a custom domain resources list and a possible link for next page. + /// + public partial class CustomDomainResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// The link to next page of custom domain list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource[] _value; + + /// The custom domain resources list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public CustomDomainResourceCollection() + { + + } + } + /// Collection compose of a custom domain resources list and a possible link for next page. + public partial interface ICustomDomainResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The link to next page of custom domain list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The link to next page of custom domain list.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// The custom domain resources list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The custom domain resources list.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource[] Value { get; set; } + + } + /// Collection compose of a custom domain resources list and a possible link for next page. + internal partial interface ICustomDomainResourceCollectionInternal + + { + /// The link to next page of custom domain list. + string NextLink { get; set; } + /// The custom domain resources list. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.json.cs new file mode 100644 index 000000000000..82bbf898f66a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Collection compose of a custom domain resources list and a possible link for next page. + /// + public partial class CustomDomainResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomDomainResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomDomainResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.PowerShell.cs new file mode 100644 index 000000000000..069ffbf9f5b7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom domain validate payload. + [System.ComponentModel.TypeConverter(typeof(CustomDomainValidatePayloadTypeConverter))] + public partial class CustomDomainValidatePayload + { + + /// + /// 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 CustomDomainValidatePayload(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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayloadInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayloadInternal)this).Name, 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 CustomDomainValidatePayload(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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayloadInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayloadInternal)this).Name, 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomDomainValidatePayload(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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomDomainValidatePayload(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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom domain validate payload. + [System.ComponentModel.TypeConverter(typeof(CustomDomainValidatePayloadTypeConverter))] + public partial interface ICustomDomainValidatePayload + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.TypeConverter.cs new file mode 100644 index 000000000000..781f0bc163b7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomDomainValidatePayloadTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomDomainValidatePayload.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomDomainValidatePayload.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomDomainValidatePayload.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/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.cs new file mode 100644 index 000000000000..1581033fce7c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain validate payload. + public partial class CustomDomainValidatePayload : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayloadInternal + { + + /// Backing field for property. + private string _name; + + /// Name to be validated + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public CustomDomainValidatePayload() + { + + } + } + /// Custom domain validate payload. + public partial interface ICustomDomainValidatePayload : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name to be validated + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be validated", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Custom domain validate payload. + internal partial interface ICustomDomainValidatePayloadInternal + + { + /// Name to be validated + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.json.cs new file mode 100644 index 000000000000..6a88f99a617d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidatePayload.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain validate payload. + public partial class CustomDomainValidatePayload + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomDomainValidatePayload(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomDomainValidatePayload(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.PowerShell.cs new file mode 100644 index 000000000000..9952f8f77413 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Validation result for custom domain. + [System.ComponentModel.TypeConverter(typeof(CustomDomainValidateResultTypeConverter))] + public partial class CustomDomainValidateResult + { + + /// + /// 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 CustomDomainValidateResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IsValid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal)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 CustomDomainValidateResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IsValid")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal)this).Message, 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomDomainValidateResult(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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomDomainValidateResult(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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Validation result for custom domain. + [System.ComponentModel.TypeConverter(typeof(CustomDomainValidateResultTypeConverter))] + public partial interface ICustomDomainValidateResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.TypeConverter.cs new file mode 100644 index 000000000000..0c6ca4691f50 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomDomainValidateResultTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomDomainValidateResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomDomainValidateResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomDomainValidateResult.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/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.cs new file mode 100644 index 000000000000..ca9d01408c4d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for custom domain. + public partial class CustomDomainValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResultInternal + { + + /// Backing field for property. + private bool? _isValid; + + /// Indicates if domain name is valid. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? IsValid { get => this._isValid; set => this._isValid = value; } + + /// Backing field for property. + private string _message; + + /// Message of why domain name is invalid. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Creates an new instance. + public CustomDomainValidateResult() + { + + } + } + /// Validation result for custom domain. + public partial interface ICustomDomainValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Indicates if domain name is valid. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates if domain name is valid.", + SerializedName = @"isValid", + PossibleTypes = new [] { typeof(bool) })] + bool? IsValid { get; set; } + /// Message of why domain name is invalid. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Message of why domain name is invalid.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + + } + /// Validation result for custom domain. + internal partial interface ICustomDomainValidateResultInternal + + { + /// Indicates if domain name is valid. + bool? IsValid { get; set; } + /// Message of why domain name is invalid. + string Message { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.json.cs new file mode 100644 index 000000000000..9049dc9ea4f7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomDomainValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for custom domain. + public partial class CustomDomainValidateResult + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomDomainValidateResult(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_isValid = If( json?.PropertyT("isValid"), out var __jsonIsValid) ? (bool?)__jsonIsValid : IsValid;} + {_message = If( json?.PropertyT("message"), out var __jsonMessage) ? (string)__jsonMessage : (string)Message;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomDomainValidateResult(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._isValid ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._isValid) : null, "isValid" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.PowerShell.cs new file mode 100644 index 000000000000..bfb8bfd2b1ce --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom persistent disk resource payload. + [System.ComponentModel.TypeConverter(typeof(CustomPersistentDiskPropertiesTypeConverter))] + public partial class CustomPersistentDiskProperties + { + + /// + /// 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 CustomPersistentDiskProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountPath, global::System.Convert.ToString); + } + if (content.Contains("ReadOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).ReadOnly = (bool?) content.GetValueForProperty("ReadOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).ReadOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("MountOption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountOption = (string[]) content.GetValueForProperty("MountOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountOption, __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 CustomPersistentDiskProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountPath, global::System.Convert.ToString); + } + if (content.Contains("ReadOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).ReadOnly = (bool?) content.GetValueForProperty("ReadOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).ReadOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("MountOption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountOption = (string[]) content.GetValueForProperty("MountOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)this).MountOption, __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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomPersistentDiskProperties(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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomPersistentDiskProperties(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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom persistent disk resource payload. + [System.ComponentModel.TypeConverter(typeof(CustomPersistentDiskPropertiesTypeConverter))] + public partial interface ICustomPersistentDiskProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.TypeConverter.cs new file mode 100644 index 000000000000..bf5ec161fe06 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomPersistentDiskPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomPersistentDiskProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomPersistentDiskProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomPersistentDiskProperties.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/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.cs new file mode 100644 index 000000000000..c6a329c1c257 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom persistent disk resource payload. + public partial class CustomPersistentDiskProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string[] _mountOption; + + /// These are the mount options for a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] MountOption { get => this._mountOption; set => this._mountOption = value; } + + /// Backing field for property. + private string _mountPath; + + /// The mount path of the persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string MountPath { get => this._mountPath; set => this._mountPath = value; } + + /// Backing field for property. + private bool? _readOnly; + + /// Indicates whether the persistent disk is a readOnly one. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? ReadOnly { get => this._readOnly; set => this._readOnly = value; } + + /// Backing field for property. + private string _type= @"AzureFileVolume"; + + /// The type of the underlying resource to mount as a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public CustomPersistentDiskProperties() + { + + } + } + /// Custom persistent disk resource payload. + public partial interface ICustomPersistentDiskProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// These are the mount options for a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"These are the mount options for a persistent disk.", + SerializedName = @"mountOptions", + PossibleTypes = new [] { typeof(string) })] + string[] MountOption { get; set; } + /// The mount path of the persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The mount path of the persistent disk.", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string MountPath { get; set; } + /// Indicates whether the persistent disk is a readOnly one. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the persistent disk is a readOnly one.", + SerializedName = @"readOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? ReadOnly { get; set; } + /// The type of the underlying resource to mount as a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of the underlying resource to mount as a persistent disk.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// Custom persistent disk resource payload. + internal partial interface ICustomPersistentDiskPropertiesInternal + + { + /// These are the mount options for a persistent disk. + string[] MountOption { get; set; } + /// The mount path of the persistent disk. + string MountPath { get; set; } + /// Indicates whether the persistent disk is a readOnly one. + bool? ReadOnly { get; set; } + /// The type of the underlying resource to mount as a persistent disk. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.json.cs new file mode 100644 index 000000000000..28ec6c58185b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom persistent disk resource payload. + public partial class CustomPersistentDiskProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomPersistentDiskProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_mountPath = If( json?.PropertyT("mountPath"), out var __jsonMountPath) ? (string)__jsonMountPath : (string)MountPath;} + {_readOnly = If( json?.PropertyT("readOnly"), out var __jsonReadOnly) ? (bool?)__jsonReadOnly : ReadOnly;} + {_mountOption = If( json?.PropertyT("mountOptions"), out var __jsonMountOptions) ? If( __jsonMountOptions as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : MountOption;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties 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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("type") ) + { + case "AzureFileVolume": + { + return new AzureFileVolume(json); + } + } + return new CustomPersistentDiskProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != (((object)this._mountPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._mountPath.ToString()) : null, "mountPath" ,container.Add ); + AddIf( null != this._readOnly ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._readOnly) : null, "readOnly" ,container.Add ); + if (null != this._mountOption) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._mountOption ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("mountOptions",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.PowerShell.cs new file mode 100644 index 000000000000..969147b446eb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom persistent disk resource payload. + [System.ComponentModel.TypeConverter(typeof(CustomPersistentDiskResourceTypeConverter))] + public partial class CustomPersistentDiskResource + { + + /// + /// 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 CustomPersistentDiskResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomPersistentDiskProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties) content.GetValueForProperty("CustomPersistentDiskProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("StorageId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).StorageId = (string) content.GetValueForProperty("StorageId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).StorageId, global::System.Convert.ToString); + } + if (content.Contains("CustomPersistentDiskPropertyType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyType = (string) content.GetValueForProperty("CustomPersistentDiskPropertyType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyType, global::System.Convert.ToString); + } + if (content.Contains("CustomPersistentDiskPropertyMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyMountPath = (string) content.GetValueForProperty("CustomPersistentDiskPropertyMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyMountPath, global::System.Convert.ToString); + } + if (content.Contains("CustomPersistentDiskPropertyMountOption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyMountOption = (string[]) content.GetValueForProperty("CustomPersistentDiskPropertyMountOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyMountOption, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CustomPersistentDiskPropertyReadOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyReadOnly = (bool?) content.GetValueForProperty("CustomPersistentDiskPropertyReadOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyReadOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal CustomPersistentDiskResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CustomPersistentDiskProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties) content.GetValueForProperty("CustomPersistentDiskProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("StorageId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).StorageId = (string) content.GetValueForProperty("StorageId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).StorageId, global::System.Convert.ToString); + } + if (content.Contains("CustomPersistentDiskPropertyType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyType = (string) content.GetValueForProperty("CustomPersistentDiskPropertyType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyType, global::System.Convert.ToString); + } + if (content.Contains("CustomPersistentDiskPropertyMountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyMountPath = (string) content.GetValueForProperty("CustomPersistentDiskPropertyMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyMountPath, global::System.Convert.ToString); + } + if (content.Contains("CustomPersistentDiskPropertyMountOption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyMountOption = (string[]) content.GetValueForProperty("CustomPersistentDiskPropertyMountOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyMountOption, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CustomPersistentDiskPropertyReadOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyReadOnly = (bool?) content.GetValueForProperty("CustomPersistentDiskPropertyReadOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal)this).CustomPersistentDiskPropertyReadOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomPersistentDiskResource(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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomPersistentDiskResource(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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom persistent disk resource payload. + [System.ComponentModel.TypeConverter(typeof(CustomPersistentDiskResourceTypeConverter))] + public partial interface ICustomPersistentDiskResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.TypeConverter.cs new file mode 100644 index 000000000000..77225afa8b32 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomPersistentDiskResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomPersistentDiskResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomPersistentDiskResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomPersistentDiskResource.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/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.cs new file mode 100644 index 000000000000..bf76de9737c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom persistent disk resource payload. + public partial class CustomPersistentDiskResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties _customPersistentDiskProperty; + + /// Properties of the custom persistent disk resource payload. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties CustomPersistentDiskProperty { get => (this._customPersistentDiskProperty = this._customPersistentDiskProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskProperties()); set => this._customPersistentDiskProperty = value; } + + /// These are the mount options for a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CustomPersistentDiskPropertyMountOption { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).MountOption; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).MountOption = value ?? null /* arrayOf */; } + + /// The mount path of the persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string CustomPersistentDiskPropertyMountPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).MountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).MountPath = value ?? null; } + + /// Indicates whether the persistent disk is a readOnly one. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? CustomPersistentDiskPropertyReadOnly { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).ReadOnly; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).ReadOnly = value ?? default(bool); } + + /// The type of the underlying resource to mount as a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string CustomPersistentDiskPropertyType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).Type; } + + /// Internal Acessors for CustomPersistentDiskProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal.CustomPersistentDiskProperty { get => (this._customPersistentDiskProperty = this._customPersistentDiskProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskProperties()); set { {_customPersistentDiskProperty = value;} } } + + /// Internal Acessors for CustomPersistentDiskPropertyType + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResourceInternal.CustomPersistentDiskPropertyType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskPropertiesInternal)CustomPersistentDiskProperty).Type = value; } + + /// Backing field for property. + private string _storageId; + + /// The resource id of Azure Spring Apps Storage resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string StorageId { get => this._storageId; set => this._storageId = value; } + + /// Creates an new instance. + public CustomPersistentDiskResource() + { + + } + } + /// Custom persistent disk resource payload. + public partial interface ICustomPersistentDiskResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// These are the mount options for a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"These are the mount options for a persistent disk.", + SerializedName = @"mountOptions", + PossibleTypes = new [] { typeof(string) })] + string[] CustomPersistentDiskPropertyMountOption { get; set; } + /// The mount path of the persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The mount path of the persistent disk.", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string CustomPersistentDiskPropertyMountPath { get; set; } + /// Indicates whether the persistent disk is a readOnly one. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the persistent disk is a readOnly one.", + SerializedName = @"readOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? CustomPersistentDiskPropertyReadOnly { get; set; } + /// The type of the underlying resource to mount as a persistent disk. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of the underlying resource to mount as a persistent disk.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string CustomPersistentDiskPropertyType { get; } + /// The resource id of Azure Spring Apps Storage resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The resource id of Azure Spring Apps Storage resource.", + SerializedName = @"storageId", + PossibleTypes = new [] { typeof(string) })] + string StorageId { get; set; } + + } + /// Custom persistent disk resource payload. + internal partial interface ICustomPersistentDiskResourceInternal + + { + /// Properties of the custom persistent disk resource payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskProperties CustomPersistentDiskProperty { get; set; } + /// These are the mount options for a persistent disk. + string[] CustomPersistentDiskPropertyMountOption { get; set; } + /// The mount path of the persistent disk. + string CustomPersistentDiskPropertyMountPath { get; set; } + /// Indicates whether the persistent disk is a readOnly one. + bool? CustomPersistentDiskPropertyReadOnly { get; set; } + /// The type of the underlying resource to mount as a persistent disk. + string CustomPersistentDiskPropertyType { get; set; } + /// The resource id of Azure Spring Apps Storage resource. + string StorageId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.json.cs new file mode 100644 index 000000000000..b8d1ff196c1b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomPersistentDiskResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom persistent disk resource payload. + public partial class CustomPersistentDiskResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomPersistentDiskResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_customPersistentDiskProperty = If( json?.PropertyT("customPersistentDiskProperties"), out var __jsonCustomPersistentDiskProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomPersistentDiskProperties.FromJson(__jsonCustomPersistentDiskProperties) : CustomPersistentDiskProperty;} + {_storageId = If( json?.PropertyT("storageId"), out var __jsonStorageId) ? (string)__jsonStorageId : (string)StorageId;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomPersistentDiskResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._customPersistentDiskProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._customPersistentDiskProperty.ToJson(null,serializationMode) : null, "customPersistentDiskProperties" ,container.Add ); + AddIf( null != (((object)this._storageId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._storageId.ToString()) : null, "storageId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.PowerShell.cs new file mode 100644 index 000000000000..2fbed5a6cf61 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Customized accelerator properties payload + [System.ComponentModel.TypeConverter(typeof(CustomizedAcceleratorPropertiesTypeConverter))] + public partial class CustomizedAcceleratorProperties + { + + /// + /// 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 CustomizedAcceleratorProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GitRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository) content.GetValueForProperty("GitRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepository, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepositoryTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IconUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).IconUrl = (string) content.GetValueForProperty("IconUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).IconUrl, global::System.Convert.ToString); + } + if (content.Contains("AcceleratorTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).AcceleratorTag = (string[]) content.GetValueForProperty("AcceleratorTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).AcceleratorTag, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitRepositoryAuthSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryAuthSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting) content.GetValueForProperty("GitRepositoryAuthSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryAuthSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSettingTypeConverter.ConvertFrom); + } + if (content.Contains("GitRepositoryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryUrl = (string) content.GetValueForProperty("GitRepositoryUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryUrl, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryIntervalInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryIntervalInSecond = (int?) content.GetValueForProperty("GitRepositoryIntervalInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryIntervalInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("GitRepositoryBranch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryBranch = (string) content.GetValueForProperty("GitRepositoryBranch",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryBranch, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryCommit")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryCommit = (string) content.GetValueForProperty("GitRepositoryCommit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryCommit, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryGitTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryGitTag = (string) content.GetValueForProperty("GitRepositoryGitTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryGitTag, global::System.Convert.ToString); + } + if (content.Contains("AuthSettingAuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).AuthSettingAuthType = (string) content.GetValueForProperty("AuthSettingAuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).AuthSettingAuthType, 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 CustomizedAcceleratorProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GitRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository) content.GetValueForProperty("GitRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepository, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepositoryTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IconUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).IconUrl = (string) content.GetValueForProperty("IconUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).IconUrl, global::System.Convert.ToString); + } + if (content.Contains("AcceleratorTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).AcceleratorTag = (string[]) content.GetValueForProperty("AcceleratorTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).AcceleratorTag, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitRepositoryAuthSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryAuthSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting) content.GetValueForProperty("GitRepositoryAuthSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryAuthSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSettingTypeConverter.ConvertFrom); + } + if (content.Contains("GitRepositoryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryUrl = (string) content.GetValueForProperty("GitRepositoryUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryUrl, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryIntervalInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryIntervalInSecond = (int?) content.GetValueForProperty("GitRepositoryIntervalInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryIntervalInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("GitRepositoryBranch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryBranch = (string) content.GetValueForProperty("GitRepositoryBranch",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryBranch, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryCommit")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryCommit = (string) content.GetValueForProperty("GitRepositoryCommit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryCommit, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryGitTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryGitTag = (string) content.GetValueForProperty("GitRepositoryGitTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).GitRepositoryGitTag, global::System.Convert.ToString); + } + if (content.Contains("AuthSettingAuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).AuthSettingAuthType = (string) content.GetValueForProperty("AuthSettingAuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)this).AuthSettingAuthType, 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomizedAcceleratorProperties(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomizedAcceleratorProperties(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Customized accelerator properties payload + [System.ComponentModel.TypeConverter(typeof(CustomizedAcceleratorPropertiesTypeConverter))] + public partial interface ICustomizedAcceleratorProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.TypeConverter.cs new file mode 100644 index 000000000000..f5fba7db76ca --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomizedAcceleratorPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomizedAcceleratorProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomizedAcceleratorProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomizedAcceleratorProperties.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/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.cs new file mode 100644 index 000000000000..6fe2a9ee3990 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.cs @@ -0,0 +1,216 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Customized accelerator properties payload + public partial class CustomizedAcceleratorProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal + { + + /// Backing field for property. + private string[] _acceleratorTag; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] AcceleratorTag { get => this._acceleratorTag; set => this._acceleratorTag = value; } + + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AuthSettingAuthType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).AuthSettingAuthType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).AuthSettingAuthType = value ; } + + /// Backing field for property. + private string _description; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _displayName; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository _gitRepository; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository GitRepository { get => (this._gitRepository = this._gitRepository ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepository()); set => this._gitRepository = value; } + + /// Git repository branch to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitRepositoryBranch { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).Branch; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).Branch = value ?? null; } + + /// Git repository commit to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitRepositoryCommit { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).Commit; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).Commit = value ?? null; } + + /// Git repository tag to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitRepositoryGitTag { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).GitTag; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).GitTag = value ?? null; } + + /// Interval for checking for updates to Git or image repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? GitRepositoryIntervalInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).IntervalInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).IntervalInSecond = value ?? default(int); } + + /// Git repository URL for the accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitRepositoryUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).Url; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).Url = value ; } + + /// Backing field for property. + private string _iconUrl; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string IconUrl { get => this._iconUrl; set => this._iconUrl = value; } + + /// Internal Acessors for GitRepository + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal.GitRepository { get => (this._gitRepository = this._gitRepository ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepository()); set { {_gitRepository = value;} } } + + /// Internal Acessors for GitRepositoryAuthSetting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal.GitRepositoryAuthSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).AuthSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepositoryInternal)GitRepository).AuthSetting = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? _provisioningState; + + /// State of the customized accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public CustomizedAcceleratorProperties() + { + + } + } + /// Customized accelerator properties payload + public partial interface ICustomizedAcceleratorProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"acceleratorTags", + PossibleTypes = new [] { typeof(string) })] + string[] AcceleratorTag { get; set; } + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the auth setting.", + SerializedName = @"authType", + PossibleTypes = new [] { typeof(string) })] + string AuthSettingAuthType { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Git repository branch to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository branch to be used.", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + string GitRepositoryBranch { get; set; } + /// Git repository commit to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository commit to be used.", + SerializedName = @"commit", + PossibleTypes = new [] { typeof(string) })] + string GitRepositoryCommit { get; set; } + /// Git repository tag to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository tag to be used.", + SerializedName = @"gitTag", + PossibleTypes = new [] { typeof(string) })] + string GitRepositoryGitTag { get; set; } + /// Interval for checking for updates to Git or image repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Interval for checking for updates to Git or image repository.", + SerializedName = @"intervalInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? GitRepositoryIntervalInSecond { get; set; } + /// Git repository URL for the accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Git repository URL for the accelerator.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string GitRepositoryUrl { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"iconUrl", + PossibleTypes = new [] { typeof(string) })] + string IconUrl { get; set; } + /// State of the customized accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the customized accelerator.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? ProvisioningState { get; } + + } + /// Customized accelerator properties payload + internal partial interface ICustomizedAcceleratorPropertiesInternal + + { + string[] AcceleratorTag { get; set; } + /// The type of the auth setting. + string AuthSettingAuthType { get; set; } + + string Description { get; set; } + + string DisplayName { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository GitRepository { get; set; } + /// Properties of the auth setting payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting GitRepositoryAuthSetting { get; set; } + /// Git repository branch to be used. + string GitRepositoryBranch { get; set; } + /// Git repository commit to be used. + string GitRepositoryCommit { get; set; } + /// Git repository tag to be used. + string GitRepositoryGitTag { get; set; } + /// Interval for checking for updates to Git or image repository. + int? GitRepositoryIntervalInSecond { get; set; } + /// Git repository URL for the accelerator. + string GitRepositoryUrl { get; set; } + + string IconUrl { get; set; } + /// State of the customized accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.json.cs new file mode 100644 index 000000000000..8f0fa9d8a769 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Customized accelerator properties payload + public partial class CustomizedAcceleratorProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomizedAcceleratorProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_gitRepository = If( json?.PropertyT("gitRepository"), out var __jsonGitRepository) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepository.FromJson(__jsonGitRepository) : GitRepository;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_iconUrl = If( json?.PropertyT("iconUrl"), out var __jsonIconUrl) ? (string)__jsonIconUrl : (string)IconUrl;} + {_acceleratorTag = If( json?.PropertyT("acceleratorTags"), out var __jsonAcceleratorTags) ? If( __jsonAcceleratorTags as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AcceleratorTag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomizedAcceleratorProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._gitRepository ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._gitRepository.ToJson(null,serializationMode) : null, "gitRepository" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._iconUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._iconUrl.ToString()) : null, "iconUrl" ,container.Add ); + if (null != this._acceleratorTag) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._acceleratorTag ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("acceleratorTags",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.PowerShell.cs new file mode 100644 index 000000000000..8cddfdbaedaa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.PowerShell.cs @@ -0,0 +1,362 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Customized accelerator resource + [System.ComponentModel.TypeConverter(typeof(CustomizedAcceleratorResourceTypeConverter))] + public partial class CustomizedAcceleratorResource + { + + /// + /// 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 CustomizedAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("GitRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository) content.GetValueForProperty("GitRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepository, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepositoryTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IconUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).IconUrl = (string) content.GetValueForProperty("IconUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).IconUrl, global::System.Convert.ToString); + } + if (content.Contains("AcceleratorTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).AcceleratorTag = (string[]) content.GetValueForProperty("AcceleratorTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).AcceleratorTag, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitRepositoryAuthSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryAuthSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting) content.GetValueForProperty("GitRepositoryAuthSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryAuthSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSettingTypeConverter.ConvertFrom); + } + if (content.Contains("GitRepositoryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryUrl = (string) content.GetValueForProperty("GitRepositoryUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryUrl, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryIntervalInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryIntervalInSecond = (int?) content.GetValueForProperty("GitRepositoryIntervalInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryIntervalInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("GitRepositoryBranch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryBranch = (string) content.GetValueForProperty("GitRepositoryBranch",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryBranch, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryCommit")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryCommit = (string) content.GetValueForProperty("GitRepositoryCommit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryCommit, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryGitTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryGitTag = (string) content.GetValueForProperty("GitRepositoryGitTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryGitTag, global::System.Convert.ToString); + } + if (content.Contains("AuthSettingAuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).AuthSettingAuthType = (string) content.GetValueForProperty("AuthSettingAuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).AuthSettingAuthType, 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 CustomizedAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("GitRepository")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository) content.GetValueForProperty("GitRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepository, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorGitRepositoryTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IconUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).IconUrl = (string) content.GetValueForProperty("IconUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).IconUrl, global::System.Convert.ToString); + } + if (content.Contains("AcceleratorTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).AcceleratorTag = (string[]) content.GetValueForProperty("AcceleratorTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).AcceleratorTag, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("GitRepositoryAuthSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryAuthSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting) content.GetValueForProperty("GitRepositoryAuthSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryAuthSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AcceleratorAuthSettingTypeConverter.ConvertFrom); + } + if (content.Contains("GitRepositoryUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryUrl = (string) content.GetValueForProperty("GitRepositoryUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryUrl, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryIntervalInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryIntervalInSecond = (int?) content.GetValueForProperty("GitRepositoryIntervalInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryIntervalInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("GitRepositoryBranch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryBranch = (string) content.GetValueForProperty("GitRepositoryBranch",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryBranch, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryCommit")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryCommit = (string) content.GetValueForProperty("GitRepositoryCommit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryCommit, global::System.Convert.ToString); + } + if (content.Contains("GitRepositoryGitTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryGitTag = (string) content.GetValueForProperty("GitRepositoryGitTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).GitRepositoryGitTag, global::System.Convert.ToString); + } + if (content.Contains("AuthSettingAuthType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).AuthSettingAuthType = (string) content.GetValueForProperty("AuthSettingAuthType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal)this).AuthSettingAuthType, 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomizedAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomizedAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Customized accelerator resource + [System.ComponentModel.TypeConverter(typeof(CustomizedAcceleratorResourceTypeConverter))] + public partial interface ICustomizedAcceleratorResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.TypeConverter.cs new file mode 100644 index 000000000000..7368b2028172 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomizedAcceleratorResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomizedAcceleratorResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomizedAcceleratorResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomizedAcceleratorResource.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/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.cs new file mode 100644 index 000000000000..1aa7ccd6beb7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.cs @@ -0,0 +1,332 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Customized accelerator resource + public partial class CustomizedAcceleratorResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] AcceleratorTag { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).AcceleratorTag; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).AcceleratorTag = value ?? null /* arrayOf */; } + + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AuthSettingAuthType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).AuthSettingAuthType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).AuthSettingAuthType = value ?? null; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).Description = value ?? null; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).DisplayName = value ?? null; } + + /// Git repository branch to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitRepositoryBranch { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryBranch; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryBranch = value ?? null; } + + /// Git repository commit to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitRepositoryCommit { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryCommit; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryCommit = value ?? null; } + + /// Git repository tag to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitRepositoryGitTag { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryGitTag; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryGitTag = value ?? null; } + + /// Interval for checking for updates to Git or image repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? GitRepositoryIntervalInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryIntervalInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryIntervalInSecond = value ?? default(int); } + + /// Git repository URL for the accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string GitRepositoryUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryUrl = value ?? null; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string IconUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).IconUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).IconUrl = value ?? null; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for GitRepository + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal.GitRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepository = value; } + + /// Internal Acessors for GitRepositoryAuthSetting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal.GitRepositoryAuthSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryAuthSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).GitRepositoryAuthSetting = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties _property; + + /// Customized accelerator properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorProperties()); set => this._property = value; } + + /// State of the customized accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku _sku; + + /// Sku of the customized accelerator resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set => this._sku = value; } + + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity = value ?? default(int); } + + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name = value ?? null; } + + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public CustomizedAcceleratorResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Customized accelerator resource + public partial interface ICustomizedAcceleratorResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"acceleratorTags", + PossibleTypes = new [] { typeof(string) })] + string[] AcceleratorTag { get; set; } + /// The type of the auth setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the auth setting.", + SerializedName = @"authType", + PossibleTypes = new [] { typeof(string) })] + string AuthSettingAuthType { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Git repository branch to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository branch to be used.", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + string GitRepositoryBranch { get; set; } + /// Git repository commit to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository commit to be used.", + SerializedName = @"commit", + PossibleTypes = new [] { typeof(string) })] + string GitRepositoryCommit { get; set; } + /// Git repository tag to be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository tag to be used.", + SerializedName = @"gitTag", + PossibleTypes = new [] { typeof(string) })] + string GitRepositoryGitTag { get; set; } + /// Interval for checking for updates to Git or image repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Interval for checking for updates to Git or image repository.", + SerializedName = @"intervalInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? GitRepositoryIntervalInSecond { get; set; } + /// Git repository URL for the accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository URL for the accelerator.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string GitRepositoryUrl { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"iconUrl", + PossibleTypes = new [] { typeof(string) })] + string IconUrl { get; set; } + /// State of the customized accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the customized accelerator.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? ProvisioningState { get; } + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string SkuName { get; set; } + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string SkuTier { get; set; } + + } + /// Customized accelerator resource + internal partial interface ICustomizedAcceleratorResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + string[] AcceleratorTag { get; set; } + /// The type of the auth setting. + string AuthSettingAuthType { get; set; } + + string Description { get; set; } + + string DisplayName { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorGitRepository GitRepository { get; set; } + /// Properties of the auth setting payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAcceleratorAuthSetting GitRepositoryAuthSetting { get; set; } + /// Git repository branch to be used. + string GitRepositoryBranch { get; set; } + /// Git repository commit to be used. + string GitRepositoryCommit { get; set; } + /// Git repository tag to be used. + string GitRepositoryGitTag { get; set; } + /// Interval for checking for updates to Git or image repository. + int? GitRepositoryIntervalInSecond { get; set; } + /// Git repository URL for the accelerator. + string GitRepositoryUrl { get; set; } + + string IconUrl { get; set; } + /// Customized accelerator properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties Property { get; set; } + /// State of the customized accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState? ProvisioningState { get; set; } + /// Sku of the customized accelerator resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get; set; } + /// Current capacity of the target resource + int? SkuCapacity { get; set; } + /// Name of the Sku + string SkuName { get; set; } + /// Tier of the Sku + string SkuTier { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.json.cs new file mode 100644 index 000000000000..c1ea65baf5a8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Customized accelerator resource + public partial class CustomizedAcceleratorResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomizedAcceleratorResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku.FromJson(__jsonSku) : Sku;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomizedAcceleratorResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..f8a7fd75518b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(CustomizedAcceleratorResourceCollectionTypeConverter))] + public partial class CustomizedAcceleratorResourceCollection + { + + /// + /// 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 CustomizedAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal)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 CustomizedAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomizedAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomizedAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(CustomizedAcceleratorResourceCollectionTypeConverter))] + public partial interface ICustomizedAcceleratorResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..5af6095de5fb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomizedAcceleratorResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomizedAcceleratorResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomizedAcceleratorResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomizedAcceleratorResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.cs new file mode 100644 index 000000000000..9bbdf6412bfa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class CustomizedAcceleratorResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource[] _value; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public CustomizedAcceleratorResourceCollection() + { + + } + } + public partial interface ICustomizedAcceleratorResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource[] Value { get; set; } + + } + internal partial interface ICustomizedAcceleratorResourceCollectionInternal + + { + string NextLink { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.json.cs new file mode 100644 index 000000000000..0e7cd8a96f41 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class CustomizedAcceleratorResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomizedAcceleratorResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomizedAcceleratorResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.PowerShell.cs new file mode 100644 index 000000000000..c88ed24d7936 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Validation result for customized accelerator properties + [System.ComponentModel.TypeConverter(typeof(CustomizedAcceleratorValidateResultTypeConverter))] + public partial class CustomizedAcceleratorValidateResult + { + + /// + /// 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 CustomizedAcceleratorValidateResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState.CreateFrom); + } + if (content.Contains("ErrorMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal)this).ErrorMessage = (string) content.GetValueForProperty("ErrorMessage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal)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 CustomizedAcceleratorValidateResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState.CreateFrom); + } + if (content.Contains("ErrorMessage")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal)this).ErrorMessage = (string) content.GetValueForProperty("ErrorMessage",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal)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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new CustomizedAcceleratorValidateResult(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new CustomizedAcceleratorValidateResult(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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Validation result for customized accelerator properties + [System.ComponentModel.TypeConverter(typeof(CustomizedAcceleratorValidateResultTypeConverter))] + public partial interface ICustomizedAcceleratorValidateResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.TypeConverter.cs new file mode 100644 index 000000000000..354bfa1263b4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class CustomizedAcceleratorValidateResultTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return CustomizedAcceleratorValidateResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return CustomizedAcceleratorValidateResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return CustomizedAcceleratorValidateResult.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/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.cs new file mode 100644 index 000000000000..9f090aa591b8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for customized accelerator properties + public partial class CustomizedAcceleratorValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResultInternal + { + + /// Backing field for property. + private string _errorMessage; + + /// The detail validation results + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ErrorMessage { get => this._errorMessage; set => this._errorMessage = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState? _state; + + /// State of the customized accelerator validation result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState? State { get => this._state; set => this._state = value; } + + /// Creates an new instance. + public CustomizedAcceleratorValidateResult() + { + + } + } + /// Validation result for customized accelerator properties + public partial interface ICustomizedAcceleratorValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The detail validation results + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The detail validation results", + SerializedName = @"errorMessage", + PossibleTypes = new [] { typeof(string) })] + string ErrorMessage { get; set; } + /// State of the customized accelerator validation result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the customized accelerator validation result", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState? State { get; set; } + + } + /// Validation result for customized accelerator properties + internal partial interface ICustomizedAcceleratorValidateResultInternal + + { + /// The detail validation results + string ErrorMessage { get; set; } + /// State of the customized accelerator validation result + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState? State { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.json.cs new file mode 100644 index 000000000000..a6846f6f44bc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/CustomizedAcceleratorValidateResult.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for customized accelerator properties + public partial class CustomizedAcceleratorValidateResult + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal CustomizedAcceleratorValidateResult(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_state = If( json?.PropertyT("state"), out var __jsonState) ? (string)__jsonState : (string)State;} + {_errorMessage = If( json?.PropertyT("errorMessage"), out var __jsonErrorMessage) ? (string)__jsonErrorMessage : (string)ErrorMessage;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CustomizedAcceleratorValidateResult(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._state)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._state.ToString()) : null, "state" ,container.Add ); + AddIf( null != (((object)this._errorMessage)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.PowerShell.cs new file mode 100644 index 000000000000..560bdc591c52 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Deployment instance payload + [System.ComponentModel.TypeConverter(typeof(DeploymentInstanceTypeConverter))] + public partial class DeploymentInstance + { + + /// + /// 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 DeploymentInstance(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.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Status, global::System.Convert.ToString); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Reason, global::System.Convert.ToString); + } + if (content.Contains("DiscoveryStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).DiscoveryStatus = (string) content.GetValueForProperty("DiscoveryStatus",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).DiscoveryStatus, global::System.Convert.ToString); + } + if (content.Contains("StartTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).StartTime = (string) content.GetValueForProperty("StartTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).StartTime, global::System.Convert.ToString); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Zone = (string) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Zone, 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 DeploymentInstance(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.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Status, global::System.Convert.ToString); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Reason, global::System.Convert.ToString); + } + if (content.Contains("DiscoveryStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).DiscoveryStatus = (string) content.GetValueForProperty("DiscoveryStatus",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).DiscoveryStatus, global::System.Convert.ToString); + } + if (content.Contains("StartTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).StartTime = (string) content.GetValueForProperty("StartTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).StartTime, global::System.Convert.ToString); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Zone = (string) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal)this).Zone, 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.AppPlatform.Models.Api20221101Preview.IDeploymentInstance DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeploymentInstance(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.AppPlatform.Models.Api20221101Preview.IDeploymentInstance DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeploymentInstance(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.AppPlatform.Models.Api20221101Preview.IDeploymentInstance FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Deployment instance payload + [System.ComponentModel.TypeConverter(typeof(DeploymentInstanceTypeConverter))] + public partial interface IDeploymentInstance + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.TypeConverter.cs new file mode 100644 index 000000000000..d181492db545 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeploymentInstanceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeploymentInstance.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeploymentInstance.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeploymentInstance.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.cs new file mode 100644 index 000000000000..d830d588b504 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment instance payload + public partial class DeploymentInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal + { + + /// Backing field for property. + private string _discoveryStatus; + + /// Discovery status of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DiscoveryStatus { get => this._discoveryStatus; } + + /// Internal Acessors for DiscoveryStatus + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal.DiscoveryStatus { get => this._discoveryStatus; set { {_discoveryStatus = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Reason + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal.Reason { get => this._reason; set { {_reason = value;} } } + + /// Internal Acessors for StartTime + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal.StartTime { get => this._startTime; set { {_startTime = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal.Status { get => this._status; set { {_status = value;} } } + + /// Internal Acessors for Zone + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstanceInternal.Zone { get => this._zone; set { {_zone = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _reason; + + /// Failed reason of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Reason { get => this._reason; } + + /// Backing field for property. + private string _startTime; + + /// Start time of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string StartTime { get => this._startTime; } + + /// Backing field for property. + private string _status; + + /// Status of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Status { get => this._status; } + + /// Backing field for property. + private string _zone; + + /// Availability zone information of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Zone { get => this._zone; } + + /// Creates an new instance. + public DeploymentInstance() + { + + } + } + /// Deployment instance payload + public partial interface IDeploymentInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Discovery status of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Discovery status of the deployment instance", + SerializedName = @"discoveryStatus", + PossibleTypes = new [] { typeof(string) })] + string DiscoveryStatus { get; } + /// Name of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the deployment instance", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Failed reason of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Failed reason of the deployment instance", + SerializedName = @"reason", + PossibleTypes = new [] { typeof(string) })] + string Reason { get; } + /// Start time of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Start time of the deployment instance", + SerializedName = @"startTime", + PossibleTypes = new [] { typeof(string) })] + string StartTime { get; } + /// Status of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the deployment instance", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; } + /// Availability zone information of the deployment instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Availability zone information of the deployment instance", + SerializedName = @"zone", + PossibleTypes = new [] { typeof(string) })] + string Zone { get; } + + } + /// Deployment instance payload + internal partial interface IDeploymentInstanceInternal + + { + /// Discovery status of the deployment instance + string DiscoveryStatus { get; set; } + /// Name of the deployment instance + string Name { get; set; } + /// Failed reason of the deployment instance + string Reason { get; set; } + /// Start time of the deployment instance + string StartTime { get; set; } + /// Status of the deployment instance + string Status { get; set; } + /// Availability zone information of the deployment instance + string Zone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.json.cs new file mode 100644 index 000000000000..4d558a53cc88 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment instance payload + public partial class DeploymentInstance + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DeploymentInstance(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + {_reason = If( json?.PropertyT("reason"), out var __jsonReason) ? (string)__jsonReason : (string)Reason;} + {_discoveryStatus = If( json?.PropertyT("discoveryStatus"), out var __jsonDiscoveryStatus) ? (string)__jsonDiscoveryStatus : (string)DiscoveryStatus;} + {_startTime = If( json?.PropertyT("startTime"), out var __jsonStartTime) ? (string)__jsonStartTime : (string)StartTime;} + {_zone = If( json?.PropertyT("zone"), out var __jsonZone) ? (string)__jsonZone : (string)Zone;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DeploymentInstance(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._reason)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._reason.ToString()) : null, "reason" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._discoveryStatus)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._discoveryStatus.ToString()) : null, "discoveryStatus" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._startTime)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._startTime.ToString()) : null, "startTime" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._zone)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._zone.ToString()) : null, "zone" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.PowerShell.cs new file mode 100644 index 000000000000..2d4f81adff50 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// A list of deployments resource ids. + [System.ComponentModel.TypeConverter(typeof(DeploymentListTypeConverter))] + public partial class DeploymentList + { + + /// + /// 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 DeploymentList(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Deployment")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentListInternal)this).Deployment = (string[]) content.GetValueForProperty("Deployment",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentListInternal)this).Deployment, __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 DeploymentList(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Deployment")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentListInternal)this).Deployment = (string[]) content.GetValueForProperty("Deployment",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentListInternal)this).Deployment, __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.AppPlatform.Models.Api20221101Preview.IDeploymentList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeploymentList(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.AppPlatform.Models.Api20221101Preview.IDeploymentList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeploymentList(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.AppPlatform.Models.Api20221101Preview.IDeploymentList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A list of deployments resource ids. + [System.ComponentModel.TypeConverter(typeof(DeploymentListTypeConverter))] + public partial interface IDeploymentList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.TypeConverter.cs new file mode 100644 index 000000000000..1b6269945619 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeploymentListTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeploymentList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeploymentList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeploymentList.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.cs new file mode 100644 index 000000000000..b0758e4a3d8a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// A list of deployments resource ids. + public partial class DeploymentList : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentList, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentListInternal + { + + /// Backing field for property. + private string[] _deployment; + + /// A list of deployment resource ids. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Deployment { get => this._deployment; set => this._deployment = value; } + + /// Creates an new instance. + public DeploymentList() + { + + } + } + /// A list of deployments resource ids. + public partial interface IDeploymentList : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// A list of deployment resource ids. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of deployment resource ids.", + SerializedName = @"deployments", + PossibleTypes = new [] { typeof(string) })] + string[] Deployment { get; set; } + + } + /// A list of deployments resource ids. + internal partial interface IDeploymentListInternal + + { + /// A list of deployment resource ids. + string[] Deployment { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.json.cs new file mode 100644 index 000000000000..2f4e31b17ef3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentList.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// A list of deployments resource ids. + public partial class DeploymentList + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DeploymentList(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_deployment = If( json?.PropertyT("deployments"), out var __jsonDeployments) ? If( __jsonDeployments as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Deployment;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentList FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DeploymentList(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._deployment) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._deployment ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("deployments",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.PowerShell.cs new file mode 100644 index 000000000000..b004eb17c5ee --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.PowerShell.cs @@ -0,0 +1,322 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Deployment resource payload + [System.ComponentModel.TypeConverter(typeof(DeploymentResourceTypeConverter))] + public partial class DeploymentResource + { + + /// + /// 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 DeploymentResource(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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("DeploymentSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).DeploymentSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) content.GetValueForProperty("DeploymentSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).DeploymentSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState.CreateFrom); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus.CreateFrom); + } + if (content.Contains("Active")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SourceType = (string) content.GetValueForProperty("SourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SourceType, global::System.Convert.ToString); + } + if (content.Contains("SourceVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SourceVersion = (string) content.GetValueForProperty("SourceVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SourceVersion, 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 DeploymentResource(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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("DeploymentSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).DeploymentSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) content.GetValueForProperty("DeploymentSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).DeploymentSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState.CreateFrom); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus.CreateFrom); + } + if (content.Contains("Active")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SourceType = (string) content.GetValueForProperty("SourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SourceType, global::System.Convert.ToString); + } + if (content.Contains("SourceVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SourceVersion = (string) content.GetValueForProperty("SourceVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal)this).SourceVersion, 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.AppPlatform.Models.Api20221101Preview.IDeploymentResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeploymentResource(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.AppPlatform.Models.Api20221101Preview.IDeploymentResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeploymentResource(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.AppPlatform.Models.Api20221101Preview.IDeploymentResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Deployment resource payload + [System.ComponentModel.TypeConverter(typeof(DeploymentResourceTypeConverter))] + public partial interface IDeploymentResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.TypeConverter.cs new file mode 100644 index 000000000000..f6fd4c52fdbe --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeploymentResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeploymentResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeploymentResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeploymentResource.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.cs new file mode 100644 index 000000000000..f0578971621a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.cs @@ -0,0 +1,283 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource payload + public partial class DeploymentResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Indicates whether the Deployment is active + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? Active { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Active; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Active = value ?? default(bool); } + + /// Deployment settings of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSetting = value ?? null /* model class */; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Collection of instances belong to the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal.Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Instance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Instance = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for Source + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal.Source { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Source; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Source = value; } + + /// Internal Acessors for Status + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceInternal.Status { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Status; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Status = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties _property; + + /// Properties of the Deployment resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceProperties()); set => this._property = value; } + + /// Provisioning state of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku _sku; + + /// Sku of the Deployment resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set => this._sku = value; } + + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity = value ?? default(int); } + + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name = value ?? null; } + + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SourceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).SourceType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).SourceType = value ?? null; } + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SourceVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).SourceVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).SourceVersion = value ?? null; } + + /// Status of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Status { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)Property).Status; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public DeploymentResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Deployment resource payload + public partial interface IDeploymentResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Indicates whether the Deployment is active + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the Deployment is active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(bool) })] + bool? Active { get; set; } + /// Deployment settings of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deployment settings of the Deployment", + SerializedName = @"deploymentSettings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get; set; } + /// Collection of instances belong to the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to the Deployment", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] Instance { get; } + /// Provisioning state of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Deployment", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? ProvisioningState { get; } + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string SkuName { get; set; } + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string SkuTier { get; set; } + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the source uploaded", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string SourceType { get; set; } + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the source", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string SourceVersion { get; set; } + /// Status of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the Deployment", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Status { get; } + + } + /// Deployment resource payload + internal partial interface IDeploymentResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Indicates whether the Deployment is active + bool? Active { get; set; } + /// Deployment settings of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get; set; } + /// Collection of instances belong to the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] Instance { get; set; } + /// Properties of the Deployment resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties Property { get; set; } + /// Provisioning state of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? ProvisioningState { get; set; } + /// Sku of the Deployment resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get; set; } + /// Current capacity of the target resource + int? SkuCapacity { get; set; } + /// Name of the Sku + string SkuName { get; set; } + /// Tier of the Sku + string SkuTier { get; set; } + /// Uploaded source information of the deployment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo Source { get; set; } + /// Type of the source uploaded + string SourceType { get; set; } + /// Version of the source + string SourceVersion { get; set; } + /// Status of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.json.cs new file mode 100644 index 000000000000..ccc8ec7c5964 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource payload + public partial class DeploymentResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DeploymentResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku.FromJson(__jsonSku) : Sku;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DeploymentResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..49ecb2d40562 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Object that includes an array of App resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(DeploymentResourceCollectionTypeConverter))] + public partial class DeploymentResourceCollection + { + + /// + /// 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 DeploymentResourceCollection(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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal)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 DeploymentResourceCollection(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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeploymentResourceCollection(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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeploymentResourceCollection(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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of App resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(DeploymentResourceCollectionTypeConverter))] + public partial interface IDeploymentResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..e5f10ad6eeec --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeploymentResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeploymentResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeploymentResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeploymentResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.cs new file mode 100644 index 000000000000..caade55bc2b7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Object that includes an array of App resources and a possible link for next set + public partial class DeploymentResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource[] _value; + + /// Collection of Deployment resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DeploymentResourceCollection() + { + + } + } + /// Object that includes an array of App resources and a possible link for next set + public partial interface IDeploymentResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Deployment resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Deployment resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource[] Value { get; set; } + + } + /// Object that includes an array of App resources and a possible link for next set + internal partial interface IDeploymentResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Deployment resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.json.cs new file mode 100644 index 000000000000..0e9652b3d74a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Object that includes an array of App resources and a possible link for next set + public partial class DeploymentResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DeploymentResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IDeploymentResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DeploymentResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..94f3bece1a95 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Deployment resource properties payload + [System.ComponentModel.TypeConverter(typeof(DeploymentResourcePropertiesTypeConverter))] + public partial class DeploymentResourceProperties + { + + /// + /// 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 DeploymentResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState.CreateFrom); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus.CreateFrom); + } + if (content.Contains("Active")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("DeploymentSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) content.GetValueForProperty("DeploymentSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("SourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).SourceType = (string) content.GetValueForProperty("SourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).SourceType, global::System.Convert.ToString); + } + if (content.Contains("SourceVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).SourceVersion = (string) content.GetValueForProperty("SourceVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).SourceVersion, 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 DeploymentResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState.CreateFrom); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus.CreateFrom); + } + if (content.Contains("Active")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("DeploymentSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) content.GetValueForProperty("DeploymentSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("SourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).SourceType = (string) content.GetValueForProperty("SourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).SourceType, global::System.Convert.ToString); + } + if (content.Contains("SourceVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).SourceVersion = (string) content.GetValueForProperty("SourceVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal)this).SourceVersion, 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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeploymentResourceProperties(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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeploymentResourceProperties(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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Deployment resource properties payload + [System.ComponentModel.TypeConverter(typeof(DeploymentResourcePropertiesTypeConverter))] + public partial interface IDeploymentResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..578dc45fcd04 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeploymentResourcePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeploymentResourceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeploymentResourceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeploymentResourceProperties.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.cs new file mode 100644 index 000000000000..43e8fa3bd416 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource properties payload + public partial class DeploymentResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal + { + + /// Backing field for property. + private bool? _active; + + /// Indicates whether the Deployment is active + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? Active { get => this._active; set => this._active = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings _deploymentSetting; + + /// Deployment settings of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get => (this._deploymentSetting = this._deploymentSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettings()); set => this._deploymentSetting = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] _instance; + + /// Collection of instances belong to the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] Instance { get => this._instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for Source + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal.Source { get => (this._source = this._source ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo()); set { {_source = value;} } } + + /// Internal Acessors for Status + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourcePropertiesInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? _provisioningState; + + /// Provisioning state of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo _source; + + /// Uploaded source information of the deployment. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo Source { get => (this._source = this._source ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo()); set => this._source = value; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SourceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)Source).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)Source).Type = value ?? null; } + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SourceVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)Source).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)Source).Version = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? _status; + + /// Status of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Status { get => this._status; } + + /// Creates an new instance. + public DeploymentResourceProperties() + { + + } + } + /// Deployment resource properties payload + public partial interface IDeploymentResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Indicates whether the Deployment is active + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the Deployment is active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(bool) })] + bool? Active { get; set; } + /// Deployment settings of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deployment settings of the Deployment", + SerializedName = @"deploymentSettings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get; set; } + /// Collection of instances belong to the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to the Deployment", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] Instance { get; } + /// Provisioning state of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Deployment", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? ProvisioningState { get; } + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the source uploaded", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string SourceType { get; set; } + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the source", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string SourceVersion { get; set; } + /// Status of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the Deployment", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Status { get; } + + } + /// Deployment resource properties payload + internal partial interface IDeploymentResourcePropertiesInternal + + { + /// Indicates whether the Deployment is active + bool? Active { get; set; } + /// Deployment settings of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get; set; } + /// Collection of instances belong to the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentInstance[] Instance { get; set; } + /// Provisioning state of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? ProvisioningState { get; set; } + /// Uploaded source information of the deployment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo Source { get; set; } + /// Type of the source uploaded + string SourceType { get; set; } + /// Version of the source + string SourceVersion { get; set; } + /// Status of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.json.cs new file mode 100644 index 000000000000..08eaba22d7c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource properties payload + public partial class DeploymentResourceProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DeploymentResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_source = If( json?.PropertyT("source"), out var __jsonSource) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo.FromJson(__jsonSource) : Source;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + {_active = If( json?.PropertyT("active"), out var __jsonActive) ? (bool?)__jsonActive : Active;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IDeploymentInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentInstance.FromJson(__u) )) ))() : null : Instance;} + {_deploymentSetting = If( json?.PropertyT("deploymentSettings"), out var __jsonDeploymentSettings) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettings.FromJson(__jsonDeploymentSettings) : DeploymentSetting;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DeploymentResourceProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._source ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._source.ToJson(null,serializationMode) : null, "source" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AddIf( null != this._active ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._active) : null, "active" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._instance ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("instances",__w); + } + } + AddIf( null != this._deploymentSetting ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._deploymentSetting.ToJson(null,serializationMode) : null, "deploymentSettings" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.PowerShell.cs new file mode 100644 index 000000000000..eeb409c949b2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.PowerShell.cs @@ -0,0 +1,418 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Deployment settings payload + [System.ComponentModel.TypeConverter(typeof(DeploymentSettingsTypeConverter))] + public partial class DeploymentSettings + { + + /// + /// 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 DeploymentSettings(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("LivenessProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbe = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe) content.GetValueForProperty("LivenessProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbe, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeTypeConverter.ConvertFrom); + } + if (content.Contains("ReadinessProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbe = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe) content.GetValueForProperty("ReadinessProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbe, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeTypeConverter.ConvertFrom); + } + if (content.Contains("StartupProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbe = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe) content.GetValueForProperty("StartupProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbe, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeTypeConverter.ConvertFrom); + } + if (content.Contains("ContainerProbeSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ContainerProbeSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings) content.GetValueForProperty("ContainerProbeSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ContainerProbeSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContainerProbeSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).EnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables) content.GetValueForProperty("EnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).EnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsEnvironmentVariablesTypeConverter.ConvertFrom); + } + if (content.Contains("AddonConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).AddonConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs) content.GetValueForProperty("AddonConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).AddonConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsAddonConfigsTypeConverter.ConvertFrom); + } + if (content.Contains("TerminationGracePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).TerminationGracePeriodSecond = (int?) content.GetValueForProperty("TerminationGracePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).TerminationGracePeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("LivenessProbeAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeAction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction) content.GetValueForProperty("LivenessProbeAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeAction, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeActionTypeConverter.ConvertFrom); + } + if (content.Contains("ReadinessProbeAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeAction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction) content.GetValueForProperty("ReadinessProbeAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeAction, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeActionTypeConverter.ConvertFrom); + } + if (content.Contains("StartupProbeAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeAction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction) content.GetValueForProperty("StartupProbeAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeAction, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeActionTypeConverter.ConvertFrom); + } + if (content.Contains("LivenessProbeDisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeDisableProbe = (bool) content.GetValueForProperty("LivenessProbeDisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeDisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LivenessProbeInitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeInitialDelaySecond = (int?) content.GetValueForProperty("LivenessProbeInitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeInitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbePeriodSecond = (int?) content.GetValueForProperty("LivenessProbePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbePeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbeTimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeTimeoutSecond = (int?) content.GetValueForProperty("LivenessProbeTimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeTimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbeFailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeFailureThreshold = (int?) content.GetValueForProperty("LivenessProbeFailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeFailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbeSuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeSuccessThreshold = (int?) content.GetValueForProperty("LivenessProbeSuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeSuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbeActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("LivenessProbeActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + if (content.Contains("ReadinessProbeDisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeDisableProbe = (bool) content.GetValueForProperty("ReadinessProbeDisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeDisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ReadinessProbeInitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeInitialDelaySecond = (int?) content.GetValueForProperty("ReadinessProbeInitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeInitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbePeriodSecond = (int?) content.GetValueForProperty("ReadinessProbePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbePeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbeTimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeTimeoutSecond = (int?) content.GetValueForProperty("ReadinessProbeTimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeTimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbeFailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeFailureThreshold = (int?) content.GetValueForProperty("ReadinessProbeFailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeFailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbeSuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeSuccessThreshold = (int?) content.GetValueForProperty("ReadinessProbeSuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeSuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbeActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("ReadinessProbeActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + if (content.Contains("StartupProbeDisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeDisableProbe = (bool) content.GetValueForProperty("StartupProbeDisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeDisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("StartupProbeInitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeInitialDelaySecond = (int?) content.GetValueForProperty("StartupProbeInitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeInitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbePeriodSecond = (int?) content.GetValueForProperty("StartupProbePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbePeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbeTimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeTimeoutSecond = (int?) content.GetValueForProperty("StartupProbeTimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeTimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbeFailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeFailureThreshold = (int?) content.GetValueForProperty("StartupProbeFailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeFailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbeSuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeSuccessThreshold = (int?) content.GetValueForProperty("StartupProbeSuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeSuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbeActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("StartupProbeActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + if (content.Contains("ContainerProbeSettingDisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ContainerProbeSettingDisableProbe = (bool?) content.GetValueForProperty("ContainerProbeSettingDisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ContainerProbeSettingDisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DeploymentSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("LivenessProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbe = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe) content.GetValueForProperty("LivenessProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbe, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeTypeConverter.ConvertFrom); + } + if (content.Contains("ReadinessProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbe = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe) content.GetValueForProperty("ReadinessProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbe, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeTypeConverter.ConvertFrom); + } + if (content.Contains("StartupProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbe = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe) content.GetValueForProperty("StartupProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbe, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeTypeConverter.ConvertFrom); + } + if (content.Contains("ContainerProbeSetting")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ContainerProbeSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings) content.GetValueForProperty("ContainerProbeSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ContainerProbeSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContainerProbeSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).EnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables) content.GetValueForProperty("EnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).EnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsEnvironmentVariablesTypeConverter.ConvertFrom); + } + if (content.Contains("AddonConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).AddonConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs) content.GetValueForProperty("AddonConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).AddonConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsAddonConfigsTypeConverter.ConvertFrom); + } + if (content.Contains("TerminationGracePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).TerminationGracePeriodSecond = (int?) content.GetValueForProperty("TerminationGracePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).TerminationGracePeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("LivenessProbeAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeAction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction) content.GetValueForProperty("LivenessProbeAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeAction, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeActionTypeConverter.ConvertFrom); + } + if (content.Contains("ReadinessProbeAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeAction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction) content.GetValueForProperty("ReadinessProbeAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeAction, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeActionTypeConverter.ConvertFrom); + } + if (content.Contains("StartupProbeAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeAction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction) content.GetValueForProperty("StartupProbeAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeAction, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeActionTypeConverter.ConvertFrom); + } + if (content.Contains("LivenessProbeDisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeDisableProbe = (bool) content.GetValueForProperty("LivenessProbeDisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeDisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("LivenessProbeInitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeInitialDelaySecond = (int?) content.GetValueForProperty("LivenessProbeInitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeInitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbePeriodSecond = (int?) content.GetValueForProperty("LivenessProbePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbePeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbeTimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeTimeoutSecond = (int?) content.GetValueForProperty("LivenessProbeTimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeTimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbeFailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeFailureThreshold = (int?) content.GetValueForProperty("LivenessProbeFailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeFailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbeSuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeSuccessThreshold = (int?) content.GetValueForProperty("LivenessProbeSuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeSuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("LivenessProbeActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("LivenessProbeActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).LivenessProbeActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + if (content.Contains("ReadinessProbeDisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeDisableProbe = (bool) content.GetValueForProperty("ReadinessProbeDisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeDisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ReadinessProbeInitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeInitialDelaySecond = (int?) content.GetValueForProperty("ReadinessProbeInitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeInitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbePeriodSecond = (int?) content.GetValueForProperty("ReadinessProbePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbePeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbeTimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeTimeoutSecond = (int?) content.GetValueForProperty("ReadinessProbeTimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeTimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbeFailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeFailureThreshold = (int?) content.GetValueForProperty("ReadinessProbeFailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeFailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbeSuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeSuccessThreshold = (int?) content.GetValueForProperty("ReadinessProbeSuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeSuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ReadinessProbeActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("ReadinessProbeActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ReadinessProbeActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + if (content.Contains("StartupProbeDisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeDisableProbe = (bool) content.GetValueForProperty("StartupProbeDisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeDisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("StartupProbeInitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeInitialDelaySecond = (int?) content.GetValueForProperty("StartupProbeInitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeInitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbePeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbePeriodSecond = (int?) content.GetValueForProperty("StartupProbePeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbePeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbeTimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeTimeoutSecond = (int?) content.GetValueForProperty("StartupProbeTimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeTimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbeFailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeFailureThreshold = (int?) content.GetValueForProperty("StartupProbeFailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeFailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbeSuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeSuccessThreshold = (int?) content.GetValueForProperty("StartupProbeSuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeSuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("StartupProbeActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("StartupProbeActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).StartupProbeActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + if (content.Contains("ContainerProbeSettingDisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ContainerProbeSettingDisableProbe = (bool?) content.GetValueForProperty("ContainerProbeSettingDisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal)this).ContainerProbeSettingDisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeploymentSettings(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.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeploymentSettings(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.AppPlatform.Models.Api20221101Preview.IDeploymentSettings FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Deployment settings payload + [System.ComponentModel.TypeConverter(typeof(DeploymentSettingsTypeConverter))] + public partial interface IDeploymentSettings + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.TypeConverter.cs new file mode 100644 index 000000000000..b26ba0f5a6d5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeploymentSettingsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeploymentSettings.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeploymentSettings.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeploymentSettings.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.cs new file mode 100644 index 000000000000..fefd3c6e08da --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.cs @@ -0,0 +1,621 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment settings payload + public partial class DeploymentSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs _addonConfig; + + /// Collection of addons + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs AddonConfig { get => (this._addonConfig = this._addonConfig ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsAddonConfigs()); set => this._addonConfig = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings _containerProbeSetting; + + /// Container liveness and readiness probe settings + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings ContainerProbeSetting { get => (this._containerProbeSetting = this._containerProbeSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContainerProbeSettings()); set => this._containerProbeSetting = value; } + + /// Indicates whether disable the liveness and readiness probe + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? ContainerProbeSettingDisableProbe { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettingsInternal)ContainerProbeSetting).DisableProbe; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettingsInternal)ContainerProbeSetting).DisableProbe = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables _environmentVariable; + + /// Collection of environment variables + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables EnvironmentVariable { get => (this._environmentVariable = this._environmentVariable ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsEnvironmentVariables()); set => this._environmentVariable = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe _livenessProbe; + + /// + /// Periodic probe of App Instance liveness. App Instance will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe LivenessProbe { get => (this._livenessProbe = this._livenessProbe ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe()); set => this._livenessProbe = value; } + + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? LivenessProbeActionType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).ActionType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).ActionType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType)""); } + + /// Indicate whether the probe is disabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? LivenessProbeDisableProbe { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).DisableProbe; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).DisableProbe = value ?? default(bool); } + + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? LivenessProbeFailureThreshold { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).FailureThreshold; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).FailureThreshold = value ?? default(int); } + + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? LivenessProbeInitialDelaySecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).InitialDelaySecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).InitialDelaySecond = value ?? default(int); } + + /// How often (in seconds) to perform the probe. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? LivenessProbePeriodSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).PeriodSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).PeriodSecond = value ?? default(int); } + + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? LivenessProbeSuccessThreshold { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).SuccessThreshold; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).SuccessThreshold = value ?? default(int); } + + /// Number of seconds after which the probe times out. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? LivenessProbeTimeoutSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).TimeoutSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).TimeoutSecond = value ?? default(int); } + + /// Internal Acessors for ContainerProbeSetting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal.ContainerProbeSetting { get => (this._containerProbeSetting = this._containerProbeSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContainerProbeSettings()); set { {_containerProbeSetting = value;} } } + + /// Internal Acessors for LivenessProbe + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal.LivenessProbe { get => (this._livenessProbe = this._livenessProbe ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe()); set { {_livenessProbe = value;} } } + + /// Internal Acessors for LivenessProbeAction + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal.LivenessProbeAction { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).Action; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)LivenessProbe).Action = value; } + + /// Internal Acessors for ReadinessProbe + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal.ReadinessProbe { get => (this._readinessProbe = this._readinessProbe ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe()); set { {_readinessProbe = value;} } } + + /// Internal Acessors for ReadinessProbeAction + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal.ReadinessProbeAction { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).Action; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).Action = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for StartupProbe + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal.StartupProbe { get => (this._startupProbe = this._startupProbe ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe()); set { {_startupProbe = value;} } } + + /// Internal Acessors for StartupProbeAction + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsInternal.StartupProbeAction { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).Action; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).Action = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe _readinessProbe; + + /// + /// Periodic probe of App Instance service readiness. App Instance will be removed from service endpoints if the probe fails. + /// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe ReadinessProbe { get => (this._readinessProbe = this._readinessProbe ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe()); set => this._readinessProbe = value; } + + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? ReadinessProbeActionType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).ActionType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).ActionType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType)""); } + + /// Indicate whether the probe is disabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? ReadinessProbeDisableProbe { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).DisableProbe; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).DisableProbe = value ?? default(bool); } + + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ReadinessProbeFailureThreshold { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).FailureThreshold; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).FailureThreshold = value ?? default(int); } + + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ReadinessProbeInitialDelaySecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).InitialDelaySecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).InitialDelaySecond = value ?? default(int); } + + /// How often (in seconds) to perform the probe. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ReadinessProbePeriodSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).PeriodSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).PeriodSecond = value ?? default(int); } + + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ReadinessProbeSuccessThreshold { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).SuccessThreshold; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).SuccessThreshold = value ?? default(int); } + + /// Number of seconds after which the probe times out. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ReadinessProbeTimeoutSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).TimeoutSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)ReadinessProbe).TimeoutSecond = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests _resourceRequest; + + /// + /// The requested resource quantity for required CPU and Memory. It is recommended that using this field to represent the + /// required CPU and Memory, the old field cpu and memoryInGB will be deprecated later. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceRequests()); set => this._resourceRequest = value; } + + /// + /// Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} + /// for Standard tier. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)ResourceRequest).Cpu = value ?? null; } + + /// + /// Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, + /// 1Gi, 2Gi, ..., 8Gi} for Standard tier. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)ResourceRequest).Memory = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe _startupProbe; + + /// + /// StartupProbe indicates that the App Instance has successfully initialized. If specified, no other probes are executed + /// until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. + /// This can be used to provide different probe parameters at the beginning of a App Instance's lifecycle, when it might take + /// a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe StartupProbe { get => (this._startupProbe = this._startupProbe ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe()); set => this._startupProbe = value; } + + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? StartupProbeActionType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).ActionType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).ActionType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType)""); } + + /// Indicate whether the probe is disabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? StartupProbeDisableProbe { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).DisableProbe; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).DisableProbe = value ?? default(bool); } + + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? StartupProbeFailureThreshold { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).FailureThreshold; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).FailureThreshold = value ?? default(int); } + + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? StartupProbeInitialDelaySecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).InitialDelaySecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).InitialDelaySecond = value ?? default(int); } + + /// How often (in seconds) to perform the probe. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? StartupProbePeriodSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).PeriodSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).PeriodSecond = value ?? default(int); } + + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? StartupProbeSuccessThreshold { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).SuccessThreshold; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).SuccessThreshold = value ?? default(int); } + + /// Number of seconds after which the probe times out. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? StartupProbeTimeoutSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).TimeoutSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)StartupProbe).TimeoutSecond = value ?? default(int); } + + /// Backing field for property. + private int? _terminationGracePeriodSecond; + + /// + /// Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value + /// must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). + /// If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after + /// the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted + /// with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? TerminationGracePeriodSecond { get => this._terminationGracePeriodSecond; set => this._terminationGracePeriodSecond = value; } + + /// Creates an new instance. + public DeploymentSettings() + { + + } + } + /// Deployment settings payload + public partial interface IDeploymentSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Collection of addons + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of addons", + SerializedName = @"addonConfigs", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs AddonConfig { get; set; } + /// Indicates whether disable the liveness and readiness probe + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether disable the liveness and readiness probe", + SerializedName = @"disableProbe", + PossibleTypes = new [] { typeof(bool) })] + bool? ContainerProbeSettingDisableProbe { get; set; } + /// Collection of environment variables + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of environment variables", + SerializedName = @"environmentVariables", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables EnvironmentVariable { get; set; } + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the action to take to perform the health check.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? LivenessProbeActionType { get; set; } + /// Indicate whether the probe is disabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate whether the probe is disabled.", + SerializedName = @"disableProbe", + PossibleTypes = new [] { typeof(bool) })] + bool? LivenessProbeDisableProbe { get; set; } + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.", + SerializedName = @"failureThreshold", + PossibleTypes = new [] { typeof(int) })] + int? LivenessProbeFailureThreshold { get; set; } + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + SerializedName = @"initialDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? LivenessProbeInitialDelaySecond { get; set; } + /// How often (in seconds) to perform the probe. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How often (in seconds) to perform the probe. Minimum value is 1.", + SerializedName = @"periodSeconds", + PossibleTypes = new [] { typeof(int) })] + int? LivenessProbePeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1.", + SerializedName = @"successThreshold", + PossibleTypes = new [] { typeof(int) })] + int? LivenessProbeSuccessThreshold { get; set; } + /// Number of seconds after which the probe times out. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after which the probe times out. Minimum value is 1.", + SerializedName = @"timeoutSeconds", + PossibleTypes = new [] { typeof(int) })] + int? LivenessProbeTimeoutSecond { get; set; } + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the action to take to perform the health check.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? ReadinessProbeActionType { get; set; } + /// Indicate whether the probe is disabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate whether the probe is disabled.", + SerializedName = @"disableProbe", + PossibleTypes = new [] { typeof(bool) })] + bool? ReadinessProbeDisableProbe { get; set; } + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.", + SerializedName = @"failureThreshold", + PossibleTypes = new [] { typeof(int) })] + int? ReadinessProbeFailureThreshold { get; set; } + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + SerializedName = @"initialDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? ReadinessProbeInitialDelaySecond { get; set; } + /// How often (in seconds) to perform the probe. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How often (in seconds) to perform the probe. Minimum value is 1.", + SerializedName = @"periodSeconds", + PossibleTypes = new [] { typeof(int) })] + int? ReadinessProbePeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1.", + SerializedName = @"successThreshold", + PossibleTypes = new [] { typeof(int) })] + int? ReadinessProbeSuccessThreshold { get; set; } + /// Number of seconds after which the probe times out. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after which the probe times out. Minimum value is 1.", + SerializedName = @"timeoutSeconds", + PossibleTypes = new [] { typeof(int) })] + int? ReadinessProbeTimeoutSecond { get; set; } + /// + /// Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} + /// for Standard tier. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; set; } + /// + /// Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, + /// 1Gi, 2Gi, ..., 8Gi} for Standard tier. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; set; } + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the action to take to perform the health check.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? StartupProbeActionType { get; set; } + /// Indicate whether the probe is disabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate whether the probe is disabled.", + SerializedName = @"disableProbe", + PossibleTypes = new [] { typeof(bool) })] + bool? StartupProbeDisableProbe { get; set; } + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.", + SerializedName = @"failureThreshold", + PossibleTypes = new [] { typeof(int) })] + int? StartupProbeFailureThreshold { get; set; } + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + SerializedName = @"initialDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? StartupProbeInitialDelaySecond { get; set; } + /// How often (in seconds) to perform the probe. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How often (in seconds) to perform the probe. Minimum value is 1.", + SerializedName = @"periodSeconds", + PossibleTypes = new [] { typeof(int) })] + int? StartupProbePeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1.", + SerializedName = @"successThreshold", + PossibleTypes = new [] { typeof(int) })] + int? StartupProbeSuccessThreshold { get; set; } + /// Number of seconds after which the probe times out. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after which the probe times out. Minimum value is 1.", + SerializedName = @"timeoutSeconds", + PossibleTypes = new [] { typeof(int) })] + int? StartupProbeTimeoutSecond { get; set; } + /// + /// Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value + /// must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). + /// If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after + /// the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted + /// with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds.", + SerializedName = @"terminationGracePeriodSeconds", + PossibleTypes = new [] { typeof(int) })] + int? TerminationGracePeriodSecond { get; set; } + + } + /// Deployment settings payload + internal partial interface IDeploymentSettingsInternal + + { + /// Collection of addons + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs AddonConfig { get; set; } + /// Container liveness and readiness probe settings + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IContainerProbeSettings ContainerProbeSetting { get; set; } + /// Indicates whether disable the liveness and readiness probe + bool? ContainerProbeSettingDisableProbe { get; set; } + /// Collection of environment variables + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables EnvironmentVariable { get; set; } + /// + /// Periodic probe of App Instance liveness. App Instance will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe LivenessProbe { get; set; } + /// The action of the probe. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction LivenessProbeAction { get; set; } + /// The type of the action to take to perform the health check. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? LivenessProbeActionType { get; set; } + /// Indicate whether the probe is disabled. + bool? LivenessProbeDisableProbe { get; set; } + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + int? LivenessProbeFailureThreshold { get; set; } + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + int? LivenessProbeInitialDelaySecond { get; set; } + /// How often (in seconds) to perform the probe. Minimum value is 1. + int? LivenessProbePeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + int? LivenessProbeSuccessThreshold { get; set; } + /// Number of seconds after which the probe times out. Minimum value is 1. + int? LivenessProbeTimeoutSecond { get; set; } + /// + /// Periodic probe of App Instance service readiness. App Instance will be removed from service endpoints if the probe fails. + /// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe ReadinessProbe { get; set; } + /// The action of the probe. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction ReadinessProbeAction { get; set; } + /// The type of the action to take to perform the health check. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? ReadinessProbeActionType { get; set; } + /// Indicate whether the probe is disabled. + bool? ReadinessProbeDisableProbe { get; set; } + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + int? ReadinessProbeFailureThreshold { get; set; } + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + int? ReadinessProbeInitialDelaySecond { get; set; } + /// How often (in seconds) to perform the probe. Minimum value is 1. + int? ReadinessProbePeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + int? ReadinessProbeSuccessThreshold { get; set; } + /// Number of seconds after which the probe times out. Minimum value is 1. + int? ReadinessProbeTimeoutSecond { get; set; } + /// + /// The requested resource quantity for required CPU and Memory. It is recommended that using this field to represent the + /// required CPU and Memory, the old field cpu and memoryInGB will be deprecated later. + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests ResourceRequest { get; set; } + /// + /// Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} + /// for Standard tier. + /// + string ResourceRequestCpu { get; set; } + /// + /// Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, + /// 1Gi, 2Gi, ..., 8Gi} for Standard tier. + /// + string ResourceRequestMemory { get; set; } + /// + /// StartupProbe indicates that the App Instance has successfully initialized. If specified, no other probes are executed + /// until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. + /// This can be used to provide different probe parameters at the beginning of a App Instance's lifecycle, when it might take + /// a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe StartupProbe { get; set; } + /// The action of the probe. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction StartupProbeAction { get; set; } + /// The type of the action to take to perform the health check. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? StartupProbeActionType { get; set; } + /// Indicate whether the probe is disabled. + bool? StartupProbeDisableProbe { get; set; } + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + int? StartupProbeFailureThreshold { get; set; } + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + int? StartupProbeInitialDelaySecond { get; set; } + /// How often (in seconds) to perform the probe. Minimum value is 1. + int? StartupProbePeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + int? StartupProbeSuccessThreshold { get; set; } + /// Number of seconds after which the probe times out. Minimum value is 1. + int? StartupProbeTimeoutSecond { get; set; } + /// + /// Optional duration in seconds the App Instance needs to terminate gracefully. May be decreased in delete request. Value + /// must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). + /// If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after + /// the processes running in the App Instance are sent a termination signal and the time when the processes are forcibly halted + /// with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 90 seconds. + /// + int? TerminationGracePeriodSecond { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.json.cs new file mode 100644 index 000000000000..a623fcf216da --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment settings payload + public partial class DeploymentSettings + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DeploymentSettings(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_livenessProbe = If( json?.PropertyT("livenessProbe"), out var __jsonLivenessProbe) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe.FromJson(__jsonLivenessProbe) : LivenessProbe;} + {_readinessProbe = If( json?.PropertyT("readinessProbe"), out var __jsonReadinessProbe) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe.FromJson(__jsonReadinessProbe) : ReadinessProbe;} + {_startupProbe = If( json?.PropertyT("startupProbe"), out var __jsonStartupProbe) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Probe.FromJson(__jsonStartupProbe) : StartupProbe;} + {_containerProbeSetting = If( json?.PropertyT("containerProbeSettings"), out var __jsonContainerProbeSettings) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ContainerProbeSettings.FromJson(__jsonContainerProbeSettings) : ContainerProbeSetting;} + {_environmentVariable = If( json?.PropertyT("environmentVariables"), out var __jsonEnvironmentVariables) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsEnvironmentVariables.FromJson(__jsonEnvironmentVariables) : EnvironmentVariable;} + {_addonConfig = If( json?.PropertyT("addonConfigs"), out var __jsonAddonConfigs) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsAddonConfigs.FromJson(__jsonAddonConfigs) : AddonConfig;} + {_terminationGracePeriodSecond = If( json?.PropertyT("terminationGracePeriodSeconds"), out var __jsonTerminationGracePeriodSeconds) ? (int?)__jsonTerminationGracePeriodSeconds : TerminationGracePeriodSecond;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DeploymentSettings(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + AddIf( null != this._livenessProbe ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._livenessProbe.ToJson(null,serializationMode) : null, "livenessProbe" ,container.Add ); + AddIf( null != this._readinessProbe ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._readinessProbe.ToJson(null,serializationMode) : null, "readinessProbe" ,container.Add ); + AddIf( null != this._startupProbe ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._startupProbe.ToJson(null,serializationMode) : null, "startupProbe" ,container.Add ); + AddIf( null != this._containerProbeSetting ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._containerProbeSetting.ToJson(null,serializationMode) : null, "containerProbeSettings" ,container.Add ); + AddIf( null != this._environmentVariable ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._environmentVariable.ToJson(null,serializationMode) : null, "environmentVariables" ,container.Add ); + AddIf( null != this._addonConfig ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._addonConfig.ToJson(null,serializationMode) : null, "addonConfigs" ,container.Add ); + AddIf( null != this._terminationGracePeriodSecond ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._terminationGracePeriodSecond) : null, "terminationGracePeriodSeconds" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.PowerShell.cs new file mode 100644 index 000000000000..64741b3ca87b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of addons + [System.ComponentModel.TypeConverter(typeof(DeploymentSettingsAddonConfigsTypeConverter))] + public partial class DeploymentSettingsAddonConfigs + { + + /// + /// 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 DeploymentSettingsAddonConfigs(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 DeploymentSettingsAddonConfigs(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.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeploymentSettingsAddonConfigs(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.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeploymentSettingsAddonConfigs(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.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of addons + [System.ComponentModel.TypeConverter(typeof(DeploymentSettingsAddonConfigsTypeConverter))] + public partial interface IDeploymentSettingsAddonConfigs + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.TypeConverter.cs new file mode 100644 index 000000000000..1ed87ef80ac1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeploymentSettingsAddonConfigsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeploymentSettingsAddonConfigs.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeploymentSettingsAddonConfigs.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeploymentSettingsAddonConfigs.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.cs new file mode 100644 index 000000000000..cd560af73300 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of addons + public partial class DeploymentSettingsAddonConfigs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigsInternal + { + + /// Creates an new instance. + public DeploymentSettingsAddonConfigs() + { + + } + } + /// Collection of addons + public partial interface IDeploymentSettingsAddonConfigs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Collection of addons + internal partial interface IDeploymentSettingsAddonConfigsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.dictionary.cs new file mode 100644 index 000000000000..deda99fbb6d9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class DeploymentSettingsAddonConfigs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public global::System.Object this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, global::System.Object 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.AppPlatform.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.AppPlatform.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 global::System.Object value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentSettingsAddonConfigs source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.json.cs new file mode 100644 index 000000000000..82ed5cd81c16 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsAddonConfigs.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of addons + public partial class DeploymentSettingsAddonConfigs + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal DeploymentSettingsAddonConfigs(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.DeserializeDictionary(()=>new global::System.Collections.Generic.Dictionary()),exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsAddonConfigs FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DeploymentSettingsAddonConfigs(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.PowerShell.cs new file mode 100644 index 000000000000..b0a08443bf21 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of environment variables + [System.ComponentModel.TypeConverter(typeof(DeploymentSettingsEnvironmentVariablesTypeConverter))] + public partial class DeploymentSettingsEnvironmentVariables + { + + /// + /// 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 DeploymentSettingsEnvironmentVariables(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 DeploymentSettingsEnvironmentVariables(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.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeploymentSettingsEnvironmentVariables(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.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeploymentSettingsEnvironmentVariables(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.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of environment variables + [System.ComponentModel.TypeConverter(typeof(DeploymentSettingsEnvironmentVariablesTypeConverter))] + public partial interface IDeploymentSettingsEnvironmentVariables + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.TypeConverter.cs new file mode 100644 index 000000000000..20d9fb4d961e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeploymentSettingsEnvironmentVariablesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeploymentSettingsEnvironmentVariables.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeploymentSettingsEnvironmentVariables.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeploymentSettingsEnvironmentVariables.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/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.cs new file mode 100644 index 000000000000..7b589c7d5385 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of environment variables + public partial class DeploymentSettingsEnvironmentVariables : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariablesInternal + { + + /// Creates an new instance. + public DeploymentSettingsEnvironmentVariables() + { + + } + } + /// Collection of environment variables + public partial interface IDeploymentSettingsEnvironmentVariables : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Collection of environment variables + internal partial interface IDeploymentSettingsEnvironmentVariablesInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.dictionary.cs new file mode 100644 index 000000000000..5a7a4a94d756 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class DeploymentSettingsEnvironmentVariables : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.DeploymentSettingsEnvironmentVariables source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.json.cs new file mode 100644 index 000000000000..0d95fc0aa876 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DeploymentSettingsEnvironmentVariables.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of environment variables + public partial class DeploymentSettingsEnvironmentVariables + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal DeploymentSettingsEnvironmentVariables(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettingsEnvironmentVariables FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DeploymentSettingsEnvironmentVariables(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.PowerShell.cs new file mode 100644 index 000000000000..94ea89e4013e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Detail settings for Dev Tool Portal feature + [System.ComponentModel.TypeConverter(typeof(DevToolPortalFeatureDetailTypeConverter))] + public partial class DevToolPortalFeatureDetail + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DevToolPortalFeatureDetail(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DevToolPortalFeatureDetail(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DevToolPortalFeatureDetail(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)this).Route = (string) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)this).Route, 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 DevToolPortalFeatureDetail(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)this).Route = (string) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)this).Route, 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Detail settings for Dev Tool Portal feature + [System.ComponentModel.TypeConverter(typeof(DevToolPortalFeatureDetailTypeConverter))] + public partial interface IDevToolPortalFeatureDetail + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.TypeConverter.cs new file mode 100644 index 000000000000..da8a68dcb7b3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DevToolPortalFeatureDetailTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DevToolPortalFeatureDetail.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DevToolPortalFeatureDetail.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DevToolPortalFeatureDetail.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.cs new file mode 100644 index 000000000000..0862dad347b7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Detail settings for Dev Tool Portal feature + public partial class DevToolPortalFeatureDetail : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal + { + + /// Internal Acessors for Route + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal.Route { get => this._route; set { {_route = value;} } } + + /// Backing field for property. + private string _route; + + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Route { get => this._route; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? _state; + + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? State { get => this._state; set => this._state = value; } + + /// Creates an new instance. + public DevToolPortalFeatureDetail() + { + + } + } + /// Detail settings for Dev Tool Portal feature + public partial interface IDevToolPortalFeatureDetail : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Route path to visit the plugin", + SerializedName = @"route", + PossibleTypes = new [] { typeof(string) })] + string Route { get; } + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? State { get; set; } + + } + /// Detail settings for Dev Tool Portal feature + internal partial interface IDevToolPortalFeatureDetailInternal + + { + /// Route path to visit the plugin + string Route { get; set; } + /// State of the plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? State { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.json.cs new file mode 100644 index 000000000000..af44a1739f8f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureDetail.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Detail settings for Dev Tool Portal feature + public partial class DevToolPortalFeatureDetail + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DevToolPortalFeatureDetail(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_state = If( json?.PropertyT("state"), out var __jsonState) ? (string)__jsonState : (string)State;} + {_route = If( json?.PropertyT("route"), out var __jsonRoute) ? (string)__jsonRoute : (string)Route;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DevToolPortalFeatureDetail(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._state)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._state.ToString()) : null, "state" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._route)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._route.ToString()) : null, "route" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.PowerShell.cs new file mode 100644 index 000000000000..6416dca6e7ed --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Settings for Dev Tool Portal + [System.ComponentModel.TypeConverter(typeof(DevToolPortalFeatureSettingsTypeConverter))] + public partial class DevToolPortalFeatureSettings + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DevToolPortalFeatureSettings(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DevToolPortalFeatureSettings(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DevToolPortalFeatureSettings(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ApplicationAccelerator")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAccelerator = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("ApplicationAccelerator",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAccelerator, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("ApplicationLiveView")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveView = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("ApplicationLiveView",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveView, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("ApplicationAcceleratorState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAcceleratorState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationAcceleratorState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAcceleratorState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationAcceleratorRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAcceleratorRoute = (string) content.GetValueForProperty("ApplicationAcceleratorRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAcceleratorRoute, global::System.Convert.ToString); + } + if (content.Contains("ApplicationLiveViewState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveViewState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationLiveViewState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveViewState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationLiveViewRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveViewRoute = (string) content.GetValueForProperty("ApplicationLiveViewRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveViewRoute, 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 DevToolPortalFeatureSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ApplicationAccelerator")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAccelerator = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("ApplicationAccelerator",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAccelerator, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("ApplicationLiveView")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveView = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("ApplicationLiveView",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveView, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("ApplicationAcceleratorState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAcceleratorState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationAcceleratorState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAcceleratorState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationAcceleratorRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAcceleratorRoute = (string) content.GetValueForProperty("ApplicationAcceleratorRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationAcceleratorRoute, global::System.Convert.ToString); + } + if (content.Contains("ApplicationLiveViewState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveViewState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationLiveViewState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveViewState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationLiveViewRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveViewRoute = (string) content.GetValueForProperty("ApplicationLiveViewRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)this).ApplicationLiveViewRoute, 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Settings for Dev Tool Portal + [System.ComponentModel.TypeConverter(typeof(DevToolPortalFeatureSettingsTypeConverter))] + public partial interface IDevToolPortalFeatureSettings + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.TypeConverter.cs new file mode 100644 index 000000000000..a47ee0646cf5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DevToolPortalFeatureSettingsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DevToolPortalFeatureSettings.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DevToolPortalFeatureSettings.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DevToolPortalFeatureSettings.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.cs new file mode 100644 index 000000000000..82363aa26491 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Settings for Dev Tool Portal + public partial class DevToolPortalFeatureSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail _applicationAccelerator; + + /// Detail of Accelerator plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail ApplicationAccelerator { get => (this._applicationAccelerator = this._applicationAccelerator ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetail()); set => this._applicationAccelerator = value; } + + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApplicationAcceleratorRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationAccelerator).Route; } + + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationAccelerator).State; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationAccelerator).State = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail _applicationLiveView; + + /// Detail of App Live View plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail ApplicationLiveView { get => (this._applicationLiveView = this._applicationLiveView ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetail()); set => this._applicationLiveView = value; } + + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApplicationLiveViewRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationLiveView).Route; } + + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationLiveView).State; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationLiveView).State = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState)""); } + + /// Internal Acessors for ApplicationAccelerator + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal.ApplicationAccelerator { get => (this._applicationAccelerator = this._applicationAccelerator ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetail()); set { {_applicationAccelerator = value;} } } + + /// Internal Acessors for ApplicationAcceleratorRoute + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal.ApplicationAcceleratorRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationAccelerator).Route; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationAccelerator).Route = value; } + + /// Internal Acessors for ApplicationLiveView + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal.ApplicationLiveView { get => (this._applicationLiveView = this._applicationLiveView ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetail()); set { {_applicationLiveView = value;} } } + + /// Internal Acessors for ApplicationLiveViewRoute + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal.ApplicationLiveViewRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationLiveView).Route; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetailInternal)ApplicationLiveView).Route = value; } + + /// Creates an new instance. + public DevToolPortalFeatureSettings() + { + + } + } + /// Settings for Dev Tool Portal + public partial interface IDevToolPortalFeatureSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Route path to visit the plugin", + SerializedName = @"route", + PossibleTypes = new [] { typeof(string) })] + string ApplicationAcceleratorRoute { get; } + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get; set; } + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Route path to visit the plugin", + SerializedName = @"route", + PossibleTypes = new [] { typeof(string) })] + string ApplicationLiveViewRoute { get; } + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get; set; } + + } + /// Settings for Dev Tool Portal + internal partial interface IDevToolPortalFeatureSettingsInternal + + { + /// Detail of Accelerator plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail ApplicationAccelerator { get; set; } + /// Route path to visit the plugin + string ApplicationAcceleratorRoute { get; set; } + /// State of the plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get; set; } + /// Detail of App Live View plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail ApplicationLiveView { get; set; } + /// Route path to visit the plugin + string ApplicationLiveViewRoute { get; set; } + /// State of the plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.json.cs new file mode 100644 index 000000000000..8f87d75161d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalFeatureSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Settings for Dev Tool Portal + public partial class DevToolPortalFeatureSettings + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DevToolPortalFeatureSettings(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_applicationAccelerator = If( json?.PropertyT("applicationAccelerator"), out var __jsonApplicationAccelerator) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetail.FromJson(__jsonApplicationAccelerator) : ApplicationAccelerator;} + {_applicationLiveView = If( json?.PropertyT("applicationLiveView"), out var __jsonApplicationLiveView) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetail.FromJson(__jsonApplicationLiveView) : ApplicationLiveView;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DevToolPortalFeatureSettings(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._applicationAccelerator ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._applicationAccelerator.ToJson(null,serializationMode) : null, "applicationAccelerator" ,container.Add ); + AddIf( null != this._applicationLiveView ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._applicationLiveView.ToJson(null,serializationMode) : null, "applicationLiveView" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.PowerShell.cs new file mode 100644 index 000000000000..2b567b8ca67b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of instances belong to the Dev Tool Portal. + [System.ComponentModel.TypeConverter(typeof(DevToolPortalInstanceTypeConverter))] + public partial class DevToolPortalInstance + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DevToolPortalInstance(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DevToolPortalInstance(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DevToolPortalInstance(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal)this).Status, 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 DevToolPortalInstance(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal)this).Status, 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of instances belong to the Dev Tool Portal. + [System.ComponentModel.TypeConverter(typeof(DevToolPortalInstanceTypeConverter))] + public partial interface IDevToolPortalInstance + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.TypeConverter.cs new file mode 100644 index 000000000000..95204131cc2e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DevToolPortalInstanceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DevToolPortalInstance.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DevToolPortalInstance.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DevToolPortalInstance.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.cs new file mode 100644 index 000000000000..d152bbf390bd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Dev Tool Portal. + public partial class DevToolPortalInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstanceInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the Dev Tool Portal instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _status; + + /// + /// Status of the Dev Tool Portal instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Status { get => this._status; } + + /// Creates an new instance. + public DevToolPortalInstance() + { + + } + } + /// Collection of instances belong to the Dev Tool Portal. + public partial interface IDevToolPortalInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name of the Dev Tool Portal instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the Dev Tool Portal instance.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// + /// Status of the Dev Tool Portal instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the Dev Tool Portal instance. It can be Pending, Running, Succeeded, Failed, Unknown.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; } + + } + /// Collection of instances belong to the Dev Tool Portal. + internal partial interface IDevToolPortalInstanceInternal + + { + /// Name of the Dev Tool Portal instance. + string Name { get; set; } + /// + /// Status of the Dev Tool Portal instance. It can be Pending, Running, Succeeded, Failed, Unknown. + /// + string Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.json.cs new file mode 100644 index 000000000000..854c7d638953 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Dev Tool Portal. + public partial class DevToolPortalInstance + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DevToolPortalInstance(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DevToolPortalInstance(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.PowerShell.cs new file mode 100644 index 000000000000..70c33cb83aeb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.PowerShell.cs @@ -0,0 +1,298 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Dev Tool Portal properties payload + [System.ComponentModel.TypeConverter(typeof(DevToolPortalPropertiesTypeConverter))] + public partial class DevToolPortalProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DevToolPortalProperties(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DevToolPortalProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DevToolPortalProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Feature")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Feature = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings) content.GetValueForProperty("Feature",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Feature, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestInstanceCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyMetadataUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyMetadataUrl = (string) content.GetValueForProperty("SsoPropertyMetadataUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyMetadataUrl, global::System.Convert.ToString); + } + if (content.Contains("FeatureApplicationAccelerator")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).FeatureApplicationAccelerator = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("FeatureApplicationAccelerator",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).FeatureApplicationAccelerator, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("FeatureApplicationLiveView")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).FeatureApplicationLiveView = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("FeatureApplicationLiveView",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).FeatureApplicationLiveView, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("ApplicationAcceleratorState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationAcceleratorState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationAcceleratorState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationAcceleratorState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationAcceleratorRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationAcceleratorRoute = (string) content.GetValueForProperty("ApplicationAcceleratorRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationAcceleratorRoute, global::System.Convert.ToString); + } + if (content.Contains("ApplicationLiveViewState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationLiveViewState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationLiveViewState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationLiveViewState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationLiveViewRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationLiveViewRoute = (string) content.GetValueForProperty("ApplicationLiveViewRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationLiveViewRoute, 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 DevToolPortalProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Feature")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Feature = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings) content.GetValueForProperty("Feature",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Feature, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ResourceRequestInstanceCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyMetadataUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyMetadataUrl = (string) content.GetValueForProperty("SsoPropertyMetadataUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).SsoPropertyMetadataUrl, global::System.Convert.ToString); + } + if (content.Contains("FeatureApplicationAccelerator")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).FeatureApplicationAccelerator = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("FeatureApplicationAccelerator",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).FeatureApplicationAccelerator, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("FeatureApplicationLiveView")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).FeatureApplicationLiveView = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("FeatureApplicationLiveView",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).FeatureApplicationLiveView, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("ApplicationAcceleratorState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationAcceleratorState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationAcceleratorState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationAcceleratorState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationAcceleratorRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationAcceleratorRoute = (string) content.GetValueForProperty("ApplicationAcceleratorRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationAcceleratorRoute, global::System.Convert.ToString); + } + if (content.Contains("ApplicationLiveViewState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationLiveViewState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationLiveViewState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationLiveViewState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationLiveViewRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationLiveViewRoute = (string) content.GetValueForProperty("ApplicationLiveViewRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)this).ApplicationLiveViewRoute, 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dev Tool Portal properties payload + [System.ComponentModel.TypeConverter(typeof(DevToolPortalPropertiesTypeConverter))] + public partial interface IDevToolPortalProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.TypeConverter.cs new file mode 100644 index 000000000000..0066b1ff65db --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DevToolPortalPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DevToolPortalProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DevToolPortalProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DevToolPortalProperties.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.cs new file mode 100644 index 000000000000..b847a67cd56b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.cs @@ -0,0 +1,344 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Dev Tool Portal properties payload + public partial class DevToolPortalProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal + { + + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApplicationAcceleratorRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationAcceleratorRoute; } + + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationAcceleratorState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationAcceleratorState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState)""); } + + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApplicationLiveViewRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationLiveViewRoute; } + + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationLiveViewState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationLiveViewState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings _feature; + + /// Settings for Dev Tool Portal + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings Feature { get => (this._feature = this._feature ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureSettings()); set => this._feature = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] _instance; + + /// Collection of instances belong to Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] Instance { get => this._instance; } + + /// Internal Acessors for ApplicationAcceleratorRoute + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.ApplicationAcceleratorRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationAcceleratorRoute; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationAcceleratorRoute = value; } + + /// Internal Acessors for ApplicationLiveViewRoute + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.ApplicationLiveViewRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationLiveViewRoute; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationLiveViewRoute = value; } + + /// Internal Acessors for Feature + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.Feature { get => (this._feature = this._feature ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureSettings()); set { {_feature = value;} } } + + /// Internal Acessors for FeatureApplicationAccelerator + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.FeatureApplicationAccelerator { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationAccelerator; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationAccelerator = value; } + + /// Internal Acessors for FeatureApplicationLiveView + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.FeatureApplicationLiveView { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationLiveView; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettingsInternal)Feature).ApplicationLiveView = value; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).Cpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).InstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).InstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).Memory = value; } + + /// Internal Acessors for SsoProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.SsoProperty { get => (this._ssoProperty = this._ssoProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoProperties()); set { {_ssoProperty = value;} } } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal.Url { get => this._url; set { {_url = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? _provisioningState; + + /// State of the Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private bool? _public; + + /// Indicates whether the resource exposes public endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? Public { get => this._public; set => this._public = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests _resourceRequest; + + /// The requested resource quantity for required CPU and Memory. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequests()); } + + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).Cpu; } + + /// Desired instance count of Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).InstanceCount; } + + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)ResourceRequest).Memory; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties _ssoProperty; + + /// Single sign-on related configuration + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties SsoProperty { get => (this._ssoProperty = this._ssoProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoProperties()); set => this._ssoProperty = value; } + + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)SsoProperty).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)SsoProperty).ClientId = value ?? null; } + + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)SsoProperty).ClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)SsoProperty).ClientSecret = value ?? null; } + + /// The URI of a JSON file with generic OIDC provider configuration. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyMetadataUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)SsoProperty).MetadataUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)SsoProperty).MetadataUrl = value ?? null; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] SsoPropertyScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)SsoProperty).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)SsoProperty).Scope = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _url; + + /// URL of the resource, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Url { get => this._url; } + + /// Creates an new instance. + public DevToolPortalProperties() + { + + } + } + /// Dev Tool Portal properties payload + public partial interface IDevToolPortalProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Route path to visit the plugin", + SerializedName = @"route", + PossibleTypes = new [] { typeof(string) })] + string ApplicationAcceleratorRoute { get; } + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get; set; } + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Route path to visit the plugin", + SerializedName = @"route", + PossibleTypes = new [] { typeof(string) })] + string ApplicationLiveViewRoute { get; } + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get; set; } + /// Collection of instances belong to Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Dev Tool Portal.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] Instance { get; } + /// State of the Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Dev Tool Portal.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? ProvisioningState { get; } + /// Indicates whether the resource exposes public endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the resource exposes public endpoint", + SerializedName = @"public", + PossibleTypes = new [] { typeof(bool) })] + bool? Public { get; set; } + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Desired instance count of Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Desired instance count of Dev Tool Portal.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientSecret { get; set; } + /// The URI of a JSON file with generic OIDC provider configuration. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of a JSON file with generic OIDC provider configuration.", + SerializedName = @"metadataUrl", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyMetadataUrl { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] SsoPropertyScope { get; set; } + /// URL of the resource, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the resource, exposed when 'public' is true.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; } + + } + /// Dev Tool Portal properties payload + internal partial interface IDevToolPortalPropertiesInternal + + { + /// Route path to visit the plugin + string ApplicationAcceleratorRoute { get; set; } + /// State of the plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get; set; } + /// Route path to visit the plugin + string ApplicationLiveViewRoute { get; set; } + /// State of the plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get; set; } + /// Settings for Dev Tool Portal + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings Feature { get; set; } + /// Detail of Accelerator plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail FeatureApplicationAccelerator { get; set; } + /// Detail of App Live View plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail FeatureApplicationLiveView { get; set; } + /// Collection of instances belong to Dev Tool Portal. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] Instance { get; set; } + /// State of the Dev Tool Portal. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? ProvisioningState { get; set; } + /// Indicates whether the resource exposes public endpoint + bool? Public { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests ResourceRequest { get; set; } + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + string ResourceRequestCpu { get; set; } + /// Desired instance count of Dev Tool Portal. + int? ResourceRequestInstanceCount { get; set; } + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + string ResourceRequestMemory { get; set; } + /// Single sign-on related configuration + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties SsoProperty { get; set; } + /// The public identifier for the application + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + string SsoPropertyClientSecret { get; set; } + /// The URI of a JSON file with generic OIDC provider configuration. + string SsoPropertyMetadataUrl { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + string[] SsoPropertyScope { get; set; } + /// URL of the resource, exposed when 'public' is true. + string Url { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.json.cs new file mode 100644 index 000000000000..db01c4a4784d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Dev Tool Portal properties payload + public partial class DevToolPortalProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DevToolPortalProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_ssoProperty = If( json?.PropertyT("ssoProperties"), out var __jsonSsoProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoProperties.FromJson(__jsonSsoProperties) : SsoProperty;} + {_feature = If( json?.PropertyT("features"), out var __jsonFeatures) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureSettings.FromJson(__jsonFeatures) : Feature;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalInstance.FromJson(__u) )) ))() : null : Instance;} + {_public = If( json?.PropertyT("public"), out var __jsonPublic) ? (bool?)__jsonPublic : Public;} + {_url = If( json?.PropertyT("url"), out var __jsonUrl) ? (string)__jsonUrl : (string)Url;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DevToolPortalProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + } + AddIf( null != this._ssoProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._ssoProperty.ToJson(null,serializationMode) : null, "ssoProperties" ,container.Add ); + AddIf( null != this._feature ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._feature.ToJson(null,serializationMode) : null, "features" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._instance ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("instances",__w); + } + } + AddIf( null != this._public ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._public) : null, "public" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._url)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._url.ToString()) : null, "url" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.PowerShell.cs new file mode 100644 index 000000000000..7362a755b974 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Dev Tool Portal resource + [System.ComponentModel.TypeConverter(typeof(DevToolPortalResourceTypeConverter))] + public partial class DevToolPortalResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DevToolPortalResource(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DevToolPortalResource(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DevToolPortalResource(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Feature")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Feature = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings) content.GetValueForProperty("Feature",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Feature, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestInstanceCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyMetadataUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyMetadataUrl = (string) content.GetValueForProperty("SsoPropertyMetadataUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyMetadataUrl, global::System.Convert.ToString); + } + if (content.Contains("FeatureApplicationAccelerator")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).FeatureApplicationAccelerator = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("FeatureApplicationAccelerator",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).FeatureApplicationAccelerator, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("FeatureApplicationLiveView")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).FeatureApplicationLiveView = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("FeatureApplicationLiveView",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).FeatureApplicationLiveView, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("ApplicationAcceleratorState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationAcceleratorState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationAcceleratorState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationAcceleratorState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationAcceleratorRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationAcceleratorRoute = (string) content.GetValueForProperty("ApplicationAcceleratorRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationAcceleratorRoute, global::System.Convert.ToString); + } + if (content.Contains("ApplicationLiveViewState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationLiveViewState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationLiveViewState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationLiveViewState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationLiveViewRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationLiveViewRoute = (string) content.GetValueForProperty("ApplicationLiveViewRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationLiveViewRoute, 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 DevToolPortalResource(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalSsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Feature")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Feature = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings) content.GetValueForProperty("Feature",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Feature, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureSettingsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ResourceRequestInstanceCount, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyMetadataUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyMetadataUrl = (string) content.GetValueForProperty("SsoPropertyMetadataUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).SsoPropertyMetadataUrl, global::System.Convert.ToString); + } + if (content.Contains("FeatureApplicationAccelerator")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).FeatureApplicationAccelerator = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("FeatureApplicationAccelerator",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).FeatureApplicationAccelerator, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("FeatureApplicationLiveView")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).FeatureApplicationLiveView = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail) content.GetValueForProperty("FeatureApplicationLiveView",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).FeatureApplicationLiveView, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalFeatureDetailTypeConverter.ConvertFrom); + } + if (content.Contains("ApplicationAcceleratorState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationAcceleratorState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationAcceleratorState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationAcceleratorState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationAcceleratorRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationAcceleratorRoute = (string) content.GetValueForProperty("ApplicationAcceleratorRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationAcceleratorRoute, global::System.Convert.ToString); + } + if (content.Contains("ApplicationLiveViewState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationLiveViewState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState?) content.GetValueForProperty("ApplicationLiveViewState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationLiveViewState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState.CreateFrom); + } + if (content.Contains("ApplicationLiveViewRoute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationLiveViewRoute = (string) content.GetValueForProperty("ApplicationLiveViewRoute",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal)this).ApplicationLiveViewRoute, 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dev Tool Portal resource + [System.ComponentModel.TypeConverter(typeof(DevToolPortalResourceTypeConverter))] + public partial interface IDevToolPortalResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.TypeConverter.cs new file mode 100644 index 000000000000..7ed2afd02593 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DevToolPortalResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DevToolPortalResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DevToolPortalResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DevToolPortalResource.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.cs new file mode 100644 index 000000000000..e00b9eb359fb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Dev Tool Portal resource + public partial class DevToolPortalResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApplicationAcceleratorRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationAcceleratorRoute; } + + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationAcceleratorState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationAcceleratorState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState)""); } + + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApplicationLiveViewRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationLiveViewRoute; } + + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationLiveViewState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationLiveViewState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState)""); } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Collection of instances belong to Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Instance; } + + /// Internal Acessors for ApplicationAcceleratorRoute + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.ApplicationAcceleratorRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationAcceleratorRoute; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationAcceleratorRoute = value; } + + /// Internal Acessors for ApplicationLiveViewRoute + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.ApplicationLiveViewRoute { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationLiveViewRoute; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ApplicationLiveViewRoute = value; } + + /// Internal Acessors for Feature + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.Feature { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Feature; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Feature = value; } + + /// Internal Acessors for FeatureApplicationAccelerator + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.FeatureApplicationAccelerator { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).FeatureApplicationAccelerator; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).FeatureApplicationAccelerator = value; } + + /// Internal Acessors for FeatureApplicationLiveView + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.FeatureApplicationLiveView { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).FeatureApplicationLiveView; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).FeatureApplicationLiveView = value; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Instance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Instance = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.ResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequest = value; } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestCpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestInstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestInstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestMemory = value; } + + /// Internal Acessors for SsoProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.SsoProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoProperty = value; } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceInternal.Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Url; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Url = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties _property; + + /// Dev Tool Portal properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalProperties()); set => this._property = value; } + + /// State of the Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ProvisioningState; } + + /// Indicates whether the resource exposes public endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? Public { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Public; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Public = value ?? default(bool); } + + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestCpu; } + + /// Desired instance count of Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestInstanceCount; } + + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).ResourceRequestMemory; } + + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoPropertyClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoPropertyClientId = value ?? null; } + + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoPropertyClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoPropertyClientSecret = value ?? null; } + + /// The URI of a JSON file with generic OIDC provider configuration. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyMetadataUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoPropertyMetadataUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoPropertyMetadataUrl = value ?? null; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] SsoPropertyScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoPropertyScope; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).SsoPropertyScope = value ?? null /* arrayOf */; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// URL of the resource, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalPropertiesInternal)Property).Url; } + + /// Creates an new instance. + public DevToolPortalResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Dev Tool Portal resource + public partial interface IDevToolPortalResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Route path to visit the plugin", + SerializedName = @"route", + PossibleTypes = new [] { typeof(string) })] + string ApplicationAcceleratorRoute { get; } + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get; set; } + /// Route path to visit the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Route path to visit the plugin", + SerializedName = @"route", + PossibleTypes = new [] { typeof(string) })] + string ApplicationLiveViewRoute { get; } + /// State of the plugin + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get; set; } + /// Collection of instances belong to Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Dev Tool Portal.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] Instance { get; } + /// State of the Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Dev Tool Portal.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? ProvisioningState { get; } + /// Indicates whether the resource exposes public endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the resource exposes public endpoint", + SerializedName = @"public", + PossibleTypes = new [] { typeof(bool) })] + bool? Public { get; set; } + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Desired instance count of Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Desired instance count of Dev Tool Portal.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientSecret { get; set; } + /// The URI of a JSON file with generic OIDC provider configuration. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of a JSON file with generic OIDC provider configuration.", + SerializedName = @"metadataUrl", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyMetadataUrl { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] SsoPropertyScope { get; set; } + /// URL of the resource, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the resource, exposed when 'public' is true.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; } + + } + /// Dev Tool Portal resource + internal partial interface IDevToolPortalResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Route path to visit the plugin + string ApplicationAcceleratorRoute { get; set; } + /// State of the plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationAcceleratorState { get; set; } + /// Route path to visit the plugin + string ApplicationLiveViewRoute { get; set; } + /// State of the plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState? ApplicationLiveViewState { get; set; } + /// Settings for Dev Tool Portal + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureSettings Feature { get; set; } + /// Detail of Accelerator plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail FeatureApplicationAccelerator { get; set; } + /// Detail of App Live View plugin + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalFeatureDetail FeatureApplicationLiveView { get; set; } + /// Collection of instances belong to Dev Tool Portal. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalInstance[] Instance { get; set; } + /// Dev Tool Portal properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalProperties Property { get; set; } + /// State of the Dev Tool Portal. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState? ProvisioningState { get; set; } + /// Indicates whether the resource exposes public endpoint + bool? Public { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests ResourceRequest { get; set; } + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + string ResourceRequestCpu { get; set; } + /// Desired instance count of Dev Tool Portal. + int? ResourceRequestInstanceCount { get; set; } + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + string ResourceRequestMemory { get; set; } + /// Single sign-on related configuration + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties SsoProperty { get; set; } + /// The public identifier for the application + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + string SsoPropertyClientSecret { get; set; } + /// The URI of a JSON file with generic OIDC provider configuration. + string SsoPropertyMetadataUrl { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + string[] SsoPropertyScope { get; set; } + /// URL of the resource, exposed when 'public' is true. + string Url { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.json.cs new file mode 100644 index 000000000000..5d45e1f2fa89 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Dev Tool Portal resource + public partial class DevToolPortalResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DevToolPortalResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DevToolPortalResource(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..ef7dbdd95b6e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Dev Tool Portal resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(DevToolPortalResourceCollectionTypeConverter))] + public partial class DevToolPortalResourceCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DevToolPortalResourceCollection(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DevToolPortalResourceCollection(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DevToolPortalResourceCollection(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal)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 DevToolPortalResourceCollection(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal)this).NextLink, 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Dev Tool Portal resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(DevToolPortalResourceCollectionTypeConverter))] + public partial interface IDevToolPortalResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..cdc4f4741b5e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DevToolPortalResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DevToolPortalResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DevToolPortalResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DevToolPortalResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.cs new file mode 100644 index 000000000000..461b11498716 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Dev Tool Portal resources and a possible link for next set + /// + public partial class DevToolPortalResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource[] _value; + + /// Collection of Dev Tool Portal resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DevToolPortalResourceCollection() + { + + } + } + /// Object that includes an array of Dev Tool Portal resources and a possible link for next set + public partial interface IDevToolPortalResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Dev Tool Portal resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Dev Tool Portal resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource[] Value { get; set; } + + } + /// Object that includes an array of Dev Tool Portal resources and a possible link for next set + internal partial interface IDevToolPortalResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Dev Tool Portal resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.json.cs new file mode 100644 index 000000000000..4a05ec313b9a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Dev Tool Portal resources and a possible link for next set + /// + public partial class DevToolPortalResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DevToolPortalResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResource.FromJson(__u) )) ))() : null : Value;} + {_nextLink = If( json?.PropertyT("nextLink"), out var __jsonNextLink) ? (string)__jsonNextLink : (string)NextLink;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DevToolPortalResourceCollection(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..3f87c97573a8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The resource quantity for required CPU and Memory of Dev Tool Portal + [System.ComponentModel.TypeConverter(typeof(DevToolPortalResourceRequestsTypeConverter))] + public partial class DevToolPortalResourceRequests + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DevToolPortalResourceRequests(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DevToolPortalResourceRequests(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DevToolPortalResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).InstanceCount, (__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 DevToolPortalResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal)this).InstanceCount, (__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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The resource quantity for required CPU and Memory of Dev Tool Portal + [System.ComponentModel.TypeConverter(typeof(DevToolPortalResourceRequestsTypeConverter))] + public partial interface IDevToolPortalResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..c95973392b9c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DevToolPortalResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DevToolPortalResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DevToolPortalResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DevToolPortalResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.cs new file mode 100644 index 000000000000..edcd0fc4d214 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The resource quantity for required CPU and Memory of Dev Tool Portal + public partial class DevToolPortalResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private int? _instanceCount; + + /// Desired instance count of Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? InstanceCount { get => this._instanceCount; } + + /// Backing field for property. + private string _memory; + + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for InstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal.InstanceCount { get => this._instanceCount; set { {_instanceCount = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequestsInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Creates an new instance. + public DevToolPortalResourceRequests() + { + + } + } + /// The resource quantity for required CPU and Memory of Dev Tool Portal + public partial interface IDevToolPortalResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// Desired instance count of Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Desired instance count of Dev Tool Portal.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? InstanceCount { get; } + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + + } + /// The resource quantity for required CPU and Memory of Dev Tool Portal + internal partial interface IDevToolPortalResourceRequestsInternal + + { + /// + /// Cpu quantity allocated to each Dev Tool Portal instance. 1 core can be represented by 1 or 1000m + /// + string Cpu { get; set; } + /// Desired instance count of Dev Tool Portal. + int? InstanceCount { get; set; } + /// + /// Memory quantity allocated to each Dev Tool Portal instance. 1 GB can be represented by 1Gi or 1024Mi. + /// + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.json.cs new file mode 100644 index 000000000000..41e991c715b5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The resource quantity for required CPU and Memory of Dev Tool Portal + public partial class DevToolPortalResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DevToolPortalResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + {_instanceCount = If( json?.PropertyT("instanceCount"), out var __jsonInstanceCount) ? (int?)__jsonInstanceCount : InstanceCount;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DevToolPortalResourceRequests(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._instanceCount ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._instanceCount) : null, "instanceCount" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.PowerShell.cs new file mode 100644 index 000000000000..ba3c4ceb9d7f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Single sign-on related configuration + [System.ComponentModel.TypeConverter(typeof(DevToolPortalSsoPropertiesTypeConverter))] + public partial class DevToolPortalSsoProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DevToolPortalSsoProperties(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.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DevToolPortalSsoProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DevToolPortalSsoProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).Scope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).ClientSecret = (string) content.GetValueForProperty("ClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).ClientSecret, global::System.Convert.ToString); + } + if (content.Contains("MetadataUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).MetadataUrl = (string) content.GetValueForProperty("MetadataUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).MetadataUrl, 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 DevToolPortalSsoProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).Scope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).ClientSecret = (string) content.GetValueForProperty("ClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).ClientSecret, global::System.Convert.ToString); + } + if (content.Contains("MetadataUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).MetadataUrl = (string) content.GetValueForProperty("MetadataUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal)this).MetadataUrl, 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Single sign-on related configuration + [System.ComponentModel.TypeConverter(typeof(DevToolPortalSsoPropertiesTypeConverter))] + public partial interface IDevToolPortalSsoProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.TypeConverter.cs new file mode 100644 index 000000000000..2d8883b46eda --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DevToolPortalSsoPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DevToolPortalSsoProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DevToolPortalSsoProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DevToolPortalSsoProperties.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/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.cs new file mode 100644 index 000000000000..3a3fea025aa1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Single sign-on related configuration + public partial class DevToolPortalSsoProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoPropertiesInternal + { + + /// Backing field for property. + private string _clientId; + + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Backing field for property. + private string _clientSecret; + + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ClientSecret { get => this._clientSecret; set => this._clientSecret = value; } + + /// Backing field for property. + private string _metadataUrl; + + /// The URI of a JSON file with generic OIDC provider configuration. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string MetadataUrl { get => this._metadataUrl; set => this._metadataUrl = value; } + + /// Backing field for property. + private string[] _scope; + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Scope { get => this._scope; set => this._scope = value; } + + /// Creates an new instance. + public DevToolPortalSsoProperties() + { + + } + } + /// Single sign-on related configuration + public partial interface IDevToolPortalSsoProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string ClientSecret { get; set; } + /// The URI of a JSON file with generic OIDC provider configuration. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of a JSON file with generic OIDC provider configuration.", + SerializedName = @"metadataUrl", + PossibleTypes = new [] { typeof(string) })] + string MetadataUrl { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + string[] Scope { get; set; } + + } + /// Single sign-on related configuration + internal partial interface IDevToolPortalSsoPropertiesInternal + + { + /// The public identifier for the application + string ClientId { get; set; } + /// The secret known only to the application and the authorization server + string ClientSecret { get; set; } + /// The URI of a JSON file with generic OIDC provider configuration. + string MetadataUrl { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + string[] Scope { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.json.cs new file mode 100644 index 000000000000..f058881880b1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DevToolPortalSsoProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Single sign-on related configuration + public partial class DevToolPortalSsoProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DevToolPortalSsoProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_scope = If( json?.PropertyT("scopes"), out var __jsonScopes) ? If( __jsonScopes as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Scope;} + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + {_clientSecret = If( json?.PropertyT("clientSecret"), out var __jsonClientSecret) ? (string)__jsonClientSecret : (string)ClientSecret;} + {_metadataUrl = If( json?.PropertyT("metadataUrl"), out var __jsonMetadataUrl) ? (string)__jsonMetadataUrl : (string)MetadataUrl;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalSsoProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DevToolPortalSsoProperties(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._scope) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._scope ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("scopes",__w); + } + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AddIf( null != (((object)this._clientSecret)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._clientSecret.ToString()) : null, "clientSecret" ,container.Add ); + AddIf( null != (((object)this._metadataUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._metadataUrl.ToString()) : null, "metadataUrl" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.PowerShell.cs new file mode 100644 index 000000000000..ccffcfcdfae5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Diagnostic parameters of diagnostic operations + [System.ComponentModel.TypeConverter(typeof(DiagnosticParametersTypeConverter))] + public partial class DiagnosticParameters + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DiagnosticParameters(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.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DiagnosticParameters(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DiagnosticParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AppInstance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).AppInstance = (string) content.GetValueForProperty("AppInstance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).AppInstance, global::System.Convert.ToString); + } + if (content.Contains("FilePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).FilePath, global::System.Convert.ToString); + } + if (content.Contains("Duration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).Duration = (string) content.GetValueForProperty("Duration",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).Duration, 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 DiagnosticParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AppInstance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).AppInstance = (string) content.GetValueForProperty("AppInstance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).AppInstance, global::System.Convert.ToString); + } + if (content.Contains("FilePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).FilePath = (string) content.GetValueForProperty("FilePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).FilePath, global::System.Convert.ToString); + } + if (content.Contains("Duration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).Duration = (string) content.GetValueForProperty("Duration",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal)this).Duration, 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.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Diagnostic parameters of diagnostic operations + [System.ComponentModel.TypeConverter(typeof(DiagnosticParametersTypeConverter))] + public partial interface IDiagnosticParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.TypeConverter.cs new file mode 100644 index 000000000000..d820164c1bab --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DiagnosticParametersTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DiagnosticParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DiagnosticParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DiagnosticParameters.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/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.cs new file mode 100644 index 000000000000..f6a6fe39a2f0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Diagnostic parameters of diagnostic operations + public partial class DiagnosticParameters : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParametersInternal + { + + /// Backing field for property. + private string _appInstance; + + /// App instance name + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppInstance { get => this._appInstance; set => this._appInstance = value; } + + /// Backing field for property. + private string _duration; + + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Duration { get => this._duration; set => this._duration = value; } + + /// Backing field for property. + private string _filePath; + + /// Your target file path in your own BYOS + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string FilePath { get => this._filePath; set => this._filePath = value; } + + /// Creates an new instance. + public DiagnosticParameters() + { + + } + } + /// Diagnostic parameters of diagnostic operations + public partial interface IDiagnosticParameters : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// App instance name + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"App instance name", + SerializedName = @"appInstance", + PossibleTypes = new [] { typeof(string) })] + string AppInstance { get; set; } + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Duration of your JFR. 1 min can be represented by 1m or 60s.", + SerializedName = @"duration", + PossibleTypes = new [] { typeof(string) })] + string Duration { get; set; } + /// Your target file path in your own BYOS + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Your target file path in your own BYOS", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + string FilePath { get; set; } + + } + /// Diagnostic parameters of diagnostic operations + internal partial interface IDiagnosticParametersInternal + + { + /// App instance name + string AppInstance { get; set; } + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + string Duration { get; set; } + /// Your target file path in your own BYOS + string FilePath { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.json.cs new file mode 100644 index 000000000000..3cca9153b4bf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/DiagnosticParameters.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Diagnostic parameters of diagnostic operations + public partial class DiagnosticParameters + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal DiagnosticParameters(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_appInstance = If( json?.PropertyT("appInstance"), out var __jsonAppInstance) ? (string)__jsonAppInstance : (string)AppInstance;} + {_filePath = If( json?.PropertyT("filePath"), out var __jsonFilePath) ? (string)__jsonFilePath : (string)FilePath;} + {_duration = If( json?.PropertyT("duration"), out var __jsonDuration) ? (string)__jsonDuration : (string)Duration;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new DiagnosticParameters(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._appInstance)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._appInstance.ToString()) : null, "appInstance" ,container.Add ); + AddIf( null != (((object)this._filePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._filePath.ToString()) : null, "filePath" ,container.Add ); + AddIf( null != (((object)this._duration)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._duration.ToString()) : null, "duration" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.PowerShell.cs new file mode 100644 index 000000000000..74f75bc7efdd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The error code compose of code and message. + [System.ComponentModel.TypeConverter(typeof(ErrorTypeConverter))] + public partial class Error + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IError DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Error(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.AppPlatform.Models.Api20221101Preview.IError DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Error(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Error(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.AppPlatform.Models.Api20221101Preview.IErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)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 Error(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.AppPlatform.Models.Api20221101Preview.IErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)this).Message, 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.AppPlatform.Models.Api20221101Preview.IError FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The error code compose of code and message. + [System.ComponentModel.TypeConverter(typeof(ErrorTypeConverter))] + public partial interface IError + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.TypeConverter.cs new file mode 100644 index 000000000000..0a9c1ba6cf57 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ErrorTypeConverter : 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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IError ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Error.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Error.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Error.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/appplatform/generated/api/Models/Api20221101Preview/Error.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.cs new file mode 100644 index 000000000000..47e5e6c091a0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The error code compose of code and message. + public partial class Error : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal + { + + /// Backing field for property. + private string _code; + + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Code { get => this._code; set => this._code = value; } + + /// Backing field for property. + private string _message; + + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Creates an new instance. + public Error() + { + + } + } + /// The error code compose of code and message. + public partial interface IError : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + + } + /// The error code compose of code and message. + internal partial interface IErrorInternal + + { + /// The code of error. + string Code { get; set; } + /// The message of error. + string Message { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.json.cs new file mode 100644 index 000000000000..6a07c72b163e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Error.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The error code compose of code and message. + public partial class Error + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal Error(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new Error(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._code.ToString()) : null, "code" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ExecAction.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.PowerShell.cs new file mode 100644 index 000000000000..ed8c1d021519 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// ExecAction describes a "run in container" action. + [System.ComponentModel.TypeConverter(typeof(ExecActionTypeConverter))] + public partial class ExecAction + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IExecAction DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ExecAction(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.AppPlatform.Models.Api20221101Preview.IExecAction DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ExecAction(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ExecAction(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecActionInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecActionInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ExecAction(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Command")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecActionInternal)this).Command = (string[]) content.GetValueForProperty("Command",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecActionInternal)this).Command, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.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.AppPlatform.Models.Api20221101Preview.IExecAction FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// ExecAction describes a "run in container" action. + [System.ComponentModel.TypeConverter(typeof(ExecActionTypeConverter))] + public partial interface IExecAction + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.TypeConverter.cs new file mode 100644 index 000000000000..904146db7164 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ExecActionTypeConverter : 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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IExecAction ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecAction).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ExecAction.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ExecAction.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ExecAction.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/appplatform/generated/api/Models/Api20221101Preview/ExecAction.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.cs new file mode 100644 index 000000000000..fa7231e61662 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.cs @@ -0,0 +1,89 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// ExecAction describes a "run in container" action. + public partial class ExecAction : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecAction, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecActionInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction __probeAction = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction(); + + /// Backing field for property. + private string[] _command; + + /// + /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the + /// container's filesystem. The command is not run inside a shell, so traditional shell instructions ('|', etc) won't work. + /// To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero + /// is unhealthy. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Command { get => this._command; set => this._command = value; } + + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)__probeAction).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)__probeAction).Type = value ; } + + /// Creates an new instance. + public ExecAction() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__probeAction), __probeAction); + await eventListener.AssertObjectIsValid(nameof(__probeAction), __probeAction); + } + } + /// ExecAction describes a "run in container" action. + public partial interface IExecAction : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction + { + /// + /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the + /// container's filesystem. The command is not run inside a shell, so traditional shell instructions ('|', etc) won't work. + /// To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero + /// is unhealthy. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", + SerializedName = @"command", + PossibleTypes = new [] { typeof(string) })] + string[] Command { get; set; } + + } + /// ExecAction describes a "run in container" action. + internal partial interface IExecActionInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal + { + /// + /// Command is the command line to execute inside the container, the working directory for the command is root ('/') in the + /// container's filesystem. The command is not run inside a shell, so traditional shell instructions ('|', etc) won't work. + /// To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero + /// is unhealthy. + /// + string[] Command { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.json.cs new file mode 100644 index 000000000000..191abf638c9b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ExecAction.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// ExecAction describes a "run in container" action. + public partial class ExecAction + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ExecAction(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __probeAction = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction(json); + {_command = If( json?.PropertyT("command"), out var __jsonCommand) ? If( __jsonCommand as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Command;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecAction. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecAction. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IExecAction FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ExecAction(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __probeAction?.ToJson(container, serializationMode); + if (null != this._command) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._command ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("command",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.PowerShell.cs new file mode 100644 index 000000000000..e89480aeff5c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// API metadata property for Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayApiMetadataPropertiesTypeConverter))] + public partial class GatewayApiMetadataProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayApiMetadataProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayApiMetadataProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayApiMetadataProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Title")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Title = (string) content.GetValueForProperty("Title",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Title, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("Documentation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Documentation = (string) content.GetValueForProperty("Documentation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Documentation, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("ServerUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).ServerUrl = (string) content.GetValueForProperty("ServerUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).ServerUrl, 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 GatewayApiMetadataProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Title")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Title = (string) content.GetValueForProperty("Title",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Title, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("Documentation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Documentation = (string) content.GetValueForProperty("Documentation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Documentation, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("ServerUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).ServerUrl = (string) content.GetValueForProperty("ServerUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)this).ServerUrl, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// API metadata property for Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayApiMetadataPropertiesTypeConverter))] + public partial interface IGatewayApiMetadataProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.TypeConverter.cs new file mode 100644 index 000000000000..56c2655cd3b3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayApiMetadataPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayApiMetadataProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayApiMetadataProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayApiMetadataProperties.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/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.cs new file mode 100644 index 000000000000..1558e970c06d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API metadata property for Spring Cloud Gateway + public partial class GatewayApiMetadataProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _documentation; + + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Documentation { get => this._documentation; set => this._documentation = value; } + + /// Backing field for property. + private string _serverUrl; + + /// Base URL that API consumers will use to access APIs on the Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ServerUrl { get => this._serverUrl; set => this._serverUrl = value; } + + /// Backing field for property. + private string _title; + + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Title { get => this._title; set => this._title = value; } + + /// Backing field for property. + private string _version; + + /// Version of APIs available on this Gateway instance (default: `unspecified`). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public GatewayApiMetadataProperties() + { + + } + } + /// API metadata property for Spring Cloud Gateway + public partial interface IGatewayApiMetadataProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes the API routes configured.`)", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Location of additional documentation for the APIs available on the Gateway instance", + SerializedName = @"documentation", + PossibleTypes = new [] { typeof(string) })] + string Documentation { get; set; } + /// Base URL that API consumers will use to access APIs on the Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Base URL that API consumers will use to access APIs on the Gateway instance.", + SerializedName = @"serverUrl", + PossibleTypes = new [] { typeof(string) })] + string ServerUrl { get; set; } + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`)", + SerializedName = @"title", + PossibleTypes = new [] { typeof(string) })] + string Title { get; set; } + /// Version of APIs available on this Gateway instance (default: `unspecified`). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of APIs available on this Gateway instance (default: `unspecified`).", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// API metadata property for Spring Cloud Gateway + internal partial interface IGatewayApiMetadataPropertiesInternal + + { + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + string Description { get; set; } + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + string Documentation { get; set; } + /// Base URL that API consumers will use to access APIs on the Gateway instance. + string ServerUrl { get; set; } + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + string Title { get; set; } + /// Version of APIs available on this Gateway instance (default: `unspecified`). + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.json.cs new file mode 100644 index 000000000000..b9bd0a397237 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiMetadataProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API metadata property for Spring Cloud Gateway + public partial class GatewayApiMetadataProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayApiMetadataProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayApiMetadataProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_title = If( json?.PropertyT("title"), out var __jsonTitle) ? (string)__jsonTitle : (string)Title;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_documentation = If( json?.PropertyT("documentation"), out var __jsonDocumentation) ? (string)__jsonDocumentation : (string)Documentation;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + {_serverUrl = If( json?.PropertyT("serverUrl"), out var __jsonServerUrl) ? (string)__jsonServerUrl : (string)ServerUrl;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._title)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._title.ToString()) : null, "title" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._documentation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._documentation.ToString()) : null, "documentation" ,container.Add ); + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AddIf( null != (((object)this._serverUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._serverUrl.ToString()) : null, "serverUrl" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.PowerShell.cs new file mode 100644 index 000000000000..0e85e337dc98 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.PowerShell.cs @@ -0,0 +1,208 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// API route config of the Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayApiRouteTypeConverter))] + public partial class GatewayApiRoute + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayApiRoute(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.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayApiRoute(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.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayApiRoute(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Title")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Title = (string) content.GetValueForProperty("Title",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Title, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("SsoEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).SsoEnabled = (bool?) content.GetValueForProperty("SsoEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).SsoEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("TokenRelay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).TokenRelay = (bool?) content.GetValueForProperty("TokenRelay",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).TokenRelay, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Predicate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Predicate = (string[]) content.GetValueForProperty("Predicate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Predicate, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Filter = (string[]) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Filter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Order")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Order = (int?) content.GetValueForProperty("Order",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Order, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Tag = (string[]) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Tag, __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 GatewayApiRoute(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Title")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Title = (string) content.GetValueForProperty("Title",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Title, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("SsoEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).SsoEnabled = (bool?) content.GetValueForProperty("SsoEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).SsoEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("TokenRelay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).TokenRelay = (bool?) content.GetValueForProperty("TokenRelay",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).TokenRelay, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Predicate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Predicate = (string[]) content.GetValueForProperty("Predicate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Predicate, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Filter = (string[]) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Filter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Order")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Order = (int?) content.GetValueForProperty("Order",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Order, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Tag = (string[]) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal)this).Tag, __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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// API route config of the Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayApiRouteTypeConverter))] + public partial interface IGatewayApiRoute + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.TypeConverter.cs new file mode 100644 index 000000000000..14fedb9e566b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayApiRouteTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayApiRoute.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayApiRoute.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayApiRoute.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/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.cs new file mode 100644 index 000000000000..01dc5acbc5c5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.cs @@ -0,0 +1,223 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API route config of the Spring Cloud Gateway + public partial class GatewayApiRoute : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRouteInternal + { + + /// Backing field for property. + private string _description; + + /// + /// A description, will be applied to methods in the generated OpenAPI documentation. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string[] _filter; + + /// + /// To modify the request before sending it to the target endpoint, or the received response. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Filter { get => this._filter; set => this._filter = value; } + + /// Backing field for property. + private int? _order; + + /// Route processing order. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Order { get => this._order; set => this._order = value; } + + /// Backing field for property. + private string[] _predicate; + + /// + /// A number of conditions to evaluate a route for each request. Each predicate may be evaluated against request headers and + /// parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the + /// request. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Predicate { get => this._predicate; set => this._predicate = value; } + + /// Backing field for property. + private bool? _ssoEnabled; + + /// Enable sso validation. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? SsoEnabled { get => this._ssoEnabled; set => this._ssoEnabled = value; } + + /// Backing field for property. + private string[] _tag; + + /// + /// Classification tags, will be applied to methods in the generated OpenAPI documentation. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Tag { get => this._tag; set => this._tag = value; } + + /// Backing field for property. + private string _title; + + /// A title, will be applied to methods in the generated OpenAPI documentation. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Title { get => this._title; set => this._title = value; } + + /// Backing field for property. + private bool? _tokenRelay; + + /// + /// Pass currently-authenticated user's identity token to application service, default is 'false' + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? TokenRelay { get => this._tokenRelay; set => this._tokenRelay = value; } + + /// Backing field for property. + private string _uri; + + /// Full uri, will override `appName`. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Uri { get => this._uri; set => this._uri = value; } + + /// Creates an new instance. + public GatewayApiRoute() + { + + } + } + /// API route config of the Spring Cloud Gateway + public partial interface IGatewayApiRoute : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// A description, will be applied to methods in the generated OpenAPI documentation. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A description, will be applied to methods in the generated OpenAPI documentation.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// + /// To modify the request before sending it to the target endpoint, or the received response. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"To modify the request before sending it to the target endpoint, or the received response.", + SerializedName = @"filters", + PossibleTypes = new [] { typeof(string) })] + string[] Filter { get; set; } + /// Route processing order. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Route processing order.", + SerializedName = @"order", + PossibleTypes = new [] { typeof(int) })] + int? Order { get; set; } + /// + /// A number of conditions to evaluate a route for each request. Each predicate may be evaluated against request headers and + /// parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the + /// request. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A number of conditions to evaluate a route for each request. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request.", + SerializedName = @"predicates", + PossibleTypes = new [] { typeof(string) })] + string[] Predicate { get; set; } + /// Enable sso validation. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enable sso validation.", + SerializedName = @"ssoEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? SsoEnabled { get; set; } + /// + /// Classification tags, will be applied to methods in the generated OpenAPI documentation. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Classification tags, will be applied to methods in the generated OpenAPI documentation.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(string) })] + string[] Tag { get; set; } + /// A title, will be applied to methods in the generated OpenAPI documentation. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A title, will be applied to methods in the generated OpenAPI documentation.", + SerializedName = @"title", + PossibleTypes = new [] { typeof(string) })] + string Title { get; set; } + /// + /// Pass currently-authenticated user's identity token to application service, default is 'false' + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Pass currently-authenticated user's identity token to application service, default is 'false'", + SerializedName = @"tokenRelay", + PossibleTypes = new [] { typeof(bool) })] + bool? TokenRelay { get; set; } + /// Full uri, will override `appName`. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Full uri, will override `appName`.", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; set; } + + } + /// API route config of the Spring Cloud Gateway + internal partial interface IGatewayApiRouteInternal + + { + /// + /// A description, will be applied to methods in the generated OpenAPI documentation. + /// + string Description { get; set; } + /// + /// To modify the request before sending it to the target endpoint, or the received response. + /// + string[] Filter { get; set; } + /// Route processing order. + int? Order { get; set; } + /// + /// A number of conditions to evaluate a route for each request. Each predicate may be evaluated against request headers and + /// parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the + /// request. + /// + string[] Predicate { get; set; } + /// Enable sso validation. + bool? SsoEnabled { get; set; } + /// + /// Classification tags, will be applied to methods in the generated OpenAPI documentation. + /// + string[] Tag { get; set; } + /// A title, will be applied to methods in the generated OpenAPI documentation. + string Title { get; set; } + /// + /// Pass currently-authenticated user's identity token to application service, default is 'false' + /// + bool? TokenRelay { get; set; } + /// Full uri, will override `appName`. + string Uri { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.json.cs new file mode 100644 index 000000000000..a734d8719f0e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayApiRoute.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API route config of the Spring Cloud Gateway + public partial class GatewayApiRoute + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayApiRoute(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayApiRoute(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_title = If( json?.PropertyT("title"), out var __jsonTitle) ? (string)__jsonTitle : (string)Title;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_uri = If( json?.PropertyT("uri"), out var __jsonUri) ? (string)__jsonUri : (string)Uri;} + {_ssoEnabled = If( json?.PropertyT("ssoEnabled"), out var __jsonSsoEnabled) ? (bool?)__jsonSsoEnabled : SsoEnabled;} + {_tokenRelay = If( json?.PropertyT("tokenRelay"), out var __jsonTokenRelay) ? (bool?)__jsonTokenRelay : TokenRelay;} + {_predicate = If( json?.PropertyT("predicates"), out var __jsonPredicates) ? If( __jsonPredicates as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Predicate;} + {_filter = If( json?.PropertyT("filters"), out var __jsonFilters) ? If( __jsonFilters as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : Filter;} + {_order = If( json?.PropertyT("order"), out var __jsonOrder) ? (int?)__jsonOrder : Order;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? If( __jsonTags as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __j ? (string)(__j.ToString()) : null)) ))() : null : Tag;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._title)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._title.ToString()) : null, "title" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._uri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._uri.ToString()) : null, "uri" ,container.Add ); + AddIf( null != this._ssoEnabled ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._ssoEnabled) : null, "ssoEnabled" ,container.Add ); + AddIf( null != this._tokenRelay ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._tokenRelay) : null, "tokenRelay" ,container.Add ); + if (null != this._predicate) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._predicate ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("predicates",__w); + } + if (null != this._filter) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._filter ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("filters",__r); + } + AddIf( null != this._order ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._order) : null, "order" ,container.Add ); + if (null != this._tag) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __n in this._tag ) + { + AddIf(null != (((object)__n)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__n.ToString()) : null ,__m.Add); + } + container.Add("tags",__m); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.PowerShell.cs new file mode 100644 index 000000000000..6b45315abcf2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Cross-Origin Resource Sharing property + [System.ComponentModel.TypeConverter(typeof(GatewayCorsPropertiesTypeConverter))] + public partial class GatewayCorsProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayCorsProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayCorsProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayCorsProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AllowedOrigin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedOrigin = (string[]) content.GetValueForProperty("AllowedOrigin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedOrigin, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedMethod = (string[]) content.GetValueForProperty("AllowedMethod",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedMethod, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedHeader = (string[]) content.GetValueForProperty("AllowedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).MaxAge = (int?) content.GetValueForProperty("MaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).MaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AllowCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowCredentials = (bool?) content.GetValueForProperty("AllowCredentials",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowCredentials, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ExposedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).ExposedHeader = (string[]) content.GetValueForProperty("ExposedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).ExposedHeader, __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 GatewayCorsProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AllowedOrigin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedOrigin = (string[]) content.GetValueForProperty("AllowedOrigin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedOrigin, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedMethod = (string[]) content.GetValueForProperty("AllowedMethod",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedMethod, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("AllowedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedHeader = (string[]) content.GetValueForProperty("AllowedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("MaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).MaxAge = (int?) content.GetValueForProperty("MaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).MaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AllowCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowCredentials = (bool?) content.GetValueForProperty("AllowCredentials",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).AllowCredentials, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ExposedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).ExposedHeader = (string[]) content.GetValueForProperty("ExposedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)this).ExposedHeader, __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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Cross-Origin Resource Sharing property + [System.ComponentModel.TypeConverter(typeof(GatewayCorsPropertiesTypeConverter))] + public partial interface IGatewayCorsProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.TypeConverter.cs new file mode 100644 index 000000000000..6ccc4bf9b231 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayCorsPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayCorsProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayCorsProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayCorsProperties.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/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.cs new file mode 100644 index 000000000000..d9b8111986a8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Cross-Origin Resource Sharing property + public partial class GatewayCorsProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal + { + + /// Backing field for property. + private bool? _allowCredentials; + + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? AllowCredentials { get => this._allowCredentials; set => this._allowCredentials = value; } + + /// Backing field for property. + private string[] _allowedHeader; + + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] AllowedHeader { get => this._allowedHeader; set => this._allowedHeader = value; } + + /// Backing field for property. + private string[] _allowedMethod; + + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] AllowedMethod { get => this._allowedMethod; set => this._allowedMethod = value; } + + /// Backing field for property. + private string[] _allowedOrigin; + + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] AllowedOrigin { get => this._allowedOrigin; set => this._allowedOrigin = value; } + + /// Backing field for property. + private string[] _exposedHeader; + + /// HTTP response headers to expose for cross-site requests. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] ExposedHeader { get => this._exposedHeader; set => this._exposedHeader = value; } + + /// Backing field for property. + private int? _maxAge; + + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? MaxAge { get => this._maxAge; set => this._maxAge = value; } + + /// Creates an new instance. + public GatewayCorsProperties() + { + + } + } + /// Cross-Origin Resource Sharing property + public partial interface IGatewayCorsProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`.", + SerializedName = @"allowCredentials", + PossibleTypes = new [] { typeof(bool) })] + bool? AllowCredentials { get; set; } + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header.", + SerializedName = @"allowedHeaders", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedHeader { get; set; } + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are allowed by default.", + SerializedName = @"allowedMethods", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedMethod { get; set; } + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed origins to make cross-site requests. The special value `*` allows all domains.", + SerializedName = @"allowedOrigins", + PossibleTypes = new [] { typeof(string) })] + string[] AllowedOrigin { get; set; } + /// HTTP response headers to expose for cross-site requests. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HTTP response headers to expose for cross-site requests.", + SerializedName = @"exposedHeaders", + PossibleTypes = new [] { typeof(string) })] + string[] ExposedHeader { get; set; } + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How long, in seconds, the response from a pre-flight request can be cached by clients.", + SerializedName = @"maxAge", + PossibleTypes = new [] { typeof(int) })] + int? MaxAge { get; set; } + + } + /// Cross-Origin Resource Sharing property + internal partial interface IGatewayCorsPropertiesInternal + + { + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + bool? AllowCredentials { get; set; } + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + string[] AllowedHeader { get; set; } + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + string[] AllowedMethod { get; set; } + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + string[] AllowedOrigin { get; set; } + /// HTTP response headers to expose for cross-site requests. + string[] ExposedHeader { get; set; } + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + int? MaxAge { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.json.cs new file mode 100644 index 000000000000..e0335f9ff70d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCorsProperties.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Cross-Origin Resource Sharing property + public partial class GatewayCorsProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayCorsProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayCorsProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_allowedOrigin = If( json?.PropertyT("allowedOrigins"), out var __jsonAllowedOrigins) ? If( __jsonAllowedOrigins as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AllowedOrigin;} + {_allowedMethod = If( json?.PropertyT("allowedMethods"), out var __jsonAllowedMethods) ? If( __jsonAllowedMethods as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : AllowedMethod;} + {_allowedHeader = If( json?.PropertyT("allowedHeaders"), out var __jsonAllowedHeaders) ? If( __jsonAllowedHeaders as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __j ? (string)(__j.ToString()) : null)) ))() : null : AllowedHeader;} + {_maxAge = If( json?.PropertyT("maxAge"), out var __jsonMaxAge) ? (int?)__jsonMaxAge : MaxAge;} + {_allowCredentials = If( json?.PropertyT("allowCredentials"), out var __jsonAllowCredentials) ? (bool?)__jsonAllowCredentials : AllowCredentials;} + {_exposedHeader = If( json?.PropertyT("exposedHeaders"), out var __jsonExposedHeaders) ? If( __jsonExposedHeaders as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __e ? (string)(__e.ToString()) : null)) ))() : null : ExposedHeader;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._allowedOrigin) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._allowedOrigin ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("allowedOrigins",__w); + } + if (null != this._allowedMethod) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._allowedMethod ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("allowedMethods",__r); + } + if (null != this._allowedHeader) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __n in this._allowedHeader ) + { + AddIf(null != (((object)__n)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__n.ToString()) : null ,__m.Add); + } + container.Add("allowedHeaders",__m); + } + AddIf( null != this._maxAge ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._maxAge) : null, "maxAge" ,container.Add ); + AddIf( null != this._allowCredentials ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._allowCredentials) : null, "allowCredentials" ,container.Add ); + if (null != this._exposedHeader) + { + var __h = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __i in this._exposedHeader ) + { + AddIf(null != (((object)__i)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__i.ToString()) : null ,__h.Add); + } + container.Add("exposedHeaders",__h); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.PowerShell.cs new file mode 100644 index 000000000000..87610d6e184a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The properties of custom domain for Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayCustomDomainPropertiesTypeConverter))] + public partial class GatewayCustomDomainProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayCustomDomainProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayCustomDomainProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayCustomDomainProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainPropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainPropertiesInternal)this).Thumbprint, 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 GatewayCustomDomainProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainPropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainPropertiesInternal)this).Thumbprint, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties of custom domain for Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayCustomDomainPropertiesTypeConverter))] + public partial interface IGatewayCustomDomainProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.TypeConverter.cs new file mode 100644 index 000000000000..843ca8574fb5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayCustomDomainPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayCustomDomainProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayCustomDomainProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayCustomDomainProperties.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/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.cs new file mode 100644 index 000000000000..40b9b39f7ece --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The properties of custom domain for Spring Cloud Gateway + public partial class GatewayCustomDomainProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainPropertiesInternal + { + + /// Backing field for property. + private string _thumbprint; + + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Thumbprint { get => this._thumbprint; set => this._thumbprint = value; } + + /// Creates an new instance. + public GatewayCustomDomainProperties() + { + + } + } + /// The properties of custom domain for Spring Cloud Gateway + public partial interface IGatewayCustomDomainProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; set; } + + } + /// The properties of custom domain for Spring Cloud Gateway + internal partial interface IGatewayCustomDomainPropertiesInternal + + { + /// The thumbprint of bound certificate. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.json.cs new file mode 100644 index 000000000000..27d2c83b682d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The properties of custom domain for Spring Cloud Gateway + public partial class GatewayCustomDomainProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayCustomDomainProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayCustomDomainProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_thumbprint = If( json?.PropertyT("thumbprint"), out var __jsonThumbprint) ? (string)__jsonThumbprint : (string)Thumbprint;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._thumbprint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._thumbprint.ToString()) : null, "thumbprint" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.PowerShell.cs new file mode 100644 index 000000000000..54c545314358 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Custom domain of the Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayCustomDomainResourceTypeConverter))] + public partial class GatewayCustomDomainResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayCustomDomainResource(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayCustomDomainResource(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayCustomDomainResource(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal)this).Thumbprint, 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 GatewayCustomDomainResource(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal)this).Thumbprint, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Custom domain of the Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayCustomDomainResourceTypeConverter))] + public partial interface IGatewayCustomDomainResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.TypeConverter.cs new file mode 100644 index 000000000000..260c4168a74c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayCustomDomainResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayCustomDomainResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayCustomDomainResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayCustomDomainResource.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/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.cs new file mode 100644 index 000000000000..6656d4ecc504 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain of the Spring Cloud Gateway + public partial class GatewayCustomDomainResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties _property; + + /// The properties of custom domain for Spring Cloud Gateway + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainProperties()); set => this._property = value; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainPropertiesInternal)Property).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainPropertiesInternal)Property).Thumbprint = value ?? null; } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public GatewayCustomDomainResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Custom domain of the Spring Cloud Gateway + public partial interface IGatewayCustomDomainResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The thumbprint of bound certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + string Thumbprint { get; set; } + + } + /// Custom domain of the Spring Cloud Gateway + internal partial interface IGatewayCustomDomainResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The properties of custom domain for Spring Cloud Gateway + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainProperties Property { get; set; } + /// The thumbprint of bound certificate. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.json.cs new file mode 100644 index 000000000000..e02f88049757 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain of the Spring Cloud Gateway + public partial class GatewayCustomDomainResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayCustomDomainResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayCustomDomainResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainProperties.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..6d5cc970049c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.PowerShell.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Spring Cloud Gateway custom domain resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(GatewayCustomDomainResourceCollectionTypeConverter))] + public partial class GatewayCustomDomainResourceCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayCustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayCustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayCustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal)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 GatewayCustomDomainResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Spring Cloud Gateway custom domain resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(GatewayCustomDomainResourceCollectionTypeConverter))] + public partial interface IGatewayCustomDomainResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..f3ea4b061b1c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayCustomDomainResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayCustomDomainResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayCustomDomainResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayCustomDomainResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.cs new file mode 100644 index 000000000000..491d741c3197 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Spring Cloud Gateway custom domain resources and a possible link for next set + /// + public partial class GatewayCustomDomainResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource[] _value; + + /// Collection of Spring Cloud Gateway custom domain resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public GatewayCustomDomainResourceCollection() + { + + } + } + /// Object that includes an array of Spring Cloud Gateway custom domain resources and a possible link for next set + public partial interface IGatewayCustomDomainResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Spring Cloud Gateway custom domain resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Spring Cloud Gateway custom domain resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource[] Value { get; set; } + + } + /// Object that includes an array of Spring Cloud Gateway custom domain resources and a possible link for next set + internal partial interface IGatewayCustomDomainResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Spring Cloud Gateway custom domain resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.json.cs new file mode 100644 index 000000000000..fb1f7d640994 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayCustomDomainResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Spring Cloud Gateway custom domain resources and a possible link for next set + /// + public partial class GatewayCustomDomainResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayCustomDomainResourceCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayCustomDomainResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.PowerShell.cs new file mode 100644 index 000000000000..b46b060df0fb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Sensitive properties for Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayEnvSecretsTypeConverter))] + public partial class GatewayEnvSecrets + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayEnvSecrets(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.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayEnvSecrets(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.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayEnvSecrets(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 GatewayEnvSecrets(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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Sensitive properties for Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayEnvSecretsTypeConverter))] + public partial interface IGatewayEnvSecrets + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.TypeConverter.cs new file mode 100644 index 000000000000..c4813d3b4cd1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayEnvSecretsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayEnvSecrets.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayEnvSecrets.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayEnvSecrets.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/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.cs new file mode 100644 index 000000000000..14acafa47b9e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sensitive properties for Spring Cloud Gateway + public partial class GatewayEnvSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecretsInternal + { + + /// Creates an new instance. + public GatewayEnvSecrets() + { + + } + } + /// Sensitive properties for Spring Cloud Gateway + public partial interface IGatewayEnvSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Sensitive properties for Spring Cloud Gateway + internal partial interface IGatewayEnvSecretsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.dictionary.cs new file mode 100644 index 000000000000..17b0cd8240ed --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class GatewayEnvSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.GatewayEnvSecrets source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.json.cs new file mode 100644 index 000000000000..59c6b546b1ef --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayEnvSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sensitive properties for Spring Cloud Gateway + public partial class GatewayEnvSecrets + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayEnvSecrets(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal GatewayEnvSecrets(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, null ,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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.PowerShell.cs new file mode 100644 index 000000000000..71eedb8674d5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of instances belong to the Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayInstanceTypeConverter))] + public partial class GatewayInstance + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayInstance DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayInstance(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.AppPlatform.Models.Api20221101Preview.IGatewayInstance DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayInstance(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.AppPlatform.Models.Api20221101Preview.IGatewayInstance FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayInstance(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.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal)this).Status, 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 GatewayInstance(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.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal)this).Status, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of instances belong to the Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayInstanceTypeConverter))] + public partial interface IGatewayInstance + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.TypeConverter.cs new file mode 100644 index 000000000000..381641b8b8ec --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayInstanceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayInstance.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayInstance.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayInstance.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/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.cs new file mode 100644 index 000000000000..2d712e038c47 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Spring Cloud Gateway + public partial class GatewayInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstanceInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the Spring Cloud Gateway instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _status; + + /// Status of the Spring Cloud Gateway instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Status { get => this._status; } + + /// Creates an new instance. + public GatewayInstance() + { + + } + } + /// Collection of instances belong to the Spring Cloud Gateway + public partial interface IGatewayInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name of the Spring Cloud Gateway instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the Spring Cloud Gateway instance", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Status of the Spring Cloud Gateway instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the Spring Cloud Gateway instance", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; } + + } + /// Collection of instances belong to the Spring Cloud Gateway + internal partial interface IGatewayInstanceInternal + + { + /// Name of the Spring Cloud Gateway instance + string Name { get; set; } + /// Status of the Spring Cloud Gateway instance + string Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.json.cs new file mode 100644 index 000000000000..924dd03372ab --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Spring Cloud Gateway + public partial class GatewayInstance + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayInstance(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayInstance(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.PowerShell.cs new file mode 100644 index 000000000000..7acb0be4b130 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Properties of the Spring Cloud Gateway Operator. + [System.ComponentModel.TypeConverter(typeof(GatewayOperatorPropertiesTypeConverter))] + public partial class GatewayOperatorProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayOperatorProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayOperatorProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayOperatorProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestInstanceCount, (__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 GatewayOperatorProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)this).ResourceRequestInstanceCount, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Spring Cloud Gateway Operator. + [System.ComponentModel.TypeConverter(typeof(GatewayOperatorPropertiesTypeConverter))] + public partial interface IGatewayOperatorProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.TypeConverter.cs new file mode 100644 index 000000000000..7ace14aa10d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayOperatorPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayOperatorProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayOperatorProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayOperatorProperties.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/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.cs new file mode 100644 index 000000000000..68884e710e5a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of the Spring Cloud Gateway Operator. + public partial class GatewayOperatorProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] _instance; + + /// Collection of instances belong to Spring Cloud Gateway operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get => this._instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).Cpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).InstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).InstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).Memory = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests _resourceRequest; + + /// The requested resource quantity for required CPU and Memory. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequests()); } + + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).Cpu; } + + /// Instance count of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).InstanceCount; } + + /// Memory allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)ResourceRequest).Memory; } + + /// Creates an new instance. + public GatewayOperatorProperties() + { + + } + } + /// Properties of the Spring Cloud Gateway Operator. + public partial interface IGatewayOperatorProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Collection of instances belong to Spring Cloud Gateway operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Spring Cloud Gateway operator.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get; } + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Spring Cloud Gateway Operator instance.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Instance count of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Spring Cloud Gateway Operator.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// Memory allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Spring Cloud Gateway Operator instance.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + /// Properties of the Spring Cloud Gateway Operator. + internal partial interface IGatewayOperatorPropertiesInternal + + { + /// Collection of instances belong to Spring Cloud Gateway operator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests ResourceRequest { get; set; } + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + string ResourceRequestCpu { get; set; } + /// Instance count of the Spring Cloud Gateway Operator. + int? ResourceRequestInstanceCount { get; set; } + /// Memory allocated to each Spring Cloud Gateway Operator instance. + string ResourceRequestMemory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.json.cs new file mode 100644 index 000000000000..0521e4aadb5b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorProperties.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of the Spring Cloud Gateway Operator. + public partial class GatewayOperatorProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayOperatorProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayOperatorProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IGatewayInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstance.FromJson(__u) )) ))() : null : Instance;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._instance ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("instances",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..7470ab0d2bad --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Properties of the Spring Cloud Gateway Operator. + [System.ComponentModel.TypeConverter(typeof(GatewayOperatorResourceRequestsTypeConverter))] + public partial class GatewayOperatorResourceRequests + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayOperatorResourceRequests(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.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayOperatorResourceRequests(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.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayOperatorResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).InstanceCount, (__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 GatewayOperatorResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal)this).InstanceCount, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Spring Cloud Gateway Operator. + [System.ComponentModel.TypeConverter(typeof(GatewayOperatorResourceRequestsTypeConverter))] + public partial interface IGatewayOperatorResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..3577c2961843 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayOperatorResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayOperatorResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayOperatorResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayOperatorResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.cs new file mode 100644 index 000000000000..e498fb45f284 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of the Spring Cloud Gateway Operator. + public partial class GatewayOperatorResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private int? _instanceCount; + + /// Instance count of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? InstanceCount { get => this._instanceCount; } + + /// Backing field for property. + private string _memory; + + /// Memory allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for InstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal.InstanceCount { get => this._instanceCount; set { {_instanceCount = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequestsInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Creates an new instance. + public GatewayOperatorResourceRequests() + { + + } + } + /// Properties of the Spring Cloud Gateway Operator. + public partial interface IGatewayOperatorResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Spring Cloud Gateway Operator instance.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// Instance count of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Spring Cloud Gateway Operator.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? InstanceCount { get; } + /// Memory allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Spring Cloud Gateway Operator instance.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + + } + /// Properties of the Spring Cloud Gateway Operator. + internal partial interface IGatewayOperatorResourceRequestsInternal + + { + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + string Cpu { get; set; } + /// Instance count of the Spring Cloud Gateway Operator. + int? InstanceCount { get; set; } + /// Memory allocated to each Spring Cloud Gateway Operator instance. + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.json.cs new file mode 100644 index 000000000000..4d2d442be18d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayOperatorResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of the Spring Cloud Gateway Operator. + public partial class GatewayOperatorResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayOperatorResourceRequests(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayOperatorResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + {_instanceCount = If( json?.PropertyT("instanceCount"), out var __jsonInstanceCount) ? (int?)__jsonInstanceCount : InstanceCount;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._instanceCount ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._instanceCount) : null, "instanceCount" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.PowerShell.cs new file mode 100644 index 000000000000..ace2df61b705 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.PowerShell.cs @@ -0,0 +1,426 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Spring Cloud Gateway properties payload + [System.ComponentModel.TypeConverter(typeof(GatewayPropertiesTypeConverter))] + public partial class GatewayProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ApiMetadataProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties) content.GetValueForProperty("ApiMetadataProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("CorsProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorsProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties) content.GetValueForProperty("CorsProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorsProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables) content.GetValueForProperty("EnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("OperatorProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties) content.GetValueForProperty("OperatorProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState.CreateFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ApmType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApmType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[]) content.GetValueForProperty("ApmType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApmType, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType.CreateFrom)); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyIssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyIssuerUri = (string) content.GetValueForProperty("SsoPropertyIssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyIssuerUri, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyTitle")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyTitle = (string) content.GetValueForProperty("ApiMetadataPropertyTitle",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyTitle, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyDescription = (string) content.GetValueForProperty("ApiMetadataPropertyDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyDescription, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyDocumentation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyDocumentation = (string) content.GetValueForProperty("ApiMetadataPropertyDocumentation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyDocumentation, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyVersion = (string) content.GetValueForProperty("ApiMetadataPropertyVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyVersion, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyServerUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyServerUrl = (string) content.GetValueForProperty("ApiMetadataPropertyServerUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyServerUrl, global::System.Convert.ToString); + } + if (content.Contains("CorPropertyAllowedOrigin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedOrigin = (string[]) content.GetValueForProperty("CorPropertyAllowedOrigin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedOrigin, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyAllowedMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedMethod = (string[]) content.GetValueForProperty("CorPropertyAllowedMethod",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedMethod, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyAllowedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedHeader = (string[]) content.GetValueForProperty("CorPropertyAllowedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyMaxAge = (int?) content.GetValueForProperty("CorPropertyMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CorPropertyAllowCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowCredentials = (bool?) content.GetValueForProperty("CorPropertyAllowCredentials",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowCredentials, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CorPropertyExposedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyExposedHeader = (string[]) content.GetValueForProperty("CorPropertyExposedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyExposedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EnvironmentVariableProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariableProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) content.GetValueForProperty("EnvironmentVariableProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariableProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariableSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariableSecret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) content.GetValueForProperty("EnvironmentVariableSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariableSecret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecretsTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequestsCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestsCpu = (string) content.GetValueForProperty("ResourceRequestsCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestsCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestsMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestsMemory = (string) content.GetValueForProperty("ResourceRequestsMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestsMemory, global::System.Convert.ToString); + } + if (content.Contains("OperatorPropertyResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertyResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests) content.GetValueForProperty("OperatorPropertyResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertyResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("OperatorPropertyInstance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertyInstance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("OperatorPropertyInstance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertyInstance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("OperatorPropertiesResourceRequestsCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertiesResourceRequestsCpu = (string) content.GetValueForProperty("OperatorPropertiesResourceRequestsCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertiesResourceRequestsCpu, global::System.Convert.ToString); + } + if (content.Contains("OperatorPropertiesResourceRequestsMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertiesResourceRequestsMemory = (string) content.GetValueForProperty("OperatorPropertiesResourceRequestsMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertiesResourceRequestsMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestInstanceCount, (__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 GatewayProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ApiMetadataProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties) content.GetValueForProperty("ApiMetadataProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("CorsProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorsProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties) content.GetValueForProperty("CorsProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorsProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables) content.GetValueForProperty("EnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("OperatorProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties) content.GetValueForProperty("OperatorProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState.CreateFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ApmType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApmType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[]) content.GetValueForProperty("ApmType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApmType, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType.CreateFrom)); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyIssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyIssuerUri = (string) content.GetValueForProperty("SsoPropertyIssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).SsoPropertyIssuerUri, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyTitle")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyTitle = (string) content.GetValueForProperty("ApiMetadataPropertyTitle",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyTitle, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyDescription = (string) content.GetValueForProperty("ApiMetadataPropertyDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyDescription, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyDocumentation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyDocumentation = (string) content.GetValueForProperty("ApiMetadataPropertyDocumentation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyDocumentation, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyVersion = (string) content.GetValueForProperty("ApiMetadataPropertyVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyVersion, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyServerUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyServerUrl = (string) content.GetValueForProperty("ApiMetadataPropertyServerUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ApiMetadataPropertyServerUrl, global::System.Convert.ToString); + } + if (content.Contains("CorPropertyAllowedOrigin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedOrigin = (string[]) content.GetValueForProperty("CorPropertyAllowedOrigin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedOrigin, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyAllowedMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedMethod = (string[]) content.GetValueForProperty("CorPropertyAllowedMethod",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedMethod, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyAllowedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedHeader = (string[]) content.GetValueForProperty("CorPropertyAllowedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyMaxAge = (int?) content.GetValueForProperty("CorPropertyMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CorPropertyAllowCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowCredentials = (bool?) content.GetValueForProperty("CorPropertyAllowCredentials",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyAllowCredentials, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CorPropertyExposedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyExposedHeader = (string[]) content.GetValueForProperty("CorPropertyExposedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).CorPropertyExposedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EnvironmentVariableProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariableProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) content.GetValueForProperty("EnvironmentVariableProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariableProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariableSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariableSecret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) content.GetValueForProperty("EnvironmentVariableSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).EnvironmentVariableSecret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecretsTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequestsCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestsCpu = (string) content.GetValueForProperty("ResourceRequestsCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestsCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestsMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestsMemory = (string) content.GetValueForProperty("ResourceRequestsMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestsMemory, global::System.Convert.ToString); + } + if (content.Contains("OperatorPropertyResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertyResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests) content.GetValueForProperty("OperatorPropertyResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertyResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("OperatorPropertyInstance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertyInstance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("OperatorPropertyInstance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertyInstance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("OperatorPropertiesResourceRequestsCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertiesResourceRequestsCpu = (string) content.GetValueForProperty("OperatorPropertiesResourceRequestsCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertiesResourceRequestsCpu, global::System.Convert.ToString); + } + if (content.Contains("OperatorPropertiesResourceRequestsMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertiesResourceRequestsMemory = (string) content.GetValueForProperty("OperatorPropertiesResourceRequestsMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).OperatorPropertiesResourceRequestsMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)this).ResourceRequestInstanceCount, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Spring Cloud Gateway properties payload + [System.ComponentModel.TypeConverter(typeof(GatewayPropertiesTypeConverter))] + public partial interface IGatewayProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.TypeConverter.cs new file mode 100644 index 000000000000..68ff0771b98d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayProperties.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/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.cs new file mode 100644 index 000000000000..4874e43d6dae --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.cs @@ -0,0 +1,616 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Spring Cloud Gateway properties payload + public partial class GatewayProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties _apiMetadataProperty; + + /// API metadata property for Spring Cloud Gateway + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties ApiMetadataProperty { get => (this._apiMetadataProperty = this._apiMetadataProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataProperties()); set => this._apiMetadataProperty = value; } + + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).Description = value ?? null; } + + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyDocumentation { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).Documentation; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).Documentation = value ?? null; } + + /// Base URL that API consumers will use to access APIs on the Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyServerUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).ServerUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).ServerUrl = value ?? null; } + + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyTitle { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).Title; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).Title = value ?? null; } + + /// Version of APIs available on this Gateway instance (default: `unspecified`). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataPropertiesInternal)ApiMetadataProperty).Version = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] _apmType; + + /// Collection of APM type used in Spring Cloud Gateway + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] ApmType { get => this._apmType; set => this._apmType = value; } + + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? CorPropertyAllowCredentials { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).AllowCredentials; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).AllowCredentials = value ?? default(bool); } + + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CorPropertyAllowedHeader { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).AllowedHeader; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).AllowedHeader = value ?? null /* arrayOf */; } + + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CorPropertyAllowedMethod { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).AllowedMethod; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).AllowedMethod = value ?? null /* arrayOf */; } + + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CorPropertyAllowedOrigin { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).AllowedOrigin; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).AllowedOrigin = value ?? null /* arrayOf */; } + + /// HTTP response headers to expose for cross-site requests. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CorPropertyExposedHeader { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).ExposedHeader; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).ExposedHeader = value ?? null /* arrayOf */; } + + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? CorPropertyMaxAge { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).MaxAge; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsPropertiesInternal)CorsProperty).MaxAge = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties _corsProperty; + + /// Cross-Origin Resource Sharing property + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties CorsProperty { get => (this._corsProperty = this._corsProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsProperties()); set => this._corsProperty = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables _environmentVariable; + + /// Environment variables of Spring Cloud Gateway + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables EnvironmentVariable { get => (this._environmentVariable = this._environmentVariable ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariables()); set => this._environmentVariable = value; } + + /// Non-sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties EnvironmentVariableProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)EnvironmentVariable).Property; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)EnvironmentVariable).Property = value ?? null /* model class */; } + + /// Sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets EnvironmentVariableSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)EnvironmentVariable).Secret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)EnvironmentVariable).Secret = value ?? null /* model class */; } + + /// Backing field for property. + private bool? _httpsOnly; + + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? HttpsOnly { get => this._httpsOnly; set => this._httpsOnly = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] _instance; + + /// Collection of instances belong to Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get => this._instance; } + + /// Internal Acessors for ApiMetadataProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.ApiMetadataProperty { get => (this._apiMetadataProperty = this._apiMetadataProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataProperties()); set { {_apiMetadataProperty = value;} } } + + /// Internal Acessors for CorsProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.CorsProperty { get => (this._corsProperty = this._corsProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsProperties()); set { {_corsProperty = value;} } } + + /// Internal Acessors for EnvironmentVariable + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.EnvironmentVariable { get => (this._environmentVariable = this._environmentVariable ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariables()); set { {_environmentVariable = value;} } } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for OperatorPropertiesResourceRequestsCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.OperatorPropertiesResourceRequestsCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestCpu = value; } + + /// Internal Acessors for OperatorPropertiesResourceRequestsMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.OperatorPropertiesResourceRequestsMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestMemory = value; } + + /// Internal Acessors for OperatorProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.OperatorProperty { get => (this._operatorProperty = this._operatorProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorProperties()); set { {_operatorProperty = value;} } } + + /// Internal Acessors for OperatorPropertyInstance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.OperatorPropertyInstance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).Instance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).Instance = value; } + + /// Internal Acessors for OperatorPropertyResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.OperatorPropertyResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequest = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestInstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestInstanceCount = value; } + + /// Internal Acessors for SsoProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.SsoProperty { get => (this._ssoProperty = this._ssoProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoProperties()); set { {_ssoProperty = value;} } } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal.Url { get => this._url; set { {_url = value;} } } + + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string OperatorPropertiesResourceRequestsCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestCpu; } + + /// Memory allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string OperatorPropertiesResourceRequestsMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestMemory; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties _operatorProperty; + + /// Properties of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties OperatorProperty { get => (this._operatorProperty = this._operatorProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorProperties()); } + + /// Collection of instances belong to Spring Cloud Gateway operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] OperatorPropertyInstance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).Instance; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? _provisioningState; + + /// State of the Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private bool? _public; + + /// Indicates whether the Spring Cloud Gateway exposes endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? Public { get => this._public; set => this._public = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests _resourceRequest; + + /// The requested resource quantity for required CPU and Memory. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequests()); set => this._resourceRequest = value; } + + /// Instance count of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorPropertiesInternal)OperatorProperty).ResourceRequestInstanceCount; } + + /// Cpu allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestsCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)ResourceRequest).Cpu = value ?? null; } + + /// Memory allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestsMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)ResourceRequest).Memory = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties _ssoProperty; + + /// Single sign-on related configuration + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties SsoProperty { get => (this._ssoProperty = this._ssoProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoProperties()); set => this._ssoProperty = value; } + + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).ClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).ClientId = value ?? null; } + + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).ClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).ClientSecret = value ?? null; } + + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyIssuerUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).IssuerUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).IssuerUri = value ?? null; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] SsoPropertyScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).Scope; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)SsoProperty).Scope = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _url; + + /// URL of the Spring Cloud Gateway, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Url { get => this._url; } + + /// Creates an new instance. + public GatewayProperties() + { + + } + } + /// Spring Cloud Gateway properties payload + public partial interface IGatewayProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes the API routes configured.`)", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyDescription { get; set; } + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Location of additional documentation for the APIs available on the Gateway instance", + SerializedName = @"documentation", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyDocumentation { get; set; } + /// Base URL that API consumers will use to access APIs on the Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Base URL that API consumers will use to access APIs on the Gateway instance.", + SerializedName = @"serverUrl", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyServerUrl { get; set; } + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`)", + SerializedName = @"title", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyTitle { get; set; } + /// Version of APIs available on this Gateway instance (default: `unspecified`). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of APIs available on this Gateway instance (default: `unspecified`).", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyVersion { get; set; } + /// Collection of APM type used in Spring Cloud Gateway + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of APM type used in Spring Cloud Gateway", + SerializedName = @"apmTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] ApmType { get; set; } + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`.", + SerializedName = @"allowCredentials", + PossibleTypes = new [] { typeof(bool) })] + bool? CorPropertyAllowCredentials { get; set; } + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header.", + SerializedName = @"allowedHeaders", + PossibleTypes = new [] { typeof(string) })] + string[] CorPropertyAllowedHeader { get; set; } + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are allowed by default.", + SerializedName = @"allowedMethods", + PossibleTypes = new [] { typeof(string) })] + string[] CorPropertyAllowedMethod { get; set; } + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed origins to make cross-site requests. The special value `*` allows all domains.", + SerializedName = @"allowedOrigins", + PossibleTypes = new [] { typeof(string) })] + string[] CorPropertyAllowedOrigin { get; set; } + /// HTTP response headers to expose for cross-site requests. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HTTP response headers to expose for cross-site requests.", + SerializedName = @"exposedHeaders", + PossibleTypes = new [] { typeof(string) })] + string[] CorPropertyExposedHeader { get; set; } + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How long, in seconds, the response from a pre-flight request can be cached by clients.", + SerializedName = @"maxAge", + PossibleTypes = new [] { typeof(int) })] + int? CorPropertyMaxAge { get; set; } + /// Non-sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-sensitive properties", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties EnvironmentVariableProperty { get; set; } + /// Sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sensitive properties", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets EnvironmentVariableSecret { get; set; } + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? HttpsOnly { get; set; } + /// Collection of instances belong to Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Spring Cloud Gateway.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get; } + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Spring Cloud Gateway Operator instance.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string OperatorPropertiesResourceRequestsCpu { get; } + /// Memory allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Spring Cloud Gateway Operator instance.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string OperatorPropertiesResourceRequestsMemory { get; } + /// Collection of instances belong to Spring Cloud Gateway operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Spring Cloud Gateway operator.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] OperatorPropertyInstance { get; } + /// State of the Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Spring Cloud Gateway.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get; } + /// Indicates whether the Spring Cloud Gateway exposes endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the Spring Cloud Gateway exposes endpoint.", + SerializedName = @"public", + PossibleTypes = new [] { typeof(bool) })] + bool? Public { get; set; } + /// Instance count of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Spring Cloud Gateway Operator.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// Cpu allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Cpu allocated to each Spring Cloud Gateway instance.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestsCpu { get; set; } + /// Memory allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Memory allocated to each Spring Cloud Gateway instance.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestsMemory { get; set; } + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientSecret { get; set; } + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of Issuer Identifier", + SerializedName = @"issuerUri", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyIssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + string[] SsoPropertyScope { get; set; } + /// URL of the Spring Cloud Gateway, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the Spring Cloud Gateway, exposed when 'public' is true.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; } + + } + /// Spring Cloud Gateway properties payload + internal partial interface IGatewayPropertiesInternal + + { + /// API metadata property for Spring Cloud Gateway + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties ApiMetadataProperty { get; set; } + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + string ApiMetadataPropertyDescription { get; set; } + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + string ApiMetadataPropertyDocumentation { get; set; } + /// Base URL that API consumers will use to access APIs on the Gateway instance. + string ApiMetadataPropertyServerUrl { get; set; } + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + string ApiMetadataPropertyTitle { get; set; } + /// Version of APIs available on this Gateway instance (default: `unspecified`). + string ApiMetadataPropertyVersion { get; set; } + /// Collection of APM type used in Spring Cloud Gateway + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] ApmType { get; set; } + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + bool? CorPropertyAllowCredentials { get; set; } + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + string[] CorPropertyAllowedHeader { get; set; } + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + string[] CorPropertyAllowedMethod { get; set; } + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + string[] CorPropertyAllowedOrigin { get; set; } + /// HTTP response headers to expose for cross-site requests. + string[] CorPropertyExposedHeader { get; set; } + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + int? CorPropertyMaxAge { get; set; } + /// Cross-Origin Resource Sharing property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties CorsProperty { get; set; } + /// Environment variables of Spring Cloud Gateway + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables EnvironmentVariable { get; set; } + /// Non-sensitive properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties EnvironmentVariableProperty { get; set; } + /// Sensitive properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets EnvironmentVariableSecret { get; set; } + /// Indicate if only https is allowed. + bool? HttpsOnly { get; set; } + /// Collection of instances belong to Spring Cloud Gateway. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get; set; } + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + string OperatorPropertiesResourceRequestsCpu { get; set; } + /// Memory allocated to each Spring Cloud Gateway Operator instance. + string OperatorPropertiesResourceRequestsMemory { get; set; } + /// Properties of the Spring Cloud Gateway Operator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties OperatorProperty { get; set; } + /// Collection of instances belong to Spring Cloud Gateway operator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] OperatorPropertyInstance { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests OperatorPropertyResourceRequest { get; set; } + /// State of the Spring Cloud Gateway. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get; set; } + /// Indicates whether the Spring Cloud Gateway exposes endpoint. + bool? Public { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests ResourceRequest { get; set; } + /// Instance count of the Spring Cloud Gateway Operator. + int? ResourceRequestInstanceCount { get; set; } + /// Cpu allocated to each Spring Cloud Gateway instance. + string ResourceRequestsCpu { get; set; } + /// Memory allocated to each Spring Cloud Gateway instance. + string ResourceRequestsMemory { get; set; } + /// Single sign-on related configuration + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties SsoProperty { get; set; } + /// The public identifier for the application + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + string SsoPropertyClientSecret { get; set; } + /// The URI of Issuer Identifier + string SsoPropertyIssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + string[] SsoPropertyScope { get; set; } + /// URL of the Spring Cloud Gateway, exposed when 'public' is true. + string Url { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.json.cs new file mode 100644 index 000000000000..cf631b3b88ba --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Spring Cloud Gateway properties payload + public partial class GatewayProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_ssoProperty = If( json?.PropertyT("ssoProperties"), out var __jsonSsoProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoProperties.FromJson(__jsonSsoProperties) : SsoProperty;} + {_apiMetadataProperty = If( json?.PropertyT("apiMetadataProperties"), out var __jsonApiMetadataProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataProperties.FromJson(__jsonApiMetadataProperties) : ApiMetadataProperty;} + {_corsProperty = If( json?.PropertyT("corsProperties"), out var __jsonCorsProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsProperties.FromJson(__jsonCorsProperties) : CorsProperty;} + {_environmentVariable = If( json?.PropertyT("environmentVariables"), out var __jsonEnvironmentVariables) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariables.FromJson(__jsonEnvironmentVariables) : EnvironmentVariable;} + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_operatorProperty = If( json?.PropertyT("operatorProperties"), out var __jsonOperatorProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorProperties.FromJson(__jsonOperatorProperties) : OperatorProperty;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_public = If( json?.PropertyT("public"), out var __jsonPublic) ? (bool?)__jsonPublic : Public;} + {_url = If( json?.PropertyT("url"), out var __jsonUrl) ? (string)__jsonUrl : (string)Url;} + {_httpsOnly = If( json?.PropertyT("httpsOnly"), out var __jsonHttpsOnly) ? (bool?)__jsonHttpsOnly : HttpsOnly;} + {_apmType = If( json?.PropertyT("apmTypes"), out var __jsonApmTypes) ? If( __jsonApmTypes as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Support.ApmType) (__u is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString __t ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType)(__t.ToString()) : ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType)""))) ))() : null : ApmType;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IGatewayInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstance.FromJson(__p) )) ))() : null : Instance;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._ssoProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._ssoProperty.ToJson(null,serializationMode) : null, "ssoProperties" ,container.Add ); + AddIf( null != this._apiMetadataProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._apiMetadataProperty.ToJson(null,serializationMode) : null, "apiMetadataProperties" ,container.Add ); + AddIf( null != this._corsProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._corsProperty.ToJson(null,serializationMode) : null, "corsProperties" ,container.Add ); + AddIf( null != this._environmentVariable ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._environmentVariable.ToJson(null,serializationMode) : null, "environmentVariables" ,container.Add ); + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._operatorProperty ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._operatorProperty.ToJson(null,serializationMode) : null, "operatorProperties" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != this._public ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._public) : null, "public" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._url)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._url.ToString()) : null, "url" ,container.Add ); + } + AddIf( null != this._httpsOnly ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._httpsOnly) : null, "httpsOnly" ,container.Add ); + if (null != this._apmType) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._apmType ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("apmTypes",__w); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._instance ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("instances",__r); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.PowerShell.cs new file mode 100644 index 000000000000..96380ed8e8e6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Environment variables of Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayPropertiesEnvironmentVariablesTypeConverter))] + public partial class GatewayPropertiesEnvironmentVariables + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayPropertiesEnvironmentVariables(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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayPropertiesEnvironmentVariables(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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayPropertiesEnvironmentVariables(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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)this).Secret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecretsTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal GatewayPropertiesEnvironmentVariables(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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Secret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)this).Secret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) content.GetValueForProperty("Secret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal)this).Secret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecretsTypeConverter.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Environment variables of Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayPropertiesEnvironmentVariablesTypeConverter))] + public partial interface IGatewayPropertiesEnvironmentVariables + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.TypeConverter.cs new file mode 100644 index 000000000000..ccf1ed793a5e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayPropertiesEnvironmentVariablesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayPropertiesEnvironmentVariables.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayPropertiesEnvironmentVariables.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayPropertiesEnvironmentVariables.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/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.cs new file mode 100644 index 000000000000..7a0c4f5cd64f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Environment variables of Spring Cloud Gateway + public partial class GatewayPropertiesEnvironmentVariables : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties _property; + + /// Non-sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesProperties()); set => this._property = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets _secret; + + /// Sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets Secret { get => (this._secret = this._secret ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecrets()); set => this._secret = value; } + + /// Creates an new instance. + public GatewayPropertiesEnvironmentVariables() + { + + } + } + /// Environment variables of Spring Cloud Gateway + public partial interface IGatewayPropertiesEnvironmentVariables : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Non-sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-sensitive properties", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties Property { get; set; } + /// Sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sensitive properties", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets Secret { get; set; } + + } + /// Environment variables of Spring Cloud Gateway + internal partial interface IGatewayPropertiesEnvironmentVariablesInternal + + { + /// Non-sensitive properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties Property { get; set; } + /// Sensitive properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets Secret { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.json.cs new file mode 100644 index 000000000000..a2a2458dc5ed --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariables.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Environment variables of Spring Cloud Gateway + public partial class GatewayPropertiesEnvironmentVariables + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayPropertiesEnvironmentVariables(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayPropertiesEnvironmentVariables(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesProperties.FromJson(__jsonProperties) : Property;} + {_secret = If( json?.PropertyT("secrets"), out var __jsonSecrets) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecrets.FromJson(__jsonSecrets) : Secret;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._secret ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._secret.ToJson(null,serializationMode) : null, "secrets" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.PowerShell.cs new file mode 100644 index 000000000000..54e783ded141 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Non-sensitive properties + [System.ComponentModel.TypeConverter(typeof(GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter))] + public partial class GatewayPropertiesEnvironmentVariablesProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayPropertiesEnvironmentVariablesProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayPropertiesEnvironmentVariablesProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayPropertiesEnvironmentVariablesProperties(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 GatewayPropertiesEnvironmentVariablesProperties(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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Non-sensitive properties + [System.ComponentModel.TypeConverter(typeof(GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter))] + public partial interface IGatewayPropertiesEnvironmentVariablesProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.TypeConverter.cs new file mode 100644 index 000000000000..6b6770c6e18c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayPropertiesEnvironmentVariablesProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayPropertiesEnvironmentVariablesProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayPropertiesEnvironmentVariablesProperties.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/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.cs new file mode 100644 index 000000000000..2d983e6b252e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Non-sensitive properties + public partial class GatewayPropertiesEnvironmentVariablesProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesPropertiesInternal + { + + /// + /// Creates an new instance. + /// + public GatewayPropertiesEnvironmentVariablesProperties() + { + + } + } + /// Non-sensitive properties + public partial interface IGatewayPropertiesEnvironmentVariablesProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Non-sensitive properties + internal partial interface IGatewayPropertiesEnvironmentVariablesPropertiesInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.dictionary.cs new file mode 100644 index 000000000000..fbf8f7217d04 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class GatewayPropertiesEnvironmentVariablesProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesProperties source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.json.cs new file mode 100644 index 000000000000..58f8133694fe --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Non-sensitive properties + public partial class GatewayPropertiesEnvironmentVariablesProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayPropertiesEnvironmentVariablesProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal GatewayPropertiesEnvironmentVariablesProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, null ,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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.PowerShell.cs new file mode 100644 index 000000000000..c07b98c05706 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Sensitive properties + [System.ComponentModel.TypeConverter(typeof(GatewayPropertiesEnvironmentVariablesSecretsTypeConverter))] + public partial class GatewayPropertiesEnvironmentVariablesSecrets + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayPropertiesEnvironmentVariablesSecrets(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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayPropertiesEnvironmentVariablesSecrets(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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayPropertiesEnvironmentVariablesSecrets(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 GatewayPropertiesEnvironmentVariablesSecrets(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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Sensitive properties + [System.ComponentModel.TypeConverter(typeof(GatewayPropertiesEnvironmentVariablesSecretsTypeConverter))] + public partial interface IGatewayPropertiesEnvironmentVariablesSecrets + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.TypeConverter.cs new file mode 100644 index 000000000000..6790e57b6581 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayPropertiesEnvironmentVariablesSecretsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayPropertiesEnvironmentVariablesSecrets.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayPropertiesEnvironmentVariablesSecrets.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayPropertiesEnvironmentVariablesSecrets.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/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.cs new file mode 100644 index 000000000000..4431614c1431 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sensitive properties + public partial class GatewayPropertiesEnvironmentVariablesSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecretsInternal + { + + /// + /// Creates an new instance. + /// + public GatewayPropertiesEnvironmentVariablesSecrets() + { + + } + } + /// Sensitive properties + public partial interface IGatewayPropertiesEnvironmentVariablesSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Sensitive properties + internal partial interface IGatewayPropertiesEnvironmentVariablesSecretsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.dictionary.cs new file mode 100644 index 000000000000..804fc931d893 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class GatewayPropertiesEnvironmentVariablesSecrets : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecrets source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.json.cs new file mode 100644 index 000000000000..78da3e6cebf7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayPropertiesEnvironmentVariablesSecrets.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sensitive properties + public partial class GatewayPropertiesEnvironmentVariablesSecrets + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayPropertiesEnvironmentVariablesSecrets(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal GatewayPropertiesEnvironmentVariablesSecrets(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, null ,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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.PowerShell.cs new file mode 100644 index 000000000000..c46e2c44e179 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.PowerShell.cs @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Spring Cloud Gateway resource + [System.ComponentModel.TypeConverter(typeof(GatewayResourceTypeConverter))] + public partial class GatewayResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayResource(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.AppPlatform.Models.Api20221101Preview.IGatewayResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayResource(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.AppPlatform.Models.Api20221101Preview.IGatewayResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayResource(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.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ApiMetadataProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties) content.GetValueForProperty("ApiMetadataProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("CorsProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorsProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties) content.GetValueForProperty("CorsProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorsProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables) content.GetValueForProperty("EnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("OperatorProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties) content.GetValueForProperty("OperatorProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState.CreateFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ApmType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApmType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[]) content.GetValueForProperty("ApmType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApmType, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType.CreateFrom)); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyIssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyIssuerUri = (string) content.GetValueForProperty("SsoPropertyIssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyIssuerUri, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyTitle")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyTitle = (string) content.GetValueForProperty("ApiMetadataPropertyTitle",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyTitle, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyDescription = (string) content.GetValueForProperty("ApiMetadataPropertyDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyDescription, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyDocumentation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyDocumentation = (string) content.GetValueForProperty("ApiMetadataPropertyDocumentation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyDocumentation, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyVersion = (string) content.GetValueForProperty("ApiMetadataPropertyVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyVersion, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyServerUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyServerUrl = (string) content.GetValueForProperty("ApiMetadataPropertyServerUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyServerUrl, global::System.Convert.ToString); + } + if (content.Contains("CorPropertyAllowedOrigin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedOrigin = (string[]) content.GetValueForProperty("CorPropertyAllowedOrigin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedOrigin, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyAllowedMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedMethod = (string[]) content.GetValueForProperty("CorPropertyAllowedMethod",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedMethod, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyAllowedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedHeader = (string[]) content.GetValueForProperty("CorPropertyAllowedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyMaxAge = (int?) content.GetValueForProperty("CorPropertyMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CorPropertyAllowCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowCredentials = (bool?) content.GetValueForProperty("CorPropertyAllowCredentials",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowCredentials, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CorPropertyExposedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyExposedHeader = (string[]) content.GetValueForProperty("CorPropertyExposedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyExposedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EnvironmentVariableProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariableProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) content.GetValueForProperty("EnvironmentVariableProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariableProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariableSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariableSecret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) content.GetValueForProperty("EnvironmentVariableSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariableSecret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecretsTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequestsCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestsCpu = (string) content.GetValueForProperty("ResourceRequestsCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestsCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestsMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestsMemory = (string) content.GetValueForProperty("ResourceRequestsMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestsMemory, global::System.Convert.ToString); + } + if (content.Contains("OperatorPropertyResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertyResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests) content.GetValueForProperty("OperatorPropertyResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertyResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("OperatorPropertyInstance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertyInstance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("OperatorPropertyInstance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertyInstance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("OperatorPropertiesResourceRequestsCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertiesResourceRequestsCpu = (string) content.GetValueForProperty("OperatorPropertiesResourceRequestsCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertiesResourceRequestsCpu, global::System.Convert.ToString); + } + if (content.Contains("OperatorPropertiesResourceRequestsMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertiesResourceRequestsMemory = (string) content.GetValueForProperty("OperatorPropertiesResourceRequestsMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertiesResourceRequestsMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestInstanceCount, (__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 GatewayResource(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.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SsoProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties) content.GetValueForProperty("SsoProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SsoPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ApiMetadataProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties) content.GetValueForProperty("ApiMetadataProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiMetadataPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("CorsProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorsProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties) content.GetValueForProperty("CorsProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorsProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCorsPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariable")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables) content.GetValueForProperty("EnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("OperatorProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties) content.GetValueForProperty("OperatorProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState.CreateFrom); + } + if (content.Contains("Public")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Url, global::System.Convert.ToString); + } + if (content.Contains("HttpsOnly")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ApmType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApmType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[]) content.GetValueForProperty("ApmType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApmType, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType.CreateFrom)); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoPropertyScope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyScope = (string[]) content.GetValueForProperty("SsoPropertyScope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyScope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SsoPropertyClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyClientId = (string) content.GetValueForProperty("SsoPropertyClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyClientId, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyClientSecret = (string) content.GetValueForProperty("SsoPropertyClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyClientSecret, global::System.Convert.ToString); + } + if (content.Contains("SsoPropertyIssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyIssuerUri = (string) content.GetValueForProperty("SsoPropertyIssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).SsoPropertyIssuerUri, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyTitle")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyTitle = (string) content.GetValueForProperty("ApiMetadataPropertyTitle",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyTitle, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyDescription = (string) content.GetValueForProperty("ApiMetadataPropertyDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyDescription, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyDocumentation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyDocumentation = (string) content.GetValueForProperty("ApiMetadataPropertyDocumentation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyDocumentation, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyVersion = (string) content.GetValueForProperty("ApiMetadataPropertyVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyVersion, global::System.Convert.ToString); + } + if (content.Contains("ApiMetadataPropertyServerUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyServerUrl = (string) content.GetValueForProperty("ApiMetadataPropertyServerUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ApiMetadataPropertyServerUrl, global::System.Convert.ToString); + } + if (content.Contains("CorPropertyAllowedOrigin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedOrigin = (string[]) content.GetValueForProperty("CorPropertyAllowedOrigin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedOrigin, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyAllowedMethod")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedMethod = (string[]) content.GetValueForProperty("CorPropertyAllowedMethod",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedMethod, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyAllowedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedHeader = (string[]) content.GetValueForProperty("CorPropertyAllowedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("CorPropertyMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyMaxAge = (int?) content.GetValueForProperty("CorPropertyMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CorPropertyAllowCredentials")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowCredentials = (bool?) content.GetValueForProperty("CorPropertyAllowCredentials",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyAllowCredentials, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("CorPropertyExposedHeader")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyExposedHeader = (string[]) content.GetValueForProperty("CorPropertyExposedHeader",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).CorPropertyExposedHeader, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("EnvironmentVariableProperty")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariableProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) content.GetValueForProperty("EnvironmentVariableProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariableProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EnvironmentVariableSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariableSecret = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) content.GetValueForProperty("EnvironmentVariableSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).EnvironmentVariableSecret, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayPropertiesEnvironmentVariablesSecretsTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceRequestsCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestsCpu = (string) content.GetValueForProperty("ResourceRequestsCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestsCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestsMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestsMemory = (string) content.GetValueForProperty("ResourceRequestsMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestsMemory, global::System.Convert.ToString); + } + if (content.Contains("OperatorPropertyResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertyResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests) content.GetValueForProperty("OperatorPropertyResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertyResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayOperatorResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("OperatorPropertyInstance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertyInstance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[]) content.GetValueForProperty("OperatorPropertyInstance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertyInstance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("OperatorPropertiesResourceRequestsCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertiesResourceRequestsCpu = (string) content.GetValueForProperty("OperatorPropertiesResourceRequestsCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertiesResourceRequestsCpu, global::System.Convert.ToString); + } + if (content.Contains("OperatorPropertiesResourceRequestsMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertiesResourceRequestsMemory = (string) content.GetValueForProperty("OperatorPropertiesResourceRequestsMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).OperatorPropertiesResourceRequestsMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal)this).ResourceRequestInstanceCount, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Spring Cloud Gateway resource + [System.ComponentModel.TypeConverter(typeof(GatewayResourceTypeConverter))] + public partial interface IGatewayResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.TypeConverter.cs new file mode 100644 index 000000000000..e97fbdfd851b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayResource.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/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.cs new file mode 100644 index 000000000000..4d9cc4b87aae --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.cs @@ -0,0 +1,693 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Spring Cloud Gateway resource + public partial class GatewayResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyDescription = value ?? null; } + + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyDocumentation { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyDocumentation; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyDocumentation = value ?? null; } + + /// Base URL that API consumers will use to access APIs on the Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyServerUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyServerUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyServerUrl = value ?? null; } + + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyTitle { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyTitle; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyTitle = value ?? null; } + + /// Version of APIs available on this Gateway instance (default: `unspecified`). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ApiMetadataPropertyVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataPropertyVersion = value ?? null; } + + /// Collection of APM type used in Spring Cloud Gateway + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] ApmType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApmType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApmType = value ?? null /* arrayOf */; } + + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? CorPropertyAllowCredentials { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyAllowCredentials; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyAllowCredentials = value ?? default(bool); } + + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CorPropertyAllowedHeader { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyAllowedHeader; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyAllowedHeader = value ?? null /* arrayOf */; } + + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CorPropertyAllowedMethod { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyAllowedMethod; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyAllowedMethod = value ?? null /* arrayOf */; } + + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CorPropertyAllowedOrigin { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyAllowedOrigin; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyAllowedOrigin = value ?? null /* arrayOf */; } + + /// HTTP response headers to expose for cross-site requests. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] CorPropertyExposedHeader { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyExposedHeader; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyExposedHeader = value ?? null /* arrayOf */; } + + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? CorPropertyMaxAge { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyMaxAge; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorPropertyMaxAge = value ?? default(int); } + + /// Non-sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties EnvironmentVariableProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).EnvironmentVariableProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).EnvironmentVariableProperty = value ?? null /* model class */; } + + /// Sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets EnvironmentVariableSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).EnvironmentVariableSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).EnvironmentVariableSecret = value ?? null /* model class */; } + + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? HttpsOnly { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).HttpsOnly; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).HttpsOnly = value ?? default(bool); } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Collection of instances belong to Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).Instance; } + + /// Internal Acessors for ApiMetadataProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.ApiMetadataProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ApiMetadataProperty = value; } + + /// Internal Acessors for CorsProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.CorsProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorsProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).CorsProperty = value; } + + /// Internal Acessors for EnvironmentVariable + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.EnvironmentVariable { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).EnvironmentVariable; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).EnvironmentVariable = value; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).Instance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).Instance = value; } + + /// Internal Acessors for OperatorPropertiesResourceRequestsCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.OperatorPropertiesResourceRequestsCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertiesResourceRequestsCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertiesResourceRequestsCpu = value; } + + /// Internal Acessors for OperatorPropertiesResourceRequestsMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.OperatorPropertiesResourceRequestsMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertiesResourceRequestsMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertiesResourceRequestsMemory = value; } + + /// Internal Acessors for OperatorProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.OperatorProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorProperty = value; } + + /// Internal Acessors for OperatorPropertyInstance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.OperatorPropertyInstance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertyInstance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertyInstance = value; } + + /// Internal Acessors for OperatorPropertyResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.OperatorPropertyResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertyResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertyResourceRequest = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.ResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequest = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequestInstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequestInstanceCount = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for SsoProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.SsoProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoProperty = value; } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceInternal.Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).Url; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).Url = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string OperatorPropertiesResourceRequestsCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertiesResourceRequestsCpu; } + + /// Memory allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string OperatorPropertiesResourceRequestsMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertiesResourceRequestsMemory; } + + /// Collection of instances belong to Spring Cloud Gateway operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] OperatorPropertyInstance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).OperatorPropertyInstance; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties _property; + + /// Spring Cloud Gateway properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayProperties()); set => this._property = value; } + + /// State of the Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ProvisioningState; } + + /// Indicates whether the Spring Cloud Gateway exposes endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? Public { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).Public; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).Public = value ?? default(bool); } + + /// Instance count of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequestInstanceCount; } + + /// Cpu allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestsCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequestsCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequestsCpu = value ?? null; } + + /// Memory allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestsMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequestsMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).ResourceRequestsMemory = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku _sku; + + /// Sku of the Spring Cloud Gateway resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set => this._sku = value; } + + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity = value ?? default(int); } + + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name = value ?? null; } + + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoPropertyClientId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoPropertyClientId = value ?? null; } + + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyClientSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoPropertyClientSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoPropertyClientSecret = value ?? null; } + + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SsoPropertyIssuerUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoPropertyIssuerUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoPropertyIssuerUri = value ?? null; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] SsoPropertyScope { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoPropertyScope; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).SsoPropertyScope = value ?? null /* arrayOf */; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// URL of the Spring Cloud Gateway, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesInternal)Property).Url; } + + /// Creates an new instance. + public GatewayResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Spring Cloud Gateway resource + public partial interface IGatewayResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes the API routes configured.`)", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyDescription { get; set; } + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Location of additional documentation for the APIs available on the Gateway instance", + SerializedName = @"documentation", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyDocumentation { get; set; } + /// Base URL that API consumers will use to access APIs on the Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Base URL that API consumers will use to access APIs on the Gateway instance.", + SerializedName = @"serverUrl", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyServerUrl { get; set; } + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`)", + SerializedName = @"title", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyTitle { get; set; } + /// Version of APIs available on this Gateway instance (default: `unspecified`). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of APIs available on this Gateway instance (default: `unspecified`).", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string ApiMetadataPropertyVersion { get; set; } + /// Collection of APM type used in Spring Cloud Gateway + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of APM type used in Spring Cloud Gateway", + SerializedName = @"apmTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] ApmType { get; set; } + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`.", + SerializedName = @"allowCredentials", + PossibleTypes = new [] { typeof(bool) })] + bool? CorPropertyAllowCredentials { get; set; } + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header.", + SerializedName = @"allowedHeaders", + PossibleTypes = new [] { typeof(string) })] + string[] CorPropertyAllowedHeader { get; set; } + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are allowed by default.", + SerializedName = @"allowedMethods", + PossibleTypes = new [] { typeof(string) })] + string[] CorPropertyAllowedMethod { get; set; } + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed origins to make cross-site requests. The special value `*` allows all domains.", + SerializedName = @"allowedOrigins", + PossibleTypes = new [] { typeof(string) })] + string[] CorPropertyAllowedOrigin { get; set; } + /// HTTP response headers to expose for cross-site requests. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HTTP response headers to expose for cross-site requests.", + SerializedName = @"exposedHeaders", + PossibleTypes = new [] { typeof(string) })] + string[] CorPropertyExposedHeader { get; set; } + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How long, in seconds, the response from a pre-flight request can be cached by clients.", + SerializedName = @"maxAge", + PossibleTypes = new [] { typeof(int) })] + int? CorPropertyMaxAge { get; set; } + /// Non-sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-sensitive properties", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties EnvironmentVariableProperty { get; set; } + /// Sensitive properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sensitive properties", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets EnvironmentVariableSecret { get; set; } + /// Indicate if only https is allowed. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(bool) })] + bool? HttpsOnly { get; set; } + /// Collection of instances belong to Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Spring Cloud Gateway.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get; } + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Spring Cloud Gateway Operator instance.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string OperatorPropertiesResourceRequestsCpu { get; } + /// Memory allocated to each Spring Cloud Gateway Operator instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Spring Cloud Gateway Operator instance.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string OperatorPropertiesResourceRequestsMemory { get; } + /// Collection of instances belong to Spring Cloud Gateway operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Spring Cloud Gateway operator.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] OperatorPropertyInstance { get; } + /// State of the Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Spring Cloud Gateway.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get; } + /// Indicates whether the Spring Cloud Gateway exposes endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the Spring Cloud Gateway exposes endpoint.", + SerializedName = @"public", + PossibleTypes = new [] { typeof(bool) })] + bool? Public { get; set; } + /// Instance count of the Spring Cloud Gateway Operator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Spring Cloud Gateway Operator.", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// Cpu allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Cpu allocated to each Spring Cloud Gateway instance.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestsCpu { get; set; } + /// Memory allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Memory allocated to each Spring Cloud Gateway instance.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestsMemory { get; set; } + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string SkuName { get; set; } + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string SkuTier { get; set; } + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyClientSecret { get; set; } + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of Issuer Identifier", + SerializedName = @"issuerUri", + PossibleTypes = new [] { typeof(string) })] + string SsoPropertyIssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + string[] SsoPropertyScope { get; set; } + /// URL of the Spring Cloud Gateway, exposed when 'public' is true. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"URL of the Spring Cloud Gateway, exposed when 'public' is true.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; } + + } + /// Spring Cloud Gateway resource + internal partial interface IGatewayResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// API metadata property for Spring Cloud Gateway + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiMetadataProperties ApiMetadataProperty { get; set; } + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + string ApiMetadataPropertyDescription { get; set; } + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + string ApiMetadataPropertyDocumentation { get; set; } + /// Base URL that API consumers will use to access APIs on the Gateway instance. + string ApiMetadataPropertyServerUrl { get; set; } + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + string ApiMetadataPropertyTitle { get; set; } + /// Version of APIs available on this Gateway instance (default: `unspecified`). + string ApiMetadataPropertyVersion { get; set; } + /// Collection of APM type used in Spring Cloud Gateway + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] ApmType { get; set; } + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + bool? CorPropertyAllowCredentials { get; set; } + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + string[] CorPropertyAllowedHeader { get; set; } + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + string[] CorPropertyAllowedMethod { get; set; } + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + string[] CorPropertyAllowedOrigin { get; set; } + /// HTTP response headers to expose for cross-site requests. + string[] CorPropertyExposedHeader { get; set; } + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + int? CorPropertyMaxAge { get; set; } + /// Cross-Origin Resource Sharing property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCorsProperties CorsProperty { get; set; } + /// Environment variables of Spring Cloud Gateway + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariables EnvironmentVariable { get; set; } + /// Non-sensitive properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties EnvironmentVariableProperty { get; set; } + /// Sensitive properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets EnvironmentVariableSecret { get; set; } + /// Indicate if only https is allowed. + bool? HttpsOnly { get; set; } + /// Collection of instances belong to Spring Cloud Gateway. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] Instance { get; set; } + /// Cpu allocated to each Spring Cloud Gateway Operator instance. + string OperatorPropertiesResourceRequestsCpu { get; set; } + /// Memory allocated to each Spring Cloud Gateway Operator instance. + string OperatorPropertiesResourceRequestsMemory { get; set; } + /// Properties of the Spring Cloud Gateway Operator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorProperties OperatorProperty { get; set; } + /// Collection of instances belong to Spring Cloud Gateway operator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayInstance[] OperatorPropertyInstance { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayOperatorResourceRequests OperatorPropertyResourceRequest { get; set; } + /// Spring Cloud Gateway properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayProperties Property { get; set; } + /// State of the Spring Cloud Gateway. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get; set; } + /// Indicates whether the Spring Cloud Gateway exposes endpoint. + bool? Public { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests ResourceRequest { get; set; } + /// Instance count of the Spring Cloud Gateway Operator. + int? ResourceRequestInstanceCount { get; set; } + /// Cpu allocated to each Spring Cloud Gateway instance. + string ResourceRequestsCpu { get; set; } + /// Memory allocated to each Spring Cloud Gateway instance. + string ResourceRequestsMemory { get; set; } + /// Sku of the Spring Cloud Gateway resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get; set; } + /// Current capacity of the target resource + int? SkuCapacity { get; set; } + /// Name of the Sku + string SkuName { get; set; } + /// Tier of the Sku + string SkuTier { get; set; } + /// Single sign-on related configuration + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties SsoProperty { get; set; } + /// The public identifier for the application + string SsoPropertyClientId { get; set; } + /// The secret known only to the application and the authorization server + string SsoPropertyClientSecret { get; set; } + /// The URI of Issuer Identifier + string SsoPropertyIssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + string[] SsoPropertyScope { get; set; } + /// URL of the Spring Cloud Gateway, exposed when 'public' is true. + string Url { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.json.cs new file mode 100644 index 000000000000..0339458aae29 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Spring Cloud Gateway resource + public partial class GatewayResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku.FromJson(__jsonSku) : Sku;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..cc24a705c84e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of gateway resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(GatewayResourceCollectionTypeConverter))] + public partial class GatewayResourceCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal)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 GatewayResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of gateway resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(GatewayResourceCollectionTypeConverter))] + public partial interface IGatewayResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..c2f4eda92fa0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.cs new file mode 100644 index 000000000000..e09eacede7c4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of gateway resources and a possible link for next set + /// + public partial class GatewayResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource[] _value; + + /// Collection of gateway resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public GatewayResourceCollection() + { + + } + } + /// Object that includes an array of gateway resources and a possible link for next set + public partial interface IGatewayResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of gateway resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of gateway resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource[] Value { get; set; } + + } + /// Object that includes an array of gateway resources and a possible link for next set + internal partial interface IGatewayResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of gateway resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.json.cs new file mode 100644 index 000000000000..b598082f4bc5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of gateway resources and a possible link for next set + /// + public partial class GatewayResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayResourceCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IGatewayResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..7d0f1f212f91 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Resource request payload of Spring Cloud Gateway. + [System.ComponentModel.TypeConverter(typeof(GatewayResourceRequestsTypeConverter))] + public partial class GatewayResourceRequests + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayResourceRequests(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.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayResourceRequests(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.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)this).Memory, 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 GatewayResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal)this).Memory, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Resource request payload of Spring Cloud Gateway. + [System.ComponentModel.TypeConverter(typeof(GatewayResourceRequestsTypeConverter))] + public partial interface IGatewayResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..2312cc29b0be --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.cs new file mode 100644 index 000000000000..a4a8e7061310 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource request payload of Spring Cloud Gateway. + public partial class GatewayResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// Cpu allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; set => this._cpu = value; } + + /// Backing field for property. + private string _memory; + + /// Memory allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; set => this._memory = value; } + + /// Creates an new instance. + public GatewayResourceRequests() + { + + } + } + /// Resource request payload of Spring Cloud Gateway. + public partial interface IGatewayResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Cpu allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Cpu allocated to each Spring Cloud Gateway instance.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; set; } + /// Memory allocated to each Spring Cloud Gateway instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Memory allocated to each Spring Cloud Gateway instance.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; set; } + + } + /// Resource request payload of Spring Cloud Gateway. + internal partial interface IGatewayResourceRequestsInternal + + { + /// Cpu allocated to each Spring Cloud Gateway instance. + string Cpu { get; set; } + /// Memory allocated to each Spring Cloud Gateway instance. + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.json.cs new file mode 100644 index 000000000000..91d37c49a583 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource request payload of Spring Cloud Gateway. + public partial class GatewayResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayResourceRequests(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.PowerShell.cs new file mode 100644 index 000000000000..d5257b78d8e9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// OpenAPI properties of Spring Cloud Gateway route config. + [System.ComponentModel.TypeConverter(typeof(GatewayRouteConfigOpenApiPropertiesTypeConverter))] + public partial class GatewayRouteConfigOpenApiProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayRouteConfigOpenApiProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayRouteConfigOpenApiProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayRouteConfigOpenApiProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiPropertiesInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiPropertiesInternal)this).Uri, 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 GatewayRouteConfigOpenApiProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiPropertiesInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiPropertiesInternal)this).Uri, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// OpenAPI properties of Spring Cloud Gateway route config. + [System.ComponentModel.TypeConverter(typeof(GatewayRouteConfigOpenApiPropertiesTypeConverter))] + public partial interface IGatewayRouteConfigOpenApiProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.TypeConverter.cs new file mode 100644 index 000000000000..bb1b1551d45e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayRouteConfigOpenApiPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayRouteConfigOpenApiProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayRouteConfigOpenApiProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayRouteConfigOpenApiProperties.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/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.cs new file mode 100644 index 000000000000..6b25c397ea8f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// OpenAPI properties of Spring Cloud Gateway route config. + public partial class GatewayRouteConfigOpenApiProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiPropertiesInternal + { + + /// Backing field for property. + private string _uri; + + /// The URI of OpenAPI specification. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Uri { get => this._uri; set => this._uri = value; } + + /// Creates an new instance. + public GatewayRouteConfigOpenApiProperties() + { + + } + } + /// OpenAPI properties of Spring Cloud Gateway route config. + public partial interface IGatewayRouteConfigOpenApiProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The URI of OpenAPI specification. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of OpenAPI specification.", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; set; } + + } + /// OpenAPI properties of Spring Cloud Gateway route config. + internal partial interface IGatewayRouteConfigOpenApiPropertiesInternal + + { + /// The URI of OpenAPI specification. + string Uri { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.json.cs new file mode 100644 index 000000000000..b96541675447 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigOpenApiProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// OpenAPI properties of Spring Cloud Gateway route config. + public partial class GatewayRouteConfigOpenApiProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayRouteConfigOpenApiProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayRouteConfigOpenApiProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_uri = If( json?.PropertyT("uri"), out var __jsonUri) ? (string)__jsonUri : (string)Uri;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._uri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._uri.ToString()) : null, "uri" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.PowerShell.cs new file mode 100644 index 000000000000..37b7d6da6bb6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// API route config of the Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayRouteConfigPropertiesTypeConverter))] + public partial class GatewayRouteConfigProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayRouteConfigProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayRouteConfigProperties(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayRouteConfigProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OpenApi")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).OpenApi = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties) content.GetValueForProperty("OpenApi",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).OpenApi, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState.CreateFrom); + } + if (content.Contains("AppResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).AppResourceId = (string) content.GetValueForProperty("AppResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).AppResourceId, global::System.Convert.ToString); + } + if (content.Contains("Protocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Protocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol?) content.GetValueForProperty("Protocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Protocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol.CreateFrom); + } + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Route = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[]) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Route, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiRouteTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).SsoEnabled = (bool?) content.GetValueForProperty("SsoEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).SsoEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Predicate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Predicate = (string[]) content.GetValueForProperty("Predicate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Predicate, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Filter = (string[]) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Filter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OpenApiUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).OpenApiUri = (string) content.GetValueForProperty("OpenApiUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).OpenApiUri, 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 GatewayRouteConfigProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OpenApi")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).OpenApi = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties) content.GetValueForProperty("OpenApi",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).OpenApi, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState.CreateFrom); + } + if (content.Contains("AppResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).AppResourceId = (string) content.GetValueForProperty("AppResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).AppResourceId, global::System.Convert.ToString); + } + if (content.Contains("Protocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Protocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol?) content.GetValueForProperty("Protocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Protocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol.CreateFrom); + } + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Route = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[]) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Route, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiRouteTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).SsoEnabled = (bool?) content.GetValueForProperty("SsoEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).SsoEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Predicate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Predicate = (string[]) content.GetValueForProperty("Predicate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Predicate, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Filter = (string[]) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).Filter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OpenApiUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).OpenApiUri = (string) content.GetValueForProperty("OpenApiUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)this).OpenApiUri, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// API route config of the Spring Cloud Gateway + [System.ComponentModel.TypeConverter(typeof(GatewayRouteConfigPropertiesTypeConverter))] + public partial interface IGatewayRouteConfigProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.TypeConverter.cs new file mode 100644 index 000000000000..f524a41d91a1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayRouteConfigPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayRouteConfigProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayRouteConfigProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayRouteConfigProperties.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/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.cs new file mode 100644 index 000000000000..be68227895d3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API route config of the Spring Cloud Gateway + public partial class GatewayRouteConfigProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal + { + + /// Backing field for property. + private string _appResourceId; + + /// + /// The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppResourceId { get => this._appResourceId; set => this._appResourceId = value; } + + /// Backing field for property. + private string[] _filter; + + /// + /// To modify the request before sending it to the target endpoint, or the received response in app level. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Filter { get => this._filter; set => this._filter = value; } + + /// Internal Acessors for OpenApi + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal.OpenApi { get => (this._openApi = this._openApi ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiProperties()); set { {_openApi = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties _openApi; + + /// OpenAPI properties of Spring Cloud Gateway route config. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties OpenApi { get => (this._openApi = this._openApi ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiProperties()); set => this._openApi = value; } + + /// The URI of OpenAPI specification. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string OpenApiUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiPropertiesInternal)OpenApi).Uri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiPropertiesInternal)OpenApi).Uri = value ?? null; } + + /// Backing field for property. + private string[] _predicate; + + /// + /// A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request + /// headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be + /// matched to the request. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Predicate { get => this._predicate; set => this._predicate = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol? _protocol; + + /// Protocol of routed Azure Spring Apps applications. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol? Protocol { get => this._protocol; set => this._protocol = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? _provisioningState; + + /// State of the Spring Cloud Gateway route config. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] _route; + + /// + /// Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] Route { get => this._route; set => this._route = value; } + + /// Backing field for property. + private bool? _ssoEnabled; + + /// Enable Single Sign-On in app level. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? SsoEnabled { get => this._ssoEnabled; set => this._ssoEnabled = value; } + + /// Creates an new instance. + public GatewayRouteConfigProperties() + { + + } + } + /// API route config of the Spring Cloud Gateway + public partial interface IGatewayRouteConfigProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource Id of the Azure Spring Apps app, required unless route defines `uri`.", + SerializedName = @"appResourceId", + PossibleTypes = new [] { typeof(string) })] + string AppResourceId { get; set; } + /// + /// To modify the request before sending it to the target endpoint, or the received response in app level. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"To modify the request before sending it to the target endpoint, or the received response in app level.", + SerializedName = @"filters", + PossibleTypes = new [] { typeof(string) })] + string[] Filter { get; set; } + /// The URI of OpenAPI specification. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of OpenAPI specification.", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string OpenApiUri { get; set; } + /// + /// A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request + /// headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be + /// matched to the request. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request.", + SerializedName = @"predicates", + PossibleTypes = new [] { typeof(string) })] + string[] Predicate { get; set; } + /// Protocol of routed Azure Spring Apps applications. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Protocol of routed Azure Spring Apps applications.", + SerializedName = @"protocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol? Protocol { get; set; } + /// State of the Spring Cloud Gateway route config. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Spring Cloud Gateway route config.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get; } + /// + /// Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`.", + SerializedName = @"routes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] Route { get; set; } + /// Enable Single Sign-On in app level. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enable Single Sign-On in app level.", + SerializedName = @"ssoEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? SsoEnabled { get; set; } + + } + /// API route config of the Spring Cloud Gateway + internal partial interface IGatewayRouteConfigPropertiesInternal + + { + /// + /// The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + /// + string AppResourceId { get; set; } + /// + /// To modify the request before sending it to the target endpoint, or the received response in app level. + /// + string[] Filter { get; set; } + /// OpenAPI properties of Spring Cloud Gateway route config. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties OpenApi { get; set; } + /// The URI of OpenAPI specification. + string OpenApiUri { get; set; } + /// + /// A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request + /// headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be + /// matched to the request. + /// + string[] Predicate { get; set; } + /// Protocol of routed Azure Spring Apps applications. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol? Protocol { get; set; } + /// State of the Spring Cloud Gateway route config. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get; set; } + /// + /// Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] Route { get; set; } + /// Enable Single Sign-On in app level. + bool? SsoEnabled { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.json.cs new file mode 100644 index 000000000000..a2e69de57650 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigProperties.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// API route config of the Spring Cloud Gateway + public partial class GatewayRouteConfigProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayRouteConfigProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayRouteConfigProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_openApi = If( json?.PropertyT("openApi"), out var __jsonOpenApi) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiProperties.FromJson(__jsonOpenApi) : OpenApi;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_appResourceId = If( json?.PropertyT("appResourceId"), out var __jsonAppResourceId) ? (string)__jsonAppResourceId : (string)AppResourceId;} + {_protocol = If( json?.PropertyT("protocol"), out var __jsonProtocol) ? (string)__jsonProtocol : (string)Protocol;} + {_route = If( json?.PropertyT("routes"), out var __jsonRoutes) ? If( __jsonRoutes as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiRoute.FromJson(__u) )) ))() : null : Route;} + {_ssoEnabled = If( json?.PropertyT("ssoEnabled"), out var __jsonSsoEnabled) ? (bool?)__jsonSsoEnabled : SsoEnabled;} + {_predicate = If( json?.PropertyT("predicates"), out var __jsonPredicates) ? If( __jsonPredicates as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : Predicate;} + {_filter = If( json?.PropertyT("filters"), out var __jsonFilters) ? If( __jsonFilters as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __j ? (string)(__j.ToString()) : null)) ))() : null : Filter;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._openApi ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._openApi.ToJson(null,serializationMode) : null, "openApi" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._appResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._appResourceId.ToString()) : null, "appResourceId" ,container.Add ); + AddIf( null != (((object)this._protocol)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._protocol.ToString()) : null, "protocol" ,container.Add ); + if (null != this._route) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._route ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("routes",__w); + } + AddIf( null != this._ssoEnabled ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._ssoEnabled) : null, "ssoEnabled" ,container.Add ); + if (null != this._predicate) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._predicate ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("predicates",__r); + } + if (null != this._filter) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __n in this._filter ) + { + AddIf(null != (((object)__n)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__n.ToString()) : null ,__m.Add); + } + container.Add("filters",__m); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.PowerShell.cs new file mode 100644 index 000000000000..978a22e8982b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.PowerShell.cs @@ -0,0 +1,298 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Spring Cloud Gateway route config resource + [System.ComponentModel.TypeConverter(typeof(GatewayRouteConfigResourceTypeConverter))] + public partial class GatewayRouteConfigResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayRouteConfigResource(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayRouteConfigResource(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayRouteConfigResource(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("OpenApi")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).OpenApi = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties) content.GetValueForProperty("OpenApi",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).OpenApi, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState.CreateFrom); + } + if (content.Contains("AppResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).AppResourceId = (string) content.GetValueForProperty("AppResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).AppResourceId, global::System.Convert.ToString); + } + if (content.Contains("Protocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Protocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol?) content.GetValueForProperty("Protocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Protocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol.CreateFrom); + } + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Route = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[]) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Route, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiRouteTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).SsoEnabled = (bool?) content.GetValueForProperty("SsoEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).SsoEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Predicate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Predicate = (string[]) content.GetValueForProperty("Predicate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Predicate, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Filter = (string[]) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Filter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OpenApiUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).OpenApiUri = (string) content.GetValueForProperty("OpenApiUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).OpenApiUri, 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 GatewayRouteConfigResource(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("OpenApi")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).OpenApi = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties) content.GetValueForProperty("OpenApi",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).OpenApi, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigOpenApiPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState.CreateFrom); + } + if (content.Contains("AppResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).AppResourceId = (string) content.GetValueForProperty("AppResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).AppResourceId, global::System.Convert.ToString); + } + if (content.Contains("Protocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Protocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol?) content.GetValueForProperty("Protocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Protocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol.CreateFrom); + } + if (content.Contains("Route")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Route = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[]) content.GetValueForProperty("Route",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Route, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayApiRouteTypeConverter.ConvertFrom)); + } + if (content.Contains("SsoEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).SsoEnabled = (bool?) content.GetValueForProperty("SsoEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).SsoEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Predicate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Predicate = (string[]) content.GetValueForProperty("Predicate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Predicate, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Filter = (string[]) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).Filter, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OpenApiUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).OpenApiUri = (string) content.GetValueForProperty("OpenApiUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal)this).OpenApiUri, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Spring Cloud Gateway route config resource + [System.ComponentModel.TypeConverter(typeof(GatewayRouteConfigResourceTypeConverter))] + public partial interface IGatewayRouteConfigResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.TypeConverter.cs new file mode 100644 index 000000000000..5df303977c9c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayRouteConfigResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayRouteConfigResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayRouteConfigResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayRouteConfigResource.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/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.cs new file mode 100644 index 000000000000..9542cde07267 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Spring Cloud Gateway route config resource + public partial class GatewayRouteConfigResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// + /// The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AppResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).AppResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).AppResourceId = value ?? null; } + + /// + /// To modify the request before sending it to the target endpoint, or the received response in app level. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] Filter { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).Filter; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).Filter = value ?? null /* arrayOf */; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for OpenApi + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal.OpenApi { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).OpenApi; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).OpenApi = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// The URI of OpenAPI specification. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string OpenApiUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).OpenApiUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).OpenApiUri = value ?? null; } + + /// + /// A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request + /// headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be + /// matched to the request. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] Predicate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).Predicate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).Predicate = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties _property; + + /// API route config of the Spring Cloud Gateway + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigProperties()); set => this._property = value; } + + /// Protocol of routed Azure Spring Apps applications. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol? Protocol { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).Protocol; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).Protocol = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol)""); } + + /// State of the Spring Cloud Gateway route config. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).ProvisioningState; } + + /// + /// Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] Route { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).Route; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).Route = value ?? null /* arrayOf */; } + + /// Enable Single Sign-On in app level. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? SsoEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).SsoEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigPropertiesInternal)Property).SsoEnabled = value ?? default(bool); } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public GatewayRouteConfigResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Spring Cloud Gateway route config resource + public partial interface IGatewayRouteConfigResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// + /// The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource Id of the Azure Spring Apps app, required unless route defines `uri`.", + SerializedName = @"appResourceId", + PossibleTypes = new [] { typeof(string) })] + string AppResourceId { get; set; } + /// + /// To modify the request before sending it to the target endpoint, or the received response in app level. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"To modify the request before sending it to the target endpoint, or the received response in app level.", + SerializedName = @"filters", + PossibleTypes = new [] { typeof(string) })] + string[] Filter { get; set; } + /// The URI of OpenAPI specification. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of OpenAPI specification.", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string OpenApiUri { get; set; } + /// + /// A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request + /// headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be + /// matched to the request. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request.", + SerializedName = @"predicates", + PossibleTypes = new [] { typeof(string) })] + string[] Predicate { get; set; } + /// Protocol of routed Azure Spring Apps applications. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Protocol of routed Azure Spring Apps applications.", + SerializedName = @"protocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol? Protocol { get; set; } + /// State of the Spring Cloud Gateway route config. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Spring Cloud Gateway route config.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get; } + /// + /// Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`.", + SerializedName = @"routes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] Route { get; set; } + /// Enable Single Sign-On in app level. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enable Single Sign-On in app level.", + SerializedName = @"ssoEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? SsoEnabled { get; set; } + + } + /// Spring Cloud Gateway route config resource + internal partial interface IGatewayRouteConfigResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// + /// The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + /// + string AppResourceId { get; set; } + /// + /// To modify the request before sending it to the target endpoint, or the received response in app level. + /// + string[] Filter { get; set; } + /// OpenAPI properties of Spring Cloud Gateway route config. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigOpenApiProperties OpenApi { get; set; } + /// The URI of OpenAPI specification. + string OpenApiUri { get; set; } + /// + /// A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request + /// headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be + /// matched to the request. + /// + string[] Predicate { get; set; } + /// API route config of the Spring Cloud Gateway + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigProperties Property { get; set; } + /// Protocol of routed Azure Spring Apps applications. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol? Protocol { get; set; } + /// State of the Spring Cloud Gateway route config. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState? ProvisioningState { get; set; } + /// + /// Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] Route { get; set; } + /// Enable Single Sign-On in app level. + bool? SsoEnabled { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.json.cs new file mode 100644 index 000000000000..d09d03a0f2cb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Spring Cloud Gateway route config resource + public partial class GatewayRouteConfigResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayRouteConfigResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayRouteConfigResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigProperties.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..f1349c5b88f6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Spring Cloud Gateway route config resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(GatewayRouteConfigResourceCollectionTypeConverter))] + public partial class GatewayRouteConfigResourceCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GatewayRouteConfigResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GatewayRouteConfigResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GatewayRouteConfigResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal)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 GatewayRouteConfigResourceCollection(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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Spring Cloud Gateway route config resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(GatewayRouteConfigResourceCollectionTypeConverter))] + public partial interface IGatewayRouteConfigResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..b7b9638ec2f2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GatewayRouteConfigResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GatewayRouteConfigResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GatewayRouteConfigResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GatewayRouteConfigResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.cs new file mode 100644 index 000000000000..ecace1d40d50 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Spring Cloud Gateway route config resources and a possible link for next set + /// + public partial class GatewayRouteConfigResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource[] _value; + + /// Collection of Spring Cloud Gateway route config resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public GatewayRouteConfigResourceCollection() + { + + } + } + /// Object that includes an array of Spring Cloud Gateway route config resources and a possible link for next set + public partial interface IGatewayRouteConfigResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Spring Cloud Gateway route config resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Spring Cloud Gateway route config resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource[] Value { get; set; } + + } + /// Object that includes an array of Spring Cloud Gateway route config resources and a possible link for next set + internal partial interface IGatewayRouteConfigResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Spring Cloud Gateway route config resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.json.cs new file mode 100644 index 000000000000..a3b8a55e9794 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GatewayRouteConfigResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Spring Cloud Gateway route config resources and a possible link for next set + /// + public partial class GatewayRouteConfigResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GatewayRouteConfigResourceCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GatewayRouteConfigResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.PowerShell.cs new file mode 100644 index 000000000000..5a2b0bb11d2c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.PowerShell.cs @@ -0,0 +1,226 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Git repository property payload for config server + [System.ComponentModel.TypeConverter(typeof(GitPatternRepositoryTypeConverter))] + public partial class GitPatternRepository + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGitPatternRepository DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new GitPatternRepository(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.AppPlatform.Models.Api20221101Preview.IGitPatternRepository DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new GitPatternRepository(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.AppPlatform.Models.Api20221101Preview.IGitPatternRepository FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal GitPatternRepository(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.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Pattern")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Pattern = (string[]) content.GetValueForProperty("Pattern",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Pattern, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Label, global::System.Convert.ToString); + } + if (content.Contains("SearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("HostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).HostKey, global::System.Convert.ToString); + } + if (content.Contains("HostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("PrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).PrivateKey, global::System.Convert.ToString); + } + if (content.Contains("StrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).StrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal GitPatternRepository(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.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Pattern")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Pattern = (string[]) content.GetValueForProperty("Pattern",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Pattern, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Uri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Uri, global::System.Convert.ToString); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Label, global::System.Convert.ToString); + } + if (content.Contains("SearchPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).Password, global::System.Convert.ToString); + } + if (content.Contains("HostKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).HostKey, global::System.Convert.ToString); + } + if (content.Contains("HostKeyAlgorithm")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + } + if (content.Contains("PrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).PrivateKey, global::System.Convert.ToString); + } + if (content.Contains("StrictHostKeyChecking")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal)this).StrictHostKeyChecking, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Git repository property payload for config server + [System.ComponentModel.TypeConverter(typeof(GitPatternRepositoryTypeConverter))] + public partial interface IGitPatternRepository + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.TypeConverter.cs new file mode 100644 index 000000000000..c64dd3a48d62 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class GitPatternRepositoryTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IGitPatternRepository ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return GitPatternRepository.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return GitPatternRepository.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return GitPatternRepository.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/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.cs new file mode 100644 index 000000000000..684c78db99d7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Git repository property payload for config server + public partial class GitPatternRepository : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepositoryInternal + { + + /// Backing field for property. + private string _hostKey; + + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string HostKey { get => this._hostKey; set => this._hostKey = value; } + + /// Backing field for property. + private string _hostKeyAlgorithm; + + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string HostKeyAlgorithm { get => this._hostKeyAlgorithm; set => this._hostKeyAlgorithm = value; } + + /// Backing field for property. + private string _label; + + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Label { get => this._label; set => this._label = value; } + + /// Backing field for property. + private string _name; + + /// Name of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _password; + + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Password { get => this._password; set => this._password = value; } + + /// Backing field for property. + private string[] _pattern; + + /// Collection of pattern of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Pattern { get => this._pattern; set => this._pattern = value; } + + /// Backing field for property. + private string _privateKey; + + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PrivateKey { get => this._privateKey; set => this._privateKey = value; } + + /// Backing field for property. + private string[] _searchPath; + + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] SearchPath { get => this._searchPath; set => this._searchPath = value; } + + /// Backing field for property. + private bool? _strictHostKeyChecking; + + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? StrictHostKeyChecking { get => this._strictHostKeyChecking; set => this._strictHostKeyChecking = value; } + + /// Backing field for property. + private string _uri; + + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Uri { get => this._uri; set => this._uri = value; } + + /// Backing field for property. + private string _username; + + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Username { get => this._username; set => this._username = value; } + + /// Creates an new instance. + public GitPatternRepository() + { + + } + } + /// Git repository property payload for config server + public partial interface IGitPatternRepository : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Public sshKey of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + string HostKey { get; set; } + /// SshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + string HostKeyAlgorithm { get; set; } + /// Label of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + string Label { get; set; } + /// Name of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the repository", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Password of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string Password { get; set; } + /// Collection of pattern of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of pattern of the repository", + SerializedName = @"pattern", + PossibleTypes = new [] { typeof(string) })] + string[] Pattern { get; set; } + /// Private sshKey algorithm of git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + string PrivateKey { get; set; } + /// Searching path of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + string[] SearchPath { get; set; } + /// Strict host key checking or not. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(bool) })] + bool? StrictHostKeyChecking { get; set; } + /// URI of the repository + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + string Uri { get; set; } + /// Username of git repository basic auth. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string Username { get; set; } + + } + /// Git repository property payload for config server + internal partial interface IGitPatternRepositoryInternal + + { + /// Public sshKey of git repository. + string HostKey { get; set; } + /// SshKey algorithm of git repository. + string HostKeyAlgorithm { get; set; } + /// Label of the repository + string Label { get; set; } + /// Name of the repository + string Name { get; set; } + /// Password of git repository basic auth. + string Password { get; set; } + /// Collection of pattern of the repository + string[] Pattern { get; set; } + /// Private sshKey algorithm of git repository. + string PrivateKey { get; set; } + /// Searching path of the repository + string[] SearchPath { get; set; } + /// Strict host key checking or not. + bool? StrictHostKeyChecking { get; set; } + /// URI of the repository + string Uri { get; set; } + /// Username of git repository basic auth. + string Username { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.json.cs new file mode 100644 index 000000000000..af51369305a8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/GitPatternRepository.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Git repository property payload for config server + public partial class GitPatternRepository + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new GitPatternRepository(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal GitPatternRepository(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_pattern = If( json?.PropertyT("pattern"), out var __jsonPattern) ? If( __jsonPattern as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Pattern;} + {_uri = If( json?.PropertyT("uri"), out var __jsonUri) ? (string)__jsonUri : (string)Uri;} + {_label = If( json?.PropertyT("label"), out var __jsonLabel) ? (string)__jsonLabel : (string)Label;} + {_searchPath = If( json?.PropertyT("searchPaths"), out var __jsonSearchPaths) ? If( __jsonSearchPaths as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : SearchPath;} + {_username = If( json?.PropertyT("username"), out var __jsonUsername) ? (string)__jsonUsername : (string)Username;} + {_password = If( json?.PropertyT("password"), out var __jsonPassword) ? (string)__jsonPassword : (string)Password;} + {_hostKey = If( json?.PropertyT("hostKey"), out var __jsonHostKey) ? (string)__jsonHostKey : (string)HostKey;} + {_hostKeyAlgorithm = If( json?.PropertyT("hostKeyAlgorithm"), out var __jsonHostKeyAlgorithm) ? (string)__jsonHostKeyAlgorithm : (string)HostKeyAlgorithm;} + {_privateKey = If( json?.PropertyT("privateKey"), out var __jsonPrivateKey) ? (string)__jsonPrivateKey : (string)PrivateKey;} + {_strictHostKeyChecking = If( json?.PropertyT("strictHostKeyChecking"), out var __jsonStrictHostKeyChecking) ? (bool?)__jsonStrictHostKeyChecking : StrictHostKeyChecking;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + if (null != this._pattern) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._pattern ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("pattern",__w); + } + AddIf( null != (((object)this._uri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._uri.ToString()) : null, "uri" ,container.Add ); + AddIf( null != (((object)this._label)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._label.ToString()) : null, "label" ,container.Add ); + if (null != this._searchPath) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._searchPath ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("searchPaths",__r); + } + AddIf( null != (((object)this._username)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._username.ToString()) : null, "username" ,container.Add ); + AddIf( null != (((object)this._password)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._password.ToString()) : null, "password" ,container.Add ); + AddIf( null != (((object)this._hostKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._hostKey.ToString()) : null, "hostKey" ,container.Add ); + AddIf( null != (((object)this._hostKeyAlgorithm)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._hostKeyAlgorithm.ToString()) : null, "hostKeyAlgorithm" ,container.Add ); + AddIf( null != (((object)this._privateKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._privateKey.ToString()) : null, "privateKey" ,container.Add ); + AddIf( null != this._strictHostKeyChecking ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._strictHostKeyChecking) : null, "strictHostKeyChecking" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.PowerShell.cs new file mode 100644 index 000000000000..d79a0539b278 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// HTTPGetAction describes an action based on HTTP Get requests. + [System.ComponentModel.TypeConverter(typeof(HttpGetActionTypeConverter))] + public partial class HttpGetAction + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IHttpGetAction DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HttpGetAction(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.AppPlatform.Models.Api20221101Preview.IHttpGetAction DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HttpGetAction(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.AppPlatform.Models.Api20221101Preview.IHttpGetAction FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HttpGetAction(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Path")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal)this).Path = (string) content.GetValueForProperty("Path",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal)this).Path, global::System.Convert.ToString); + } + if (content.Contains("Scheme")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal)this).Scheme = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType?) content.GetValueForProperty("Scheme",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal)this).Scheme, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType.CreateFrom); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HttpGetAction(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Path")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal)this).Path = (string) content.GetValueForProperty("Path",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal)this).Path, global::System.Convert.ToString); + } + if (content.Contains("Scheme")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal)this).Scheme = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType?) content.GetValueForProperty("Scheme",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal)this).Scheme, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType.CreateFrom); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// HTTPGetAction describes an action based on HTTP Get requests. + [System.ComponentModel.TypeConverter(typeof(HttpGetActionTypeConverter))] + public partial interface IHttpGetAction + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.TypeConverter.cs new file mode 100644 index 000000000000..927090f21fe6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HttpGetActionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IHttpGetAction ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetAction).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HttpGetAction.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HttpGetAction.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HttpGetAction.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/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.cs new file mode 100644 index 000000000000..c5b596ef164e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// HTTPGetAction describes an action based on HTTP Get requests. + public partial class HttpGetAction : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetAction, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetActionInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction __probeAction = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction(); + + /// Backing field for property. + private string _path; + + /// Path to access on the HTTP server. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Path { get => this._path; set => this._path = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType? _scheme; + + /// + /// Scheme to use for connecting to the host. Defaults to HTTP. + /// Possible enum values: + /// - `"HTTP"` means that the scheme used will be http:// + /// - `"HTTPS"` means that the scheme used will be https:// + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType? Scheme { get => this._scheme; set => this._scheme = value; } + + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)__probeAction).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)__probeAction).Type = value ; } + + /// Creates an new instance. + public HttpGetAction() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__probeAction), __probeAction); + await eventListener.AssertObjectIsValid(nameof(__probeAction), __probeAction); + } + } + /// HTTPGetAction describes an action based on HTTP Get requests. + public partial interface IHttpGetAction : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction + { + /// Path to access on the HTTP server. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Path to access on the HTTP server.", + SerializedName = @"path", + PossibleTypes = new [] { typeof(string) })] + string Path { get; set; } + /// + /// Scheme to use for connecting to the host. Defaults to HTTP. + /// Possible enum values: + /// - `"HTTP"` means that the scheme used will be http:// + /// - `"HTTPS"` means that the scheme used will be https:// + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Scheme to use for connecting to the host. Defaults to HTTP. + + Possible enum values: + - `""HTTP""` means that the scheme used will be http:// + - `""HTTPS""` means that the scheme used will be https://", + SerializedName = @"scheme", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType? Scheme { get; set; } + + } + /// HTTPGetAction describes an action based on HTTP Get requests. + internal partial interface IHttpGetActionInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal + { + /// Path to access on the HTTP server. + string Path { get; set; } + /// + /// Scheme to use for connecting to the host. Defaults to HTTP. + /// Possible enum values: + /// - `"HTTP"` means that the scheme used will be http:// + /// - `"HTTPS"` means that the scheme used will be https:// + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType? Scheme { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.json.cs new file mode 100644 index 000000000000..355ef51e3519 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/HttpGetAction.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// HTTPGetAction describes an action based on HTTP Get requests. + public partial class HttpGetAction + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetAction. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetAction. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IHttpGetAction FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new HttpGetAction(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal HttpGetAction(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __probeAction = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction(json); + {_path = If( json?.PropertyT("path"), out var __jsonPath) ? (string)__jsonPath : (string)Path;} + {_scheme = If( json?.PropertyT("scheme"), out var __jsonScheme) ? (string)__jsonScheme : (string)Scheme;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __probeAction?.ToJson(container, serializationMode); + AddIf( null != (((object)this._path)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._path.ToString()) : null, "path" ,container.Add ); + AddIf( null != (((object)this._scheme)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._scheme.ToString()) : null, "scheme" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.PowerShell.cs new file mode 100644 index 000000000000..910e7ff513ff --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Credential of the image registry + [System.ComponentModel.TypeConverter(typeof(ImageRegistryCredentialTypeConverter))] + public partial class ImageRegistryCredential + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ImageRegistryCredential(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.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ImageRegistryCredential(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.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ImageRegistryCredential(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)this).Password, 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 ImageRegistryCredential(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Username")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)this).Username, global::System.Convert.ToString); + } + if (content.Contains("Password")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal)this).Password, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Credential of the image registry + [System.ComponentModel.TypeConverter(typeof(ImageRegistryCredentialTypeConverter))] + public partial interface IImageRegistryCredential + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.TypeConverter.cs new file mode 100644 index 000000000000..3a884c80d4b2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ImageRegistryCredentialTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ImageRegistryCredential.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ImageRegistryCredential.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ImageRegistryCredential.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/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.cs new file mode 100644 index 000000000000..4c97ec11ff0e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Credential of the image registry + public partial class ImageRegistryCredential : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredentialInternal + { + + /// Backing field for property. + private string _password; + + /// The password of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Password { get => this._password; set => this._password = value; } + + /// Backing field for property. + private string _username; + + /// The username of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Username { get => this._username; set => this._username = value; } + + /// Creates an new instance. + public ImageRegistryCredential() + { + + } + } + /// Credential of the image registry + public partial interface IImageRegistryCredential : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The password of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The password of the image registry credential", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + string Password { get; set; } + /// The username of the image registry credential + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The username of the image registry credential", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + string Username { get; set; } + + } + /// Credential of the image registry + internal partial interface IImageRegistryCredentialInternal + + { + /// The password of the image registry credential + string Password { get; set; } + /// The username of the image registry credential + string Username { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.json.cs new file mode 100644 index 000000000000..e3ef56fe74c7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ImageRegistryCredential.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Credential of the image registry + public partial class ImageRegistryCredential + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IImageRegistryCredential FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ImageRegistryCredential(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ImageRegistryCredential(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_username = If( json?.PropertyT("username"), out var __jsonUsername) ? (string)__jsonUsername : (string)Username;} + {_password = If( json?.PropertyT("password"), out var __jsonPassword) ? (string)__jsonPassword : (string)Password;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._username)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._username.ToString()) : null, "username" ,container.Add ); + AddIf( null != (((object)this._password)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._password.ToString()) : null, "password" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.PowerShell.cs new file mode 100644 index 000000000000..4ec40dd74051 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Ingress configuration payload for Azure Spring Apps resource. + [System.ComponentModel.TypeConverter(typeof(IngressConfigTypeConverter))] + public partial class IngressConfig + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IIngressConfig DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IngressConfig(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.AppPlatform.Models.Api20221101Preview.IIngressConfig DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IngressConfig(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.AppPlatform.Models.Api20221101Preview.IIngressConfig FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IngressConfig(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfigInternal)this).ReadTimeoutInSecond = (int?) content.GetValueForProperty("ReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfigInternal)this).ReadTimeoutInSecond, (__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 IngressConfig(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfigInternal)this).ReadTimeoutInSecond = (int?) content.GetValueForProperty("ReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfigInternal)this).ReadTimeoutInSecond, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Ingress configuration payload for Azure Spring Apps resource. + [System.ComponentModel.TypeConverter(typeof(IngressConfigTypeConverter))] + public partial interface IIngressConfig + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.TypeConverter.cs new file mode 100644 index 000000000000..27dac48e5b2d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IngressConfigTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IIngressConfig ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IngressConfig.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IngressConfig.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IngressConfig.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/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.cs new file mode 100644 index 000000000000..16d5adf4dad1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Ingress configuration payload for Azure Spring Apps resource. + public partial class IngressConfig : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfigInternal + { + + /// Backing field for property. + private int? _readTimeoutInSecond; + + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? ReadTimeoutInSecond { get => this._readTimeoutInSecond; set => this._readTimeoutInSecond = value; } + + /// Creates an new instance. + public IngressConfig() + { + + } + } + /// Ingress configuration payload for Azure Spring Apps resource. + public partial interface IIngressConfig : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? ReadTimeoutInSecond { get; set; } + + } + /// Ingress configuration payload for Azure Spring Apps resource. + internal partial interface IIngressConfigInternal + + { + /// Ingress read time out in seconds. + int? ReadTimeoutInSecond { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.json.cs new file mode 100644 index 000000000000..7ad6b5d6cfcb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressConfig.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Ingress configuration payload for Azure Spring Apps resource. + public partial class IngressConfig + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new IngressConfig(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal IngressConfig(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_readTimeoutInSecond = If( json?.PropertyT("readTimeoutInSeconds"), out var __jsonReadTimeoutInSeconds) ? (int?)__jsonReadTimeoutInSeconds : ReadTimeoutInSecond;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._readTimeoutInSecond ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._readTimeoutInSecond) : null, "readTimeoutInSeconds" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.PowerShell.cs new file mode 100644 index 000000000000..141e6ef24493 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.PowerShell.cs @@ -0,0 +1,192 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// App ingress settings payload. + [System.ComponentModel.TypeConverter(typeof(IngressSettingsTypeConverter))] + public partial class IngressSettings + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IIngressSettings DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IngressSettings(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.AppPlatform.Models.Api20221101Preview.IIngressSettings DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IngressSettings(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.AppPlatform.Models.Api20221101Preview.IIngressSettings FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IngressSettings(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ClientAuth = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth) content.GetValueForProperty("ClientAuth",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ClientAuth, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuthTypeConverter.ConvertFrom); + } + if (content.Contains("ReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ReadTimeoutInSecond = (int?) content.GetValueForProperty("ReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ReadTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SendTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SendTimeoutInSecond = (int?) content.GetValueForProperty("SendTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SendTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SessionAffinity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SessionAffinity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity?) content.GetValueForProperty("SessionAffinity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SessionAffinity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity.CreateFrom); + } + if (content.Contains("SessionCookieMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SessionCookieMaxAge = (int?) content.GetValueForProperty("SessionCookieMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SessionCookieMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("BackendProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).BackendProtocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol?) content.GetValueForProperty("BackendProtocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).BackendProtocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol.CreateFrom); + } + if (content.Contains("ClientAuthCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ClientAuthCertificate = (string[]) content.GetValueForProperty("ClientAuthCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ClientAuthCertificate, __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 IngressSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ClientAuth = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth) content.GetValueForProperty("ClientAuth",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ClientAuth, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuthTypeConverter.ConvertFrom); + } + if (content.Contains("ReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ReadTimeoutInSecond = (int?) content.GetValueForProperty("ReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ReadTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SendTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SendTimeoutInSecond = (int?) content.GetValueForProperty("SendTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SendTimeoutInSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SessionAffinity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SessionAffinity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity?) content.GetValueForProperty("SessionAffinity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SessionAffinity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity.CreateFrom); + } + if (content.Contains("SessionCookieMaxAge")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SessionCookieMaxAge = (int?) content.GetValueForProperty("SessionCookieMaxAge",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).SessionCookieMaxAge, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("BackendProtocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).BackendProtocol = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol?) content.GetValueForProperty("BackendProtocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).BackendProtocol, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol.CreateFrom); + } + if (content.Contains("ClientAuthCertificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ClientAuthCertificate = (string[]) content.GetValueForProperty("ClientAuthCertificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal)this).ClientAuthCertificate, __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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// App ingress settings payload. + [System.ComponentModel.TypeConverter(typeof(IngressSettingsTypeConverter))] + public partial interface IIngressSettings + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.TypeConverter.cs new file mode 100644 index 000000000000..41fca3ba95c2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IngressSettingsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IIngressSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IngressSettings.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IngressSettings.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IngressSettings.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/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.cs new file mode 100644 index 000000000000..a68cd3237daa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// App ingress settings payload. + public partial class IngressSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? _backendProtocol; + + /// How ingress should communicate with this app backend service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? BackendProtocol { get => this._backendProtocol; set => this._backendProtocol = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth _clientAuth; + + /// Client-Certification Authentication. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth ClientAuth { get => (this._clientAuth = this._clientAuth ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuth()); set => this._clientAuth = value; } + + /// Collection of certificate resource id. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] ClientAuthCertificate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuthInternal)ClientAuth).Certificate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuthInternal)ClientAuth).Certificate = value ?? null /* arrayOf */; } + + /// Internal Acessors for ClientAuth + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsInternal.ClientAuth { get => (this._clientAuth = this._clientAuth ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuth()); set { {_clientAuth = value;} } } + + /// Backing field for property. + private int? _readTimeoutInSecond; + + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? ReadTimeoutInSecond { get => this._readTimeoutInSecond; set => this._readTimeoutInSecond = value; } + + /// Backing field for property. + private int? _sendTimeoutInSecond; + + /// Ingress send time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? SendTimeoutInSecond { get => this._sendTimeoutInSecond; set => this._sendTimeoutInSecond = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? _sessionAffinity; + + /// Type of the affinity, set this to Cookie to enable session affinity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? SessionAffinity { get => this._sessionAffinity; set => this._sessionAffinity = value; } + + /// Backing field for property. + private int? _sessionCookieMaxAge; + + /// Time in seconds until the cookie expires. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? SessionCookieMaxAge { get => this._sessionCookieMaxAge; set => this._sessionCookieMaxAge = value; } + + /// Creates an new instance. + public IngressSettings() + { + + } + } + /// App ingress settings payload. + public partial interface IIngressSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// How ingress should communicate with this app backend service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How ingress should communicate with this app backend service.", + SerializedName = @"backendProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? BackendProtocol { get; set; } + /// Collection of certificate resource id. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of certificate resource id.", + SerializedName = @"certificates", + PossibleTypes = new [] { typeof(string) })] + string[] ClientAuthCertificate { get; set; } + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? ReadTimeoutInSecond { get; set; } + /// Ingress send time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress send time out in seconds.", + SerializedName = @"sendTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? SendTimeoutInSecond { get; set; } + /// Type of the affinity, set this to Cookie to enable session affinity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the affinity, set this to Cookie to enable session affinity.", + SerializedName = @"sessionAffinity", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? SessionAffinity { get; set; } + /// Time in seconds until the cookie expires. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time in seconds until the cookie expires.", + SerializedName = @"sessionCookieMaxAge", + PossibleTypes = new [] { typeof(int) })] + int? SessionCookieMaxAge { get; set; } + + } + /// App ingress settings payload. + internal partial interface IIngressSettingsInternal + + { + /// How ingress should communicate with this app backend service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol? BackendProtocol { get; set; } + /// Client-Certification Authentication. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth ClientAuth { get; set; } + /// Collection of certificate resource id. + string[] ClientAuthCertificate { get; set; } + /// Ingress read time out in seconds. + int? ReadTimeoutInSecond { get; set; } + /// Ingress send time out in seconds. + int? SendTimeoutInSecond { get; set; } + /// Type of the affinity, set this to Cookie to enable session affinity. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity? SessionAffinity { get; set; } + /// Time in seconds until the cookie expires. + int? SessionCookieMaxAge { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.json.cs new file mode 100644 index 000000000000..61f8658ce82c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettings.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// App ingress settings payload. + public partial class IngressSettings + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettings FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new IngressSettings(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal IngressSettings(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clientAuth = If( json?.PropertyT("clientAuth"), out var __jsonClientAuth) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressSettingsClientAuth.FromJson(__jsonClientAuth) : ClientAuth;} + {_readTimeoutInSecond = If( json?.PropertyT("readTimeoutInSeconds"), out var __jsonReadTimeoutInSeconds) ? (int?)__jsonReadTimeoutInSeconds : ReadTimeoutInSecond;} + {_sendTimeoutInSecond = If( json?.PropertyT("sendTimeoutInSeconds"), out var __jsonSendTimeoutInSeconds) ? (int?)__jsonSendTimeoutInSeconds : SendTimeoutInSecond;} + {_sessionAffinity = If( json?.PropertyT("sessionAffinity"), out var __jsonSessionAffinity) ? (string)__jsonSessionAffinity : (string)SessionAffinity;} + {_sessionCookieMaxAge = If( json?.PropertyT("sessionCookieMaxAge"), out var __jsonSessionCookieMaxAge) ? (int?)__jsonSessionCookieMaxAge : SessionCookieMaxAge;} + {_backendProtocol = If( json?.PropertyT("backendProtocol"), out var __jsonBackendProtocol) ? (string)__jsonBackendProtocol : (string)BackendProtocol;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._clientAuth ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._clientAuth.ToJson(null,serializationMode) : null, "clientAuth" ,container.Add ); + AddIf( null != this._readTimeoutInSecond ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._readTimeoutInSecond) : null, "readTimeoutInSeconds" ,container.Add ); + AddIf( null != this._sendTimeoutInSecond ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._sendTimeoutInSecond) : null, "sendTimeoutInSeconds" ,container.Add ); + AddIf( null != (((object)this._sessionAffinity)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._sessionAffinity.ToString()) : null, "sessionAffinity" ,container.Add ); + AddIf( null != this._sessionCookieMaxAge ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._sessionCookieMaxAge) : null, "sessionCookieMaxAge" ,container.Add ); + AddIf( null != (((object)this._backendProtocol)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._backendProtocol.ToString()) : null, "backendProtocol" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.PowerShell.cs new file mode 100644 index 000000000000..65779822b5f6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Client-Certification Authentication. + [System.ComponentModel.TypeConverter(typeof(IngressSettingsClientAuthTypeConverter))] + public partial class IngressSettingsClientAuth + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IngressSettingsClientAuth(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.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IngressSettingsClientAuth(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.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IngressSettingsClientAuth(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Certificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuthInternal)this).Certificate = (string[]) content.GetValueForProperty("Certificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuthInternal)this).Certificate, __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 IngressSettingsClientAuth(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Certificate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuthInternal)this).Certificate = (string[]) content.GetValueForProperty("Certificate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuthInternal)this).Certificate, __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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Client-Certification Authentication. + [System.ComponentModel.TypeConverter(typeof(IngressSettingsClientAuthTypeConverter))] + public partial interface IIngressSettingsClientAuth + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.TypeConverter.cs new file mode 100644 index 000000000000..8452a2133ed9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IngressSettingsClientAuthTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IngressSettingsClientAuth.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IngressSettingsClientAuth.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IngressSettingsClientAuth.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/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.cs new file mode 100644 index 000000000000..e2db0b94c090 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Client-Certification Authentication. + public partial class IngressSettingsClientAuth : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuthInternal + { + + /// Backing field for property. + private string[] _certificate; + + /// Collection of certificate resource id. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Certificate { get => this._certificate; set => this._certificate = value; } + + /// Creates an new instance. + public IngressSettingsClientAuth() + { + + } + } + /// Client-Certification Authentication. + public partial interface IIngressSettingsClientAuth : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Collection of certificate resource id. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of certificate resource id.", + SerializedName = @"certificates", + PossibleTypes = new [] { typeof(string) })] + string[] Certificate { get; set; } + + } + /// Client-Certification Authentication. + internal partial interface IIngressSettingsClientAuthInternal + + { + /// Collection of certificate resource id. + string[] Certificate { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.json.cs new file mode 100644 index 000000000000..f77ab06dbe87 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/IngressSettingsClientAuth.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Client-Certification Authentication. + public partial class IngressSettingsClientAuth + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressSettingsClientAuth FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new IngressSettingsClientAuth(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal IngressSettingsClientAuth(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_certificate = If( json?.PropertyT("certificates"), out var __jsonCertificates) ? If( __jsonCertificates as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Certificate;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._certificate) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._certificate ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("certificates",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.PowerShell.cs new file mode 100644 index 000000000000..e7611824e5f5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Uploaded Jar binary for a deployment + [System.ComponentModel.TypeConverter(typeof(JarUploadedUserSourceInfoTypeConverter))] + public partial class JarUploadedUserSourceInfo + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new JarUploadedUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new JarUploadedUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal JarUploadedUserSourceInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal)this).RuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("JvmOption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal)this).JvmOption = (string) content.GetValueForProperty("JvmOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal)this).JvmOption, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath, 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 JarUploadedUserSourceInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal)this).RuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("JvmOption")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal)this).JvmOption = (string) content.GetValueForProperty("JvmOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal)this).JvmOption, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Uploaded Jar binary for a deployment + [System.ComponentModel.TypeConverter(typeof(JarUploadedUserSourceInfoTypeConverter))] + public partial interface IJarUploadedUserSourceInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.TypeConverter.cs new file mode 100644 index 000000000000..ddd9a7576efe --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class JarUploadedUserSourceInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return JarUploadedUserSourceInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return JarUploadedUserSourceInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return JarUploadedUserSourceInfo.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/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.cs new file mode 100644 index 000000000000..a7a9a17f74e6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.cs @@ -0,0 +1,99 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Uploaded Jar binary for a deployment + public partial class JarUploadedUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo __uploadedUserSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UploadedUserSourceInfo(); + + /// Backing field for property. + private string _jvmOption; + + /// JVM parameter + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string JvmOption { get => this._jvmOption; set => this._jvmOption = value; } + + /// Relative path of the storage which stores the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string RelativePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)__uploadedUserSourceInfo).RelativePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)__uploadedUserSourceInfo).RelativePath = value ?? null; } + + /// Backing field for property. + private string _runtimeVersion; + + /// Runtime version of the Jar file + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string RuntimeVersion { get => this._runtimeVersion; set => this._runtimeVersion = value; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Type = value ; } + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Version = value ?? null; } + + /// Creates an new instance. + public JarUploadedUserSourceInfo() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__uploadedUserSourceInfo), __uploadedUserSourceInfo); + await eventListener.AssertObjectIsValid(nameof(__uploadedUserSourceInfo), __uploadedUserSourceInfo); + } + } + /// Uploaded Jar binary for a deployment + public partial interface IJarUploadedUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo + { + /// JVM parameter + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"JVM parameter", + SerializedName = @"jvmOptions", + PossibleTypes = new [] { typeof(string) })] + string JvmOption { get; set; } + /// Runtime version of the Jar file + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version of the Jar file", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string RuntimeVersion { get; set; } + + } + /// Uploaded Jar binary for a deployment + internal partial interface IJarUploadedUserSourceInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal + { + /// JVM parameter + string JvmOption { get; set; } + /// Runtime version of the Jar file + string RuntimeVersion { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.json.cs new file mode 100644 index 000000000000..e6e1b1008d53 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/JarUploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Uploaded Jar binary for a deployment + public partial class JarUploadedUserSourceInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IJarUploadedUserSourceInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new JarUploadedUserSourceInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal JarUploadedUserSourceInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __uploadedUserSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UploadedUserSourceInfo(json); + {_runtimeVersion = If( json?.PropertyT("runtimeVersion"), out var __jsonRuntimeVersion) ? (string)__jsonRuntimeVersion : (string)RuntimeVersion;} + {_jvmOption = If( json?.PropertyT("jvmOptions"), out var __jsonJvmOptions) ? (string)__jsonJvmOptions : (string)JvmOption;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __uploadedUserSourceInfo?.ToJson(container, serializationMode); + AddIf( null != (((object)this._runtimeVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._runtimeVersion.ToString()) : null, "runtimeVersion" ,container.Add ); + AddIf( null != (((object)this._jvmOption)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._jvmOption.ToString()) : null, "jvmOptions" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.PowerShell.cs new file mode 100644 index 000000000000..2fd0b82e6741 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Properties of certificate imported from key vault. + [System.ComponentModel.TypeConverter(typeof(KeyVaultCertificatePropertiesTypeConverter))] + public partial class KeyVaultCertificateProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new KeyVaultCertificateProperties(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.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new KeyVaultCertificateProperties(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.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal KeyVaultCertificateProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("VaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).VaultUri = (string) content.GetValueForProperty("VaultUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).VaultUri, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultCertName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).KeyVaultCertName = (string) content.GetValueForProperty("KeyVaultCertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).KeyVaultCertName, global::System.Convert.ToString); + } + if (content.Contains("CertVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).CertVersion = (string) content.GetValueForProperty("CertVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).CertVersion, global::System.Convert.ToString); + } + if (content.Contains("ExcludePrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).ExcludePrivateKey = (bool?) content.GetValueForProperty("ExcludePrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).ExcludePrivateKey, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssuedDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate, global::System.Convert.ToString); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate, global::System.Convert.ToString); + } + if (content.Contains("ActivateDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("DnsName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal KeyVaultCertificateProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("VaultUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).VaultUri = (string) content.GetValueForProperty("VaultUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).VaultUri, global::System.Convert.ToString); + } + if (content.Contains("KeyVaultCertName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).KeyVaultCertName = (string) content.GetValueForProperty("KeyVaultCertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).KeyVaultCertName, global::System.Convert.ToString); + } + if (content.Contains("CertVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).CertVersion = (string) content.GetValueForProperty("CertVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).CertVersion, global::System.Convert.ToString); + } + if (content.Contains("ExcludePrivateKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).ExcludePrivateKey = (bool?) content.GetValueForProperty("ExcludePrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal)this).ExcludePrivateKey, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Thumbprint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + } + if (content.Contains("Issuer")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + } + if (content.Contains("IssuedDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).IssuedDate, global::System.Convert.ToString); + } + if (content.Contains("ExpirationDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ExpirationDate, global::System.Convert.ToString); + } + if (content.Contains("ActivateDate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ActivateDate, global::System.Convert.ToString); + } + if (content.Contains("SubjectName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + } + if (content.Contains("DnsName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).DnsName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of certificate imported from key vault. + [System.ComponentModel.TypeConverter(typeof(KeyVaultCertificatePropertiesTypeConverter))] + public partial interface IKeyVaultCertificateProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.TypeConverter.cs new file mode 100644 index 000000000000..6c283d688438 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class KeyVaultCertificatePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return KeyVaultCertificateProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return KeyVaultCertificateProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return KeyVaultCertificateProperties.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/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.cs new file mode 100644 index 000000000000..0e4b87e1601c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of certificate imported from key vault. + public partial class KeyVaultCertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificatePropertiesInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties __certificateProperties = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties(); + + /// The activate date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string ActivateDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ActivateDate; } + + /// Backing field for property. + private string _certVersion; + + /// The certificate version of key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string CertVersion { get => this._certVersion; set => this._certVersion = value; } + + /// The domain list of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string[] DnsName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).DnsName; } + + /// Backing field for property. + private bool? _excludePrivateKey; + + /// Optional. If set to true, it will not import private key from key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? ExcludePrivateKey { get => this._excludePrivateKey; set => this._excludePrivateKey = value; } + + /// The expiration date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ExpirationDate; } + + /// The issue date of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string IssuedDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).IssuedDate; } + + /// The issuer of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Issuer; } + + /// Backing field for property. + private string _keyVaultCertName; + + /// The certificate name of key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string KeyVaultCertName { get => this._keyVaultCertName; set => this._keyVaultCertName = value; } + + /// Internal Acessors for ActivateDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ActivateDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ActivateDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ActivateDate = value; } + + /// Internal Acessors for DnsName + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.DnsName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).DnsName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).DnsName = value; } + + /// Internal Acessors for ExpirationDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ExpirationDate = value; } + + /// Internal Acessors for IssuedDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.IssuedDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).IssuedDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).IssuedDate = value; } + + /// Internal Acessors for Issuer + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Issuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Issuer = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ProvisioningState = value; } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).SubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).SubjectName = value; } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal.Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Thumbprint = value; } + + /// Provisioning state of the Certificate + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).ProvisioningState; } + + /// The subject name of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).SubjectName; } + + /// The thumbprint of certificate. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Thumbprint; } + + /// The type of the certificate source. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal)__certificateProperties).Type = value ; } + + /// Backing field for property. + private string _vaultUri; + + /// The vault uri of user key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string VaultUri { get => this._vaultUri; set => this._vaultUri = value; } + + /// Creates an new instance. + public KeyVaultCertificateProperties() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__certificateProperties), __certificateProperties); + await eventListener.AssertObjectIsValid(nameof(__certificateProperties), __certificateProperties); + } + } + /// Properties of certificate imported from key vault. + public partial interface IKeyVaultCertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateProperties + { + /// The certificate version of key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The certificate version of key vault.", + SerializedName = @"certVersion", + PossibleTypes = new [] { typeof(string) })] + string CertVersion { get; set; } + /// Optional. If set to true, it will not import private key from key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. If set to true, it will not import private key from key vault.", + SerializedName = @"excludePrivateKey", + PossibleTypes = new [] { typeof(bool) })] + bool? ExcludePrivateKey { get; set; } + /// The certificate name of key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The certificate name of key vault.", + SerializedName = @"keyVaultCertName", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultCertName { get; set; } + /// The vault uri of user key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The vault uri of user key vault.", + SerializedName = @"vaultUri", + PossibleTypes = new [] { typeof(string) })] + string VaultUri { get; set; } + + } + /// Properties of certificate imported from key vault. + internal partial interface IKeyVaultCertificatePropertiesInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificatePropertiesInternal + { + /// The certificate version of key vault. + string CertVersion { get; set; } + /// Optional. If set to true, it will not import private key from key vault. + bool? ExcludePrivateKey { get; set; } + /// The certificate name of key vault. + string KeyVaultCertName { get; set; } + /// The vault uri of user key vault. + string VaultUri { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.json.cs new file mode 100644 index 000000000000..a4aaec3ce4b5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/KeyVaultCertificateProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Properties of certificate imported from key vault. + public partial class KeyVaultCertificateProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IKeyVaultCertificateProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new KeyVaultCertificateProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal KeyVaultCertificateProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __certificateProperties = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateProperties(json); + {_vaultUri = If( json?.PropertyT("vaultUri"), out var __jsonVaultUri) ? (string)__jsonVaultUri : (string)VaultUri;} + {_keyVaultCertName = If( json?.PropertyT("keyVaultCertName"), out var __jsonKeyVaultCertName) ? (string)__jsonKeyVaultCertName : (string)KeyVaultCertName;} + {_certVersion = If( json?.PropertyT("certVersion"), out var __jsonCertVersion) ? (string)__jsonCertVersion : (string)CertVersion;} + {_excludePrivateKey = If( json?.PropertyT("excludePrivateKey"), out var __jsonExcludePrivateKey) ? (bool?)__jsonExcludePrivateKey : ExcludePrivateKey;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __certificateProperties?.ToJson(container, serializationMode); + AddIf( null != (((object)this._vaultUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._vaultUri.ToString()) : null, "vaultUri" ,container.Add ); + AddIf( null != (((object)this._keyVaultCertName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._keyVaultCertName.ToString()) : null, "keyVaultCertName" ,container.Add ); + AddIf( null != (((object)this._certVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._certVersion.ToString()) : null, "certVersion" ,container.Add ); + AddIf( null != this._excludePrivateKey ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._excludePrivateKey) : null, "excludePrivateKey" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.PowerShell.cs new file mode 100644 index 000000000000..1e226e1c5615 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Loaded certificate payload + [System.ComponentModel.TypeConverter(typeof(LoadedCertificateTypeConverter))] + public partial class LoadedCertificate + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ILoadedCertificate DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LoadedCertificate(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.AppPlatform.Models.Api20221101Preview.ILoadedCertificate DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LoadedCertificate(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.AppPlatform.Models.Api20221101Preview.ILoadedCertificate FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LoadedCertificate(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("LoadTrustStore")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal)this).LoadTrustStore = (bool?) content.GetValueForProperty("LoadTrustStore",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal)this).LoadTrustStore, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal LoadedCertificate(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("LoadTrustStore")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal)this).LoadTrustStore = (bool?) content.GetValueForProperty("LoadTrustStore",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal)this).LoadTrustStore, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Loaded certificate payload + [System.ComponentModel.TypeConverter(typeof(LoadedCertificateTypeConverter))] + public partial interface ILoadedCertificate + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.TypeConverter.cs new file mode 100644 index 000000000000..3f59d81b84d2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LoadedCertificateTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ILoadedCertificate ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LoadedCertificate.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LoadedCertificate.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LoadedCertificate.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/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.cs new file mode 100644 index 000000000000..dd1a091ab927 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Loaded certificate payload + public partial class LoadedCertificate : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificateInternal + { + + /// Backing field for property. + private bool? _loadTrustStore; + + /// + /// Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? LoadTrustStore { get => this._loadTrustStore; set => this._loadTrustStore = value; } + + /// Backing field for property. + private string _resourceId; + + /// Resource Id of loaded certificate + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// Creates an new instance. + public LoadedCertificate() + { + + } + } + /// Loaded certificate payload + public partial interface ILoadedCertificate : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate whether the certificate will be loaded into default trust store, only work for Java runtime.", + SerializedName = @"loadTrustStore", + PossibleTypes = new [] { typeof(bool) })] + bool? LoadTrustStore { get; set; } + /// Resource Id of loaded certificate + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Resource Id of loaded certificate", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Loaded certificate payload + internal partial interface ILoadedCertificateInternal + + { + /// + /// Indicate whether the certificate will be loaded into default trust store, only work for Java runtime. + /// + bool? LoadTrustStore { get; set; } + /// Resource Id of loaded certificate + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.json.cs new file mode 100644 index 000000000000..40842d1c9093 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LoadedCertificate.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Loaded certificate payload + public partial class LoadedCertificate + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new LoadedCertificate(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal LoadedCertificate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_loadTrustStore = If( json?.PropertyT("loadTrustStore"), out var __jsonLoadTrustStore) ? (bool?)__jsonLoadTrustStore : LoadTrustStore;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + AddIf( null != this._loadTrustStore ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._loadTrustStore) : null, "loadTrustStore" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.PowerShell.cs new file mode 100644 index 000000000000..0e8be8732fb5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Log file URL payload + [System.ComponentModel.TypeConverter(typeof(LogFileUrlResponseTypeConverter))] + public partial class LogFileUrlResponse + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LogFileUrlResponse(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.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LogFileUrlResponse(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.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LogFileUrlResponse(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponseInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponseInternal)this).Url, 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 LogFileUrlResponse(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Url")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponseInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponseInternal)this).Url, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Log file URL payload + [System.ComponentModel.TypeConverter(typeof(LogFileUrlResponseTypeConverter))] + public partial interface ILogFileUrlResponse + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.TypeConverter.cs new file mode 100644 index 000000000000..5e9210d8e34c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LogFileUrlResponseTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LogFileUrlResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LogFileUrlResponse.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LogFileUrlResponse.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/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.cs new file mode 100644 index 000000000000..b59ddfd0e1b8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Log file URL payload + public partial class LogFileUrlResponse : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponseInternal + { + + /// Backing field for property. + private string _url; + + /// URL of the log file + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Url { get => this._url; set => this._url = value; } + + /// Creates an new instance. + public LogFileUrlResponse() + { + + } + } + /// Log file URL payload + public partial interface ILogFileUrlResponse : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// URL of the log file + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"URL of the log file", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + string Url { get; set; } + + } + /// Log file URL payload + internal partial interface ILogFileUrlResponseInternal + + { + /// URL of the log file + string Url { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.json.cs new file mode 100644 index 000000000000..f34a8727f592 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogFileUrlResponse.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Log file URL payload + public partial class LogFileUrlResponse + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new LogFileUrlResponse(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal LogFileUrlResponse(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_url = If( json?.PropertyT("url"), out var __jsonUrl) ? (string)__jsonUrl : (string)Url;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._url)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._url.ToString()) : null, "url" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.PowerShell.cs new file mode 100644 index 000000000000..565e2cec6feb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Specifications of the Log for Azure Monitoring + [System.ComponentModel.TypeConverter(typeof(LogSpecificationTypeConverter))] + public partial class LogSpecification + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ILogSpecification DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new LogSpecification(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.AppPlatform.Models.Api20221101Preview.ILogSpecification DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new LogSpecification(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.AppPlatform.Models.Api20221101Preview.ILogSpecification FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal LogSpecification(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.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("BlobDuration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).BlobDuration = (string) content.GetValueForProperty("BlobDuration",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).BlobDuration, 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 LogSpecification(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.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("BlobDuration")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).BlobDuration = (string) content.GetValueForProperty("BlobDuration",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal)this).BlobDuration, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Specifications of the Log for Azure Monitoring + [System.ComponentModel.TypeConverter(typeof(LogSpecificationTypeConverter))] + public partial interface ILogSpecification + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.TypeConverter.cs new file mode 100644 index 000000000000..f9fc327ffdc1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class LogSpecificationTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ILogSpecification ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return LogSpecification.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return LogSpecification.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return LogSpecification.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/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.cs new file mode 100644 index 000000000000..bcb179b58586 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Specifications of the Log for Azure Monitoring + public partial class LogSpecification : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecificationInternal + { + + /// Backing field for property. + private string _blobDuration; + + /// Blob duration of the log + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BlobDuration { get => this._blobDuration; set => this._blobDuration = value; } + + /// Backing field for property. + private string _displayName; + + /// Localized friendly display name of the log + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private string _name; + + /// Name of the log + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public LogSpecification() + { + + } + } + /// Specifications of the Log for Azure Monitoring + public partial interface ILogSpecification : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Blob duration of the log + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Blob duration of the log", + SerializedName = @"blobDuration", + PossibleTypes = new [] { typeof(string) })] + string BlobDuration { get; set; } + /// Localized friendly display name of the log + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly display name of the log", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Name of the log + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the log", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Specifications of the Log for Azure Monitoring + internal partial interface ILogSpecificationInternal + + { + /// Blob duration of the log + string BlobDuration { get; set; } + /// Localized friendly display name of the log + string DisplayName { get; set; } + /// Name of the log + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.json.cs new file mode 100644 index 000000000000..4610a88ad2fd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/LogSpecification.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Specifications of the Log for Azure Monitoring + public partial class LogSpecification + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new LogSpecification(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal LogSpecification(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_blobDuration = If( json?.PropertyT("blobDuration"), out var __jsonBlobDuration) ? (string)__jsonBlobDuration : (string)BlobDuration;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != (((object)this._blobDuration)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._blobDuration.ToString()) : null, "blobDuration" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.PowerShell.cs new file mode 100644 index 000000000000..70630212be88 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Managed identity properties retrieved from ARM request headers. + [System.ComponentModel.TypeConverter(typeof(ManagedIdentityPropertiesTypeConverter))] + public partial class ManagedIdentityProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ManagedIdentityProperties(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.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ManagedIdentityProperties(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.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ManagedIdentityProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType.CreateFrom); + } + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).UserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).UserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ManagedIdentityProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType.CreateFrom); + } + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).UserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal)this).UserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentitiesTypeConverter.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Managed identity properties retrieved from ARM request headers. + [System.ComponentModel.TypeConverter(typeof(ManagedIdentityPropertiesTypeConverter))] + public partial interface IManagedIdentityProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.TypeConverter.cs new file mode 100644 index 000000000000..186e59fd6857 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ManagedIdentityPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ManagedIdentityProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ManagedIdentityProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ManagedIdentityProperties.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/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.cs new file mode 100644 index 000000000000..0aeefda7c12c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Managed identity properties retrieved from ARM request headers. + public partial class ManagedIdentityProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityPropertiesInternal + { + + /// Backing field for property. + private string _principalId; + + /// Principal Id of system-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; set => this._principalId = value; } + + /// Backing field for property. + private string _tenantId; + + /// Tenant Id of system-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string TenantId { get => this._tenantId; set => this._tenantId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? _type; + + /// Type of the managed identity + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? Type { get => this._type; set => this._type = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities _userAssignedIdentity; + + /// Properties of user-assigned managed identities + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities UserAssignedIdentity { get => (this._userAssignedIdentity = this._userAssignedIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentities()); set => this._userAssignedIdentity = value; } + + /// Creates an new instance. + public ManagedIdentityProperties() + { + + } + } + /// Managed identity properties retrieved from ARM request headers. + public partial interface IManagedIdentityProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Principal Id of system-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal Id of system-assigned managed identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; set; } + /// Tenant Id of system-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id of system-assigned managed identity.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; set; } + /// Type of the managed identity + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the managed identity", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? Type { get; set; } + /// Properties of user-assigned managed identities + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Properties of user-assigned managed identities", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities UserAssignedIdentity { get; set; } + + } + /// Managed identity properties retrieved from ARM request headers. + internal partial interface IManagedIdentityPropertiesInternal + + { + /// Principal Id of system-assigned managed identity. + string PrincipalId { get; set; } + /// Tenant Id of system-assigned managed identity. + string TenantId { get; set; } + /// Type of the managed identity + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? Type { get; set; } + /// Properties of user-assigned managed identities + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities UserAssignedIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.json.cs new file mode 100644 index 000000000000..b1bebea1bf7b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ManagedIdentityProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Managed identity properties retrieved from ARM request headers. + public partial class ManagedIdentityProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IManagedIdentityProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ManagedIdentityProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ManagedIdentityProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_tenantId = If( json?.PropertyT("tenantId"), out var __jsonTenantId) ? (string)__jsonTenantId : (string)TenantId;} + {_userAssignedIdentity = If( json?.PropertyT("userAssignedIdentities"), out var __jsonUserAssignedIdentities) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentities.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + AddIf( null != (((object)this._tenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._tenantId.ToString()) : null, "tenantId" ,container.Add ); + AddIf( null != this._userAssignedIdentity ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.PowerShell.cs new file mode 100644 index 000000000000..6b18f91ba4fb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Purchasing 3rd Party product for one Azure Spring Apps instance + [System.ComponentModel.TypeConverter(typeof(MarketplaceResourceTypeConverter))] + public partial class MarketplaceResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMarketplaceResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MarketplaceResource(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.AppPlatform.Models.Api20221101Preview.IMarketplaceResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MarketplaceResource(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.AppPlatform.Models.Api20221101Preview.IMarketplaceResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MarketplaceResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Plan")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Plan = (string) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Plan, global::System.Convert.ToString); + } + if (content.Contains("Publisher")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Publisher, global::System.Convert.ToString); + } + if (content.Contains("Product")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Product = (string) content.GetValueForProperty("Product",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Product, 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 MarketplaceResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Plan")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Plan = (string) content.GetValueForProperty("Plan",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Plan, global::System.Convert.ToString); + } + if (content.Contains("Publisher")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Publisher = (string) content.GetValueForProperty("Publisher",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Publisher, global::System.Convert.ToString); + } + if (content.Contains("Product")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Product = (string) content.GetValueForProperty("Product",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal)this).Product, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Purchasing 3rd Party product for one Azure Spring Apps instance + [System.ComponentModel.TypeConverter(typeof(MarketplaceResourceTypeConverter))] + public partial interface IMarketplaceResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.TypeConverter.cs new file mode 100644 index 000000000000..ef5db3830ebf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MarketplaceResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMarketplaceResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MarketplaceResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MarketplaceResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MarketplaceResource.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/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.cs new file mode 100644 index 000000000000..c9e8efa78330 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Purchasing 3rd Party product for one Azure Spring Apps instance + public partial class MarketplaceResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResourceInternal + { + + /// Backing field for property. + private string _plan; + + /// The plan id of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Plan { get => this._plan; set => this._plan = value; } + + /// Backing field for property. + private string _product; + + /// The 3rd Party artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Product { get => this._product; set => this._product = value; } + + /// Backing field for property. + private string _publisher; + + /// The publisher id of the 3rd Party Artifact that is being bought. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Publisher { get => this._publisher; set => this._publisher = value; } + + /// Creates an new instance. + public MarketplaceResource() + { + + } + } + /// Purchasing 3rd Party product for one Azure Spring Apps instance + public partial interface IMarketplaceResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The plan id of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The plan id of the 3rd Party Artifact that is being procured.", + SerializedName = @"plan", + PossibleTypes = new [] { typeof(string) })] + string Plan { get; set; } + /// The 3rd Party artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured.", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + string Product { get; set; } + /// The publisher id of the 3rd Party Artifact that is being bought. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher id of the 3rd Party Artifact that is being bought.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string Publisher { get; set; } + + } + /// Purchasing 3rd Party product for one Azure Spring Apps instance + internal partial interface IMarketplaceResourceInternal + + { + /// The plan id of the 3rd Party Artifact that is being procured. + string Plan { get; set; } + /// The 3rd Party artifact that is being procured. + string Product { get; set; } + /// The publisher id of the 3rd Party Artifact that is being bought. + string Publisher { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.json.cs new file mode 100644 index 000000000000..1fb6e2d2354a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MarketplaceResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Purchasing 3rd Party product for one Azure Spring Apps instance + public partial class MarketplaceResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new MarketplaceResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal MarketplaceResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_plan = If( json?.PropertyT("plan"), out var __jsonPlan) ? (string)__jsonPlan : (string)Plan;} + {_publisher = If( json?.PropertyT("publisher"), out var __jsonPublisher) ? (string)__jsonPublisher : (string)Publisher;} + {_product = If( json?.PropertyT("product"), out var __jsonProduct) ? (string)__jsonProduct : (string)Product;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._plan)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._plan.ToString()) : null, "plan" ,container.Add ); + AddIf( null != (((object)this._publisher)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._publisher.ToString()) : null, "publisher" ,container.Add ); + AddIf( null != (((object)this._product)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._product.ToString()) : null, "product" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.PowerShell.cs new file mode 100644 index 000000000000..7a4d39ff7ccf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Specifications of the Dimension of metrics + [System.ComponentModel.TypeConverter(typeof(MetricDimensionTypeConverter))] + public partial class MetricDimension + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMetricDimension DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MetricDimension(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.AppPlatform.Models.Api20221101Preview.IMetricDimension DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MetricDimension(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.AppPlatform.Models.Api20221101Preview.IMetricDimension FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MetricDimension(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.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("ToBeExportedForShoebox")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).ToBeExportedForShoebox = (bool?) content.GetValueForProperty("ToBeExportedForShoebox",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).ToBeExportedForShoebox, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal MetricDimension(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.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("ToBeExportedForShoebox")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).ToBeExportedForShoebox = (bool?) content.GetValueForProperty("ToBeExportedForShoebox",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal)this).ToBeExportedForShoebox, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Specifications of the Dimension of metrics + [System.ComponentModel.TypeConverter(typeof(MetricDimensionTypeConverter))] + public partial interface IMetricDimension + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.TypeConverter.cs new file mode 100644 index 000000000000..489834c3f931 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MetricDimensionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMetricDimension ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MetricDimension.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MetricDimension.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MetricDimension.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/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.cs new file mode 100644 index 000000000000..4145fdd84567 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Specifications of the Dimension of metrics + public partial class MetricDimension : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimensionInternal + { + + /// Backing field for property. + private string _displayName; + + /// Localized friendly display name of the dimension + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private string _name; + + /// Name of the dimension + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private bool? _toBeExportedForShoebox; + + /// Whether this dimension should be included for the Shoebox export scenario + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? ToBeExportedForShoebox { get => this._toBeExportedForShoebox; set => this._toBeExportedForShoebox = value; } + + /// Creates an new instance. + public MetricDimension() + { + + } + } + /// Specifications of the Dimension of metrics + public partial interface IMetricDimension : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Localized friendly display name of the dimension + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly display name of the dimension", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Name of the dimension + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the dimension", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Whether this dimension should be included for the Shoebox export scenario + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether this dimension should be included for the Shoebox export scenario", + SerializedName = @"toBeExportedForShoebox", + PossibleTypes = new [] { typeof(bool) })] + bool? ToBeExportedForShoebox { get; set; } + + } + /// Specifications of the Dimension of metrics + internal partial interface IMetricDimensionInternal + + { + /// Localized friendly display name of the dimension + string DisplayName { get; set; } + /// Name of the dimension + string Name { get; set; } + /// Whether this dimension should be included for the Shoebox export scenario + bool? ToBeExportedForShoebox { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.json.cs new file mode 100644 index 000000000000..3823a56b8b5c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricDimension.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Specifications of the Dimension of metrics + public partial class MetricDimension + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new MetricDimension(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal MetricDimension(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_toBeExportedForShoebox = If( json?.PropertyT("toBeExportedForShoebox"), out var __jsonToBeExportedForShoebox) ? (bool?)__jsonToBeExportedForShoebox : ToBeExportedForShoebox;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != this._toBeExportedForShoebox ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._toBeExportedForShoebox) : null, "toBeExportedForShoebox" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.PowerShell.cs new file mode 100644 index 000000000000..8c5cea6b5e63 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.PowerShell.cs @@ -0,0 +1,226 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Specifications of the Metrics for Azure Monitoring + [System.ComponentModel.TypeConverter(typeof(MetricSpecificationTypeConverter))] + public partial class MetricSpecification + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMetricSpecification DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MetricSpecification(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.AppPlatform.Models.Api20221101Preview.IMetricSpecification DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MetricSpecification(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.AppPlatform.Models.Api20221101Preview.IMetricSpecification FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MetricSpecification(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.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).DisplayDescription, global::System.Convert.ToString); + } + if (content.Contains("Unit")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Unit = (string) content.GetValueForProperty("Unit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Unit, global::System.Convert.ToString); + } + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Category, global::System.Convert.ToString); + } + if (content.Contains("AggregationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).AggregationType = (string) content.GetValueForProperty("AggregationType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).AggregationType, global::System.Convert.ToString); + } + if (content.Contains("SupportedAggregationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SupportedAggregationType = (string[]) content.GetValueForProperty("SupportedAggregationType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SupportedAggregationType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SupportedTimeGrainType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SupportedTimeGrainType = (string[]) content.GetValueForProperty("SupportedTimeGrainType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SupportedTimeGrainType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FillGapWithZero")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).FillGapWithZero = (bool?) content.GetValueForProperty("FillGapWithZero",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).FillGapWithZero, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Dimension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Dimension = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension[]) content.GetValueForProperty("Dimension",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Dimension, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricDimensionTypeConverter.ConvertFrom)); + } + if (content.Contains("SourceMdmNamespace")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SourceMdmNamespace = (string) content.GetValueForProperty("SourceMdmNamespace",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SourceMdmNamespace, 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 MetricSpecification(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.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).DisplayDescription, global::System.Convert.ToString); + } + if (content.Contains("Unit")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Unit = (string) content.GetValueForProperty("Unit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Unit, global::System.Convert.ToString); + } + if (content.Contains("Category")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Category, global::System.Convert.ToString); + } + if (content.Contains("AggregationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).AggregationType = (string) content.GetValueForProperty("AggregationType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).AggregationType, global::System.Convert.ToString); + } + if (content.Contains("SupportedAggregationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SupportedAggregationType = (string[]) content.GetValueForProperty("SupportedAggregationType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SupportedAggregationType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SupportedTimeGrainType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SupportedTimeGrainType = (string[]) content.GetValueForProperty("SupportedTimeGrainType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SupportedTimeGrainType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FillGapWithZero")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).FillGapWithZero = (bool?) content.GetValueForProperty("FillGapWithZero",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).FillGapWithZero, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Dimension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Dimension = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension[]) content.GetValueForProperty("Dimension",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).Dimension, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricDimensionTypeConverter.ConvertFrom)); + } + if (content.Contains("SourceMdmNamespace")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SourceMdmNamespace = (string) content.GetValueForProperty("SourceMdmNamespace",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal)this).SourceMdmNamespace, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Specifications of the Metrics for Azure Monitoring + [System.ComponentModel.TypeConverter(typeof(MetricSpecificationTypeConverter))] + public partial interface IMetricSpecification + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.TypeConverter.cs new file mode 100644 index 000000000000..3eab99818bfa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MetricSpecificationTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMetricSpecification ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MetricSpecification.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MetricSpecification.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MetricSpecification.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/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.cs new file mode 100644 index 000000000000..74fd7a6beb62 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.cs @@ -0,0 +1,239 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Specifications of the Metrics for Azure Monitoring + public partial class MetricSpecification : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecificationInternal + { + + /// Backing field for property. + private string _aggregationType; + + /// + /// Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AggregationType { get => this._aggregationType; set => this._aggregationType = value; } + + /// Backing field for property. + private string _category; + + /// + /// Name of the metric category that the metric belongs to. A metric can only belong to a single category. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Category { get => this._category; set => this._category = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension[] _dimension; + + /// Dimensions of the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension[] Dimension { get => this._dimension; set => this._dimension = value; } + + /// Backing field for property. + private string _displayDescription; + + /// Localized friendly description of the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DisplayDescription { get => this._displayDescription; set => this._displayDescription = value; } + + /// Backing field for property. + private string _displayName; + + /// Localized friendly display name of the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private bool? _fillGapWithZero; + + /// + /// Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? FillGapWithZero { get => this._fillGapWithZero; set => this._fillGapWithZero = value; } + + /// Backing field for property. + private string _name; + + /// Name of the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _sourceMdmNamespace; + + /// Name of the MDM namespace. Optional. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string SourceMdmNamespace { get => this._sourceMdmNamespace; set => this._sourceMdmNamespace = value; } + + /// Backing field for property. + private string[] _supportedAggregationType; + + /// Supported aggregation types + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] SupportedAggregationType { get => this._supportedAggregationType; set => this._supportedAggregationType = value; } + + /// Backing field for property. + private string[] _supportedTimeGrainType; + + /// Supported time grain types + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] SupportedTimeGrainType { get => this._supportedTimeGrainType; set => this._supportedTimeGrainType = value; } + + /// Backing field for property. + private string _unit; + + /// Unit that makes sense for the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Unit { get => this._unit; set => this._unit = value; } + + /// Creates an new instance. + public MetricSpecification() + { + + } + } + /// Specifications of the Metrics for Azure Monitoring + public partial interface IMetricSpecification : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count.", + SerializedName = @"aggregationType", + PossibleTypes = new [] { typeof(string) })] + string AggregationType { get; set; } + /// + /// Name of the metric category that the metric belongs to. A metric can only belong to a single category. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the metric category that the metric belongs to. A metric can only belong to a single category.", + SerializedName = @"category", + PossibleTypes = new [] { typeof(string) })] + string Category { get; set; } + /// Dimensions of the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Dimensions of the metric", + SerializedName = @"dimensions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension[] Dimension { get; set; } + /// Localized friendly description of the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly description of the metric", + SerializedName = @"displayDescription", + PossibleTypes = new [] { typeof(string) })] + string DisplayDescription { get; set; } + /// Localized friendly display name of the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly display name of the metric", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// + /// Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published.", + SerializedName = @"fillGapWithZero", + PossibleTypes = new [] { typeof(bool) })] + bool? FillGapWithZero { get; set; } + /// Name of the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the metric", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Name of the MDM namespace. Optional. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the MDM namespace. Optional.", + SerializedName = @"sourceMdmNamespace", + PossibleTypes = new [] { typeof(string) })] + string SourceMdmNamespace { get; set; } + /// Supported aggregation types + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Supported aggregation types", + SerializedName = @"supportedAggregationTypes", + PossibleTypes = new [] { typeof(string) })] + string[] SupportedAggregationType { get; set; } + /// Supported time grain types + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Supported time grain types", + SerializedName = @"supportedTimeGrainTypes", + PossibleTypes = new [] { typeof(string) })] + string[] SupportedTimeGrainType { get; set; } + /// Unit that makes sense for the metric + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Unit that makes sense for the metric", + SerializedName = @"unit", + PossibleTypes = new [] { typeof(string) })] + string Unit { get; set; } + + } + /// Specifications of the Metrics for Azure Monitoring + internal partial interface IMetricSpecificationInternal + + { + /// + /// Only provide one value for this field. Valid values: Average, Minimum, Maximum, Total, Count. + /// + string AggregationType { get; set; } + /// + /// Name of the metric category that the metric belongs to. A metric can only belong to a single category. + /// + string Category { get; set; } + /// Dimensions of the metric + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricDimension[] Dimension { get; set; } + /// Localized friendly description of the metric + string DisplayDescription { get; set; } + /// Localized friendly display name of the metric + string DisplayName { get; set; } + /// + /// Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published. + /// + bool? FillGapWithZero { get; set; } + /// Name of the metric + string Name { get; set; } + /// Name of the MDM namespace. Optional. + string SourceMdmNamespace { get; set; } + /// Supported aggregation types + string[] SupportedAggregationType { get; set; } + /// Supported time grain types + string[] SupportedTimeGrainType { get; set; } + /// Unit that makes sense for the metric + string Unit { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.json.cs new file mode 100644 index 000000000000..ae975e92aeaf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MetricSpecification.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Specifications of the Metrics for Azure Monitoring + public partial class MetricSpecification + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new MetricSpecification(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal MetricSpecification(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_displayDescription = If( json?.PropertyT("displayDescription"), out var __jsonDisplayDescription) ? (string)__jsonDisplayDescription : (string)DisplayDescription;} + {_unit = If( json?.PropertyT("unit"), out var __jsonUnit) ? (string)__jsonUnit : (string)Unit;} + {_category = If( json?.PropertyT("category"), out var __jsonCategory) ? (string)__jsonCategory : (string)Category;} + {_aggregationType = If( json?.PropertyT("aggregationType"), out var __jsonAggregationType) ? (string)__jsonAggregationType : (string)AggregationType;} + {_supportedAggregationType = If( json?.PropertyT("supportedAggregationTypes"), out var __jsonSupportedAggregationTypes) ? If( __jsonSupportedAggregationTypes as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : SupportedAggregationType;} + {_supportedTimeGrainType = If( json?.PropertyT("supportedTimeGrainTypes"), out var __jsonSupportedTimeGrainTypes) ? If( __jsonSupportedTimeGrainTypes as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : SupportedTimeGrainType;} + {_fillGapWithZero = If( json?.PropertyT("fillGapWithZero"), out var __jsonFillGapWithZero) ? (bool?)__jsonFillGapWithZero : FillGapWithZero;} + {_dimension = If( json?.PropertyT("dimensions"), out var __jsonDimensions) ? If( __jsonDimensions as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IMetricDimension) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricDimension.FromJson(__k) )) ))() : null : Dimension;} + {_sourceMdmNamespace = If( json?.PropertyT("sourceMdmNamespace"), out var __jsonSourceMdmNamespace) ? (string)__jsonSourceMdmNamespace : (string)SourceMdmNamespace;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != (((object)this._displayDescription)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._displayDescription.ToString()) : null, "displayDescription" ,container.Add ); + AddIf( null != (((object)this._unit)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._unit.ToString()) : null, "unit" ,container.Add ); + AddIf( null != (((object)this._category)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._category.ToString()) : null, "category" ,container.Add ); + AddIf( null != (((object)this._aggregationType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._aggregationType.ToString()) : null, "aggregationType" ,container.Add ); + if (null != this._supportedAggregationType) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._supportedAggregationType ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("supportedAggregationTypes",__w); + } + if (null != this._supportedTimeGrainType) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._supportedTimeGrainType ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("supportedTimeGrainTypes",__r); + } + AddIf( null != this._fillGapWithZero ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._fillGapWithZero) : null, "fillGapWithZero" ,container.Add ); + if (null != this._dimension) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __n in this._dimension ) + { + AddIf(__n?.ToJson(null, serializationMode) ,__m.Add); + } + container.Add("dimensions",__m); + } + AddIf( null != (((object)this._sourceMdmNamespace)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._sourceMdmNamespace.ToString()) : null, "sourceMdmNamespace" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.PowerShell.cs new file mode 100644 index 000000000000..a2cc5225492a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Monitoring Setting properties payload + [System.ComponentModel.TypeConverter(typeof(MonitoringSettingPropertiesTypeConverter))] + public partial class MonitoringSettingProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MonitoringSettingProperties(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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MonitoringSettingProperties(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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MonitoringSettingProperties(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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("AppInsightsAgentVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsAgentVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions) content.GetValueForProperty("AppInsightsAgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsAgentVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersionsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState.CreateFrom); + } + if (content.Contains("TraceEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).TraceEnabled = (bool?) content.GetValueForProperty("TraceEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).TraceEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AppInsightsInstrumentationKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsInstrumentationKey = (string) content.GetValueForProperty("AppInsightsInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsInstrumentationKey, global::System.Convert.ToString); + } + if (content.Contains("AppInsightsSamplingRate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsSamplingRate = (double?) content.GetValueForProperty("AppInsightsSamplingRate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsSamplingRate, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("AppInsightAgentVersionJava")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightAgentVersionJava = (string) content.GetValueForProperty("AppInsightAgentVersionJava",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightAgentVersionJava, 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 MonitoringSettingProperties(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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("AppInsightsAgentVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsAgentVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions) content.GetValueForProperty("AppInsightsAgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsAgentVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersionsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState.CreateFrom); + } + if (content.Contains("TraceEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).TraceEnabled = (bool?) content.GetValueForProperty("TraceEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).TraceEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AppInsightsInstrumentationKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsInstrumentationKey = (string) content.GetValueForProperty("AppInsightsInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsInstrumentationKey, global::System.Convert.ToString); + } + if (content.Contains("AppInsightsSamplingRate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsSamplingRate = (double?) content.GetValueForProperty("AppInsightsSamplingRate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsSamplingRate, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("AppInsightAgentVersionJava")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightAgentVersionJava = (string) content.GetValueForProperty("AppInsightAgentVersionJava",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)this).AppInsightAgentVersionJava, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Monitoring Setting properties payload + [System.ComponentModel.TypeConverter(typeof(MonitoringSettingPropertiesTypeConverter))] + public partial interface IMonitoringSettingProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.TypeConverter.cs new file mode 100644 index 000000000000..f491f0f6f19d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MonitoringSettingPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MonitoringSettingProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MonitoringSettingProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MonitoringSettingProperties.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/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.cs new file mode 100644 index 000000000000..bb1f550b5c37 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Monitoring Setting properties payload + public partial class MonitoringSettingProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal + { + + /// Indicates the version of application insight java agent + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AppInsightAgentVersionJava { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal)AppInsightsAgentVersion).Java; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions _appInsightsAgentVersion; + + /// Indicates the versions of application insight agent + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions AppInsightsAgentVersion { get => (this._appInsightsAgentVersion = this._appInsightsAgentVersion ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersions()); set => this._appInsightsAgentVersion = value; } + + /// Backing field for property. + private string _appInsightsInstrumentationKey; + + /// + /// Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppInsightsInstrumentationKey { get => this._appInsightsInstrumentationKey; set => this._appInsightsInstrumentationKey = value; } + + /// Backing field for property. + private double? _appInsightsSamplingRate; + + /// + /// Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public double? AppInsightsSamplingRate { get => this._appInsightsSamplingRate; set => this._appInsightsSamplingRate = value; } + + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Code = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError _error; + + /// Error when apply Monitoring Setting changes. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Error()); set => this._error = value; } + + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IErrorInternal)Error).Message = value ?? null; } + + /// Internal Acessors for AppInsightAgentVersionJava + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal.AppInsightAgentVersionJava { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal)AppInsightsAgentVersion).Java; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersionsInternal)AppInsightsAgentVersion).Java = value; } + + /// Internal Acessors for AppInsightsAgentVersion + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal.AppInsightsAgentVersion { get => (this._appInsightsAgentVersion = this._appInsightsAgentVersion ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersions()); set { {_appInsightsAgentVersion = value;} } } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Error()); set { {_error = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? _provisioningState; + + /// State of the Monitoring Setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private bool? _traceEnabled; + + /// + /// Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please + /// leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? TraceEnabled { get => this._traceEnabled; set => this._traceEnabled = value; } + + /// Creates an new instance. + public MonitoringSettingProperties() + { + + } + } + /// Monitoring Setting properties payload + public partial interface IMonitoringSettingProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Indicates the version of application insight java agent + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Indicates the version of application insight java agent", + SerializedName = @"java", + PossibleTypes = new [] { typeof(string) })] + string AppInsightAgentVersionJava { get; } + /// + /// Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings", + SerializedName = @"appInsightsInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + string AppInsightsInstrumentationKey { get; set; } + /// + /// Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0]", + SerializedName = @"appInsightsSamplingRate", + PossibleTypes = new [] { typeof(double) })] + double? AppInsightsSamplingRate { get; set; } + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// State of the Monitoring Setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Monitoring Setting.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? ProvisioningState { get; } + /// + /// Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please + /// leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not", + SerializedName = @"traceEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? TraceEnabled { get; set; } + + } + /// Monitoring Setting properties payload + internal partial interface IMonitoringSettingPropertiesInternal + + { + /// Indicates the version of application insight java agent + string AppInsightAgentVersionJava { get; set; } + /// Indicates the versions of application insight agent + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions AppInsightsAgentVersion { get; set; } + /// + /// Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + /// + string AppInsightsInstrumentationKey { get; set; } + /// + /// Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + /// + double? AppInsightsSamplingRate { get; set; } + /// The code of error. + string Code { get; set; } + /// Error when apply Monitoring Setting changes. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get; set; } + /// The message of error. + string Message { get; set; } + /// State of the Monitoring Setting. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? ProvisioningState { get; set; } + /// + /// Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please + /// leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + /// + bool? TraceEnabled { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.json.cs new file mode 100644 index 000000000000..8eaeb6e2b6a2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Monitoring Setting properties payload + public partial class MonitoringSettingProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new MonitoringSettingProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal MonitoringSettingProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.Error.FromJson(__jsonError) : Error;} + {_appInsightsAgentVersion = If( json?.PropertyT("appInsightsAgentVersions"), out var __jsonAppInsightsAgentVersions) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersions.FromJson(__jsonAppInsightsAgentVersions) : AppInsightsAgentVersion;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_traceEnabled = If( json?.PropertyT("traceEnabled"), out var __jsonTraceEnabled) ? (bool?)__jsonTraceEnabled : TraceEnabled;} + {_appInsightsInstrumentationKey = If( json?.PropertyT("appInsightsInstrumentationKey"), out var __jsonAppInsightsInstrumentationKey) ? (string)__jsonAppInsightsInstrumentationKey : (string)AppInsightsInstrumentationKey;} + {_appInsightsSamplingRate = If( json?.PropertyT("appInsightsSamplingRate"), out var __jsonAppInsightsSamplingRate) ? (double?)__jsonAppInsightsSamplingRate : AppInsightsSamplingRate;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._error ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._error.ToJson(null,serializationMode) : null, "error" ,container.Add ); + AddIf( null != this._appInsightsAgentVersion ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._appInsightsAgentVersion.ToJson(null,serializationMode) : null, "appInsightsAgentVersions" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != this._traceEnabled ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._traceEnabled) : null, "traceEnabled" ,container.Add ); + AddIf( null != (((object)this._appInsightsInstrumentationKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._appInsightsInstrumentationKey.ToString()) : null, "appInsightsInstrumentationKey" ,container.Add ); + AddIf( null != this._appInsightsSamplingRate ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((double)this._appInsightsSamplingRate) : null, "appInsightsSamplingRate" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.PowerShell.cs new file mode 100644 index 000000000000..bbf702273886 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.PowerShell.cs @@ -0,0 +1,298 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Monitoring Setting resource + [System.ComponentModel.TypeConverter(typeof(MonitoringSettingResourceTypeConverter))] + public partial class MonitoringSettingResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new MonitoringSettingResource(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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new MonitoringSettingResource(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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal MonitoringSettingResource(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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("AppInsightsAgentVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsAgentVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions) content.GetValueForProperty("AppInsightsAgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsAgentVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersionsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState.CreateFrom); + } + if (content.Contains("TraceEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).TraceEnabled = (bool?) content.GetValueForProperty("TraceEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).TraceEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AppInsightsInstrumentationKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsInstrumentationKey = (string) content.GetValueForProperty("AppInsightsInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsInstrumentationKey, global::System.Convert.ToString); + } + if (content.Contains("AppInsightsSamplingRate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsSamplingRate = (double?) content.GetValueForProperty("AppInsightsSamplingRate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsSamplingRate, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("AppInsightAgentVersionJava")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightAgentVersionJava = (string) content.GetValueForProperty("AppInsightAgentVersionJava",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightAgentVersionJava, 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 MonitoringSettingResource(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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Error")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ErrorTypeConverter.ConvertFrom); + } + if (content.Contains("AppInsightsAgentVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsAgentVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions) content.GetValueForProperty("AppInsightsAgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsAgentVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationInsightsAgentVersionsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState.CreateFrom); + } + if (content.Contains("TraceEnabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).TraceEnabled = (bool?) content.GetValueForProperty("TraceEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).TraceEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AppInsightsInstrumentationKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsInstrumentationKey = (string) content.GetValueForProperty("AppInsightsInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsInstrumentationKey, global::System.Convert.ToString); + } + if (content.Contains("AppInsightsSamplingRate")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsSamplingRate = (double?) content.GetValueForProperty("AppInsightsSamplingRate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightsSamplingRate, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("Code")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Code, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).Message, global::System.Convert.ToString); + } + if (content.Contains("AppInsightAgentVersionJava")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightAgentVersionJava = (string) content.GetValueForProperty("AppInsightAgentVersionJava",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal)this).AppInsightAgentVersionJava, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Monitoring Setting resource + [System.ComponentModel.TypeConverter(typeof(MonitoringSettingResourceTypeConverter))] + public partial interface IMonitoringSettingResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.TypeConverter.cs new file mode 100644 index 000000000000..4715d7f0f859 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class MonitoringSettingResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return MonitoringSettingResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return MonitoringSettingResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return MonitoringSettingResource.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/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.cs new file mode 100644 index 000000000000..d96a2c2fcfd2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.cs @@ -0,0 +1,252 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Monitoring Setting resource + public partial class MonitoringSettingResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Indicates the version of application insight java agent + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AppInsightAgentVersionJava { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightAgentVersionJava; } + + /// + /// Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AppInsightsInstrumentationKey { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsInstrumentationKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsInstrumentationKey = value ?? null; } + + /// + /// Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public double? AppInsightsSamplingRate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsSamplingRate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsSamplingRate = value ?? default(double); } + + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Code { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).Code = value ?? null; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Message { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).Message = value ?? null; } + + /// Internal Acessors for AppInsightAgentVersionJava + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal.AppInsightAgentVersionJava { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightAgentVersionJava; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightAgentVersionJava = value; } + + /// Internal Acessors for AppInsightsAgentVersion + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal.AppInsightsAgentVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsAgentVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsAgentVersion = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal.Error { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).Error; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).Error = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties _property; + + /// Properties of the Monitoring Setting resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingProperties()); set => this._property = value; } + + /// State of the Monitoring Setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).ProvisioningState; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// + /// Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please + /// leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? TraceEnabled { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).TraceEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingPropertiesInternal)Property).TraceEnabled = value ?? default(bool); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public MonitoringSettingResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Monitoring Setting resource + public partial interface IMonitoringSettingResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Indicates the version of application insight java agent + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Indicates the version of application insight java agent", + SerializedName = @"java", + PossibleTypes = new [] { typeof(string) })] + string AppInsightAgentVersionJava { get; } + /// + /// Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings", + SerializedName = @"appInsightsInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + string AppInsightsInstrumentationKey { get; set; } + /// + /// Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0]", + SerializedName = @"appInsightsSamplingRate", + PossibleTypes = new [] { typeof(double) })] + double? AppInsightsSamplingRate { get; set; } + /// The code of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + string Code { get; set; } + /// The message of error. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// State of the Monitoring Setting. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Monitoring Setting.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? ProvisioningState { get; } + /// + /// Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please + /// leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not", + SerializedName = @"traceEnabled", + PossibleTypes = new [] { typeof(bool) })] + bool? TraceEnabled { get; set; } + + } + /// Monitoring Setting resource + internal partial interface IMonitoringSettingResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Indicates the version of application insight java agent + string AppInsightAgentVersionJava { get; set; } + /// Indicates the versions of application insight agent + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationInsightsAgentVersions AppInsightsAgentVersion { get; set; } + /// + /// Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + /// + string AppInsightsInstrumentationKey { get; set; } + /// + /// Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + /// + double? AppInsightsSamplingRate { get; set; } + /// The code of error. + string Code { get; set; } + /// Error when apply Monitoring Setting changes. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IError Error { get; set; } + /// The message of error. + string Message { get; set; } + /// Properties of the Monitoring Setting resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingProperties Property { get; set; } + /// State of the Monitoring Setting. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? ProvisioningState { get; set; } + /// + /// Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please + /// leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + /// + bool? TraceEnabled { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.json.cs new file mode 100644 index 000000000000..fd408ab3aed8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/MonitoringSettingResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Monitoring Setting resource + public partial class MonitoringSettingResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new MonitoringSettingResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal MonitoringSettingResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingProperties.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.PowerShell.cs new file mode 100644 index 000000000000..5775409d5ee1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Name availability result payload + [System.ComponentModel.TypeConverter(typeof(NameAvailabilityTypeConverter))] + public partial class NameAvailability + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.INameAvailability DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NameAvailability(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.AppPlatform.Models.Api20221101Preview.INameAvailability DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NameAvailability(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.AppPlatform.Models.Api20221101Preview.INameAvailability FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NameAvailability(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.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).NameAvailable = (bool?) content.GetValueForProperty("NameAvailable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).NameAvailable, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).Reason, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)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 NameAvailability(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.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).NameAvailable = (bool?) content.GetValueForProperty("NameAvailable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).NameAvailable, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Reason")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).Reason, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Name availability result payload + [System.ComponentModel.TypeConverter(typeof(NameAvailabilityTypeConverter))] + public partial interface INameAvailability + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.TypeConverter.cs new file mode 100644 index 000000000000..deaf698a9e30 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NameAvailabilityTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.INameAvailability ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NameAvailability.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NameAvailability.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NameAvailability.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/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.cs new file mode 100644 index 000000000000..631a61c069db --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Name availability result payload + public partial class NameAvailability : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityInternal + { + + /// Backing field for property. + private string _message; + + /// Message why the name is not available + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Message { get => this._message; set => this._message = value; } + + /// Backing field for property. + private bool? _nameAvailable; + + /// Indicates whether the name is available + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? NameAvailable { get => this._nameAvailable; set => this._nameAvailable = value; } + + /// Backing field for property. + private string _reason; + + /// Reason why the name is not available + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Reason { get => this._reason; set => this._reason = value; } + + /// Creates an new instance. + public NameAvailability() + { + + } + } + /// Name availability result payload + public partial interface INameAvailability : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Message why the name is not available + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Message why the name is not available", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + string Message { get; set; } + /// Indicates whether the name is available + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the name is available", + SerializedName = @"nameAvailable", + PossibleTypes = new [] { typeof(bool) })] + bool? NameAvailable { get; set; } + /// Reason why the name is not available + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Reason why the name is not available", + SerializedName = @"reason", + PossibleTypes = new [] { typeof(string) })] + string Reason { get; set; } + + } + /// Name availability result payload + internal partial interface INameAvailabilityInternal + + { + /// Message why the name is not available + string Message { get; set; } + /// Indicates whether the name is available + bool? NameAvailable { get; set; } + /// Reason why the name is not available + string Reason { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.json.cs new file mode 100644 index 000000000000..db93c75f28c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailability.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Name availability result payload + public partial class NameAvailability + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new NameAvailability(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal NameAvailability(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_reason = If( json?.PropertyT("reason"), out var __jsonReason) ? (string)__jsonReason : (string)Reason;} + {_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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._nameAvailable ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._nameAvailable) : null, "nameAvailable" ,container.Add ); + AddIf( null != (((object)this._reason)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._reason.ToString()) : null, "reason" ,container.Add ); + AddIf( null != (((object)this._message)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.PowerShell.cs new file mode 100644 index 000000000000..1d2083beb16b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Name availability parameters payload + [System.ComponentModel.TypeConverter(typeof(NameAvailabilityParametersTypeConverter))] + public partial class NameAvailabilityParameters + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NameAvailabilityParameters(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.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NameAvailabilityParameters(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.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NameAvailabilityParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal)this).Name, 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 NameAvailabilityParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal)this).Name, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Name availability parameters payload + [System.ComponentModel.TypeConverter(typeof(NameAvailabilityParametersTypeConverter))] + public partial interface INameAvailabilityParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.TypeConverter.cs new file mode 100644 index 000000000000..da2da0ed6542 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NameAvailabilityParametersTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NameAvailabilityParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NameAvailabilityParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NameAvailabilityParameters.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/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.cs new file mode 100644 index 000000000000..defb410e49be --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Name availability parameters payload + public partial class NameAvailabilityParameters : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParametersInternal + { + + /// Backing field for property. + private string _name; + + /// Name to be checked + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type; + + /// Type of the resource to check name availability + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public NameAvailabilityParameters() + { + + } + } + /// Name availability parameters payload + public partial interface INameAvailabilityParameters : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name to be checked + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be checked", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Type of the resource to check name availability + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the resource to check name availability", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; set; } + + } + /// Name availability parameters payload + internal partial interface INameAvailabilityParametersInternal + + { + /// Name to be checked + string Name { get; set; } + /// Type of the resource to check name availability + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.json.cs new file mode 100644 index 000000000000..51efbd9a22a2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NameAvailabilityParameters.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Name availability parameters payload + public partial class NameAvailabilityParameters + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new NameAvailabilityParameters(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal NameAvailabilityParameters(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.PowerShell.cs new file mode 100644 index 000000000000..f7ec0c4ee412 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Uploaded Jar binary for a deployment + [System.ComponentModel.TypeConverter(typeof(NetCoreZipUploadedUserSourceInfoTypeConverter))] + public partial class NetCoreZipUploadedUserSourceInfo + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NetCoreZipUploadedUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NetCoreZipUploadedUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NetCoreZipUploadedUserSourceInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NetCoreMainEntryPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal)this).NetCoreMainEntryPath = (string) content.GetValueForProperty("NetCoreMainEntryPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal)this).NetCoreMainEntryPath, global::System.Convert.ToString); + } + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal)this).RuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath, 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 NetCoreZipUploadedUserSourceInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("NetCoreMainEntryPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal)this).NetCoreMainEntryPath = (string) content.GetValueForProperty("NetCoreMainEntryPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal)this).NetCoreMainEntryPath, global::System.Convert.ToString); + } + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal)this).RuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Uploaded Jar binary for a deployment + [System.ComponentModel.TypeConverter(typeof(NetCoreZipUploadedUserSourceInfoTypeConverter))] + public partial interface INetCoreZipUploadedUserSourceInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.TypeConverter.cs new file mode 100644 index 000000000000..92430329aaed --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NetCoreZipUploadedUserSourceInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NetCoreZipUploadedUserSourceInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NetCoreZipUploadedUserSourceInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NetCoreZipUploadedUserSourceInfo.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/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.cs new file mode 100644 index 000000000000..542543fcb6ff --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.cs @@ -0,0 +1,99 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Uploaded Jar binary for a deployment + public partial class NetCoreZipUploadedUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo __uploadedUserSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UploadedUserSourceInfo(); + + /// Backing field for property. + private string _netCoreMainEntryPath; + + /// The path to the .NET executable relative to zip root + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NetCoreMainEntryPath { get => this._netCoreMainEntryPath; set => this._netCoreMainEntryPath = value; } + + /// Relative path of the storage which stores the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string RelativePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)__uploadedUserSourceInfo).RelativePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)__uploadedUserSourceInfo).RelativePath = value ?? null; } + + /// Backing field for property. + private string _runtimeVersion; + + /// Runtime version of the .Net file + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string RuntimeVersion { get => this._runtimeVersion; set => this._runtimeVersion = value; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Type = value ; } + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Version = value ?? null; } + + /// Creates an new instance. + public NetCoreZipUploadedUserSourceInfo() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__uploadedUserSourceInfo), __uploadedUserSourceInfo); + await eventListener.AssertObjectIsValid(nameof(__uploadedUserSourceInfo), __uploadedUserSourceInfo); + } + } + /// Uploaded Jar binary for a deployment + public partial interface INetCoreZipUploadedUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo + { + /// The path to the .NET executable relative to zip root + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The path to the .NET executable relative to zip root", + SerializedName = @"netCoreMainEntryPath", + PossibleTypes = new [] { typeof(string) })] + string NetCoreMainEntryPath { get; set; } + /// Runtime version of the .Net file + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version of the .Net file", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string RuntimeVersion { get; set; } + + } + /// Uploaded Jar binary for a deployment + internal partial interface INetCoreZipUploadedUserSourceInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal + { + /// The path to the .NET executable relative to zip root + string NetCoreMainEntryPath { get; set; } + /// Runtime version of the .Net file + string RuntimeVersion { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.json.cs new file mode 100644 index 000000000000..d69a770b704c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetCoreZipUploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Uploaded Jar binary for a deployment + public partial class NetCoreZipUploadedUserSourceInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetCoreZipUploadedUserSourceInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new NetCoreZipUploadedUserSourceInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal NetCoreZipUploadedUserSourceInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __uploadedUserSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UploadedUserSourceInfo(json); + {_netCoreMainEntryPath = If( json?.PropertyT("netCoreMainEntryPath"), out var __jsonNetCoreMainEntryPath) ? (string)__jsonNetCoreMainEntryPath : (string)NetCoreMainEntryPath;} + {_runtimeVersion = If( json?.PropertyT("runtimeVersion"), out var __jsonRuntimeVersion) ? (string)__jsonRuntimeVersion : (string)RuntimeVersion;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __uploadedUserSourceInfo?.ToJson(container, serializationMode); + AddIf( null != (((object)this._netCoreMainEntryPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._netCoreMainEntryPath.ToString()) : null, "netCoreMainEntryPath" ,container.Add ); + AddIf( null != (((object)this._runtimeVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._runtimeVersion.ToString()) : null, "runtimeVersion" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.PowerShell.cs new file mode 100644 index 000000000000..d1e0aed447c5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.PowerShell.cs @@ -0,0 +1,224 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Service network profile payload + [System.ComponentModel.TypeConverter(typeof(NetworkProfileTypeConverter))] + public partial class NetworkProfile + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.INetworkProfile DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NetworkProfile(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.AppPlatform.Models.Api20221101Preview.INetworkProfile DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NetworkProfile(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.AppPlatform.Models.Api20221101Preview.INetworkProfile FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NetworkProfile(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OutboundIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("OutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + } + if (content.Contains("IngressConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).IngressConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig) content.GetValueForProperty("IngressConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).IngressConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfigTypeConverter.ConvertFrom); + } + if (content.Contains("ServiceRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceRuntimeSubnetId = (string) content.GetValueForProperty("ServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("AppSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).AppSubnetId = (string) content.GetValueForProperty("AppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).AppSubnetId, global::System.Convert.ToString); + } + if (content.Contains("ServiceCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceCidr = (string) content.GetValueForProperty("ServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceCidr, global::System.Convert.ToString); + } + if (content.Contains("ServiceRuntimeNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("ServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("AppNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).AppNetworkResourceGroup = (string) content.GetValueForProperty("AppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).AppNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("RequiredTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).RequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[]) content.GetValueForProperty("RequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).RequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTrafficTypeConverter.ConvertFrom)); + } + if (content.Contains("OutboundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundType = (string) content.GetValueForProperty("OutboundType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundType, global::System.Convert.ToString); + } + if (content.Contains("OutboundIPPublicIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundIPPublicIP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("IngressConfigReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).IngressConfigReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressConfigReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).IngressConfigReadTimeoutInSecond, (__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 NetworkProfile(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OutboundIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("OutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + } + if (content.Contains("IngressConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).IngressConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig) content.GetValueForProperty("IngressConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).IngressConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfigTypeConverter.ConvertFrom); + } + if (content.Contains("ServiceRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceRuntimeSubnetId = (string) content.GetValueForProperty("ServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("AppSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).AppSubnetId = (string) content.GetValueForProperty("AppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).AppSubnetId, global::System.Convert.ToString); + } + if (content.Contains("ServiceCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceCidr = (string) content.GetValueForProperty("ServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceCidr, global::System.Convert.ToString); + } + if (content.Contains("ServiceRuntimeNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("ServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).ServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("AppNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).AppNetworkResourceGroup = (string) content.GetValueForProperty("AppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).AppNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("RequiredTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).RequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[]) content.GetValueForProperty("RequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).RequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTrafficTypeConverter.ConvertFrom)); + } + if (content.Contains("OutboundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundType = (string) content.GetValueForProperty("OutboundType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundType, global::System.Convert.ToString); + } + if (content.Contains("OutboundIPPublicIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).OutboundIPPublicIP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("IngressConfigReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).IngressConfigReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressConfigReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal)this).IngressConfigReadTimeoutInSecond, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Service network profile payload + [System.ComponentModel.TypeConverter(typeof(NetworkProfileTypeConverter))] + public partial interface INetworkProfile + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.TypeConverter.cs new file mode 100644 index 000000000000..11e43422668c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NetworkProfileTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.INetworkProfile ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NetworkProfile.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NetworkProfile.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NetworkProfile.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/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.cs new file mode 100644 index 000000000000..b82d6493e243 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service network profile payload + public partial class NetworkProfile : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal + { + + /// Backing field for property. + private string _appNetworkResourceGroup; + + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppNetworkResourceGroup { get => this._appNetworkResourceGroup; set => this._appNetworkResourceGroup = value; } + + /// Backing field for property. + private string _appSubnetId; + + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppSubnetId { get => this._appSubnetId; set => this._appSubnetId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig _ingressConfig; + + /// Ingress configuration payload for Azure Spring Apps resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig IngressConfig { get => (this._ingressConfig = this._ingressConfig ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfig()); set => this._ingressConfig = value; } + + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressConfigReadTimeoutInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfigInternal)IngressConfig).ReadTimeoutInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfigInternal)IngressConfig).ReadTimeoutInSecond = value ?? default(int); } + + /// Internal Acessors for IngressConfig + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal.IngressConfig { get => (this._ingressConfig = this._ingressConfig ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfig()); set { {_ingressConfig = value;} } } + + /// Internal Acessors for OutboundIP + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal.OutboundIP { get => (this._outboundIP = this._outboundIP ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPs()); set { {_outboundIP = value;} } } + + /// Internal Acessors for OutboundIPPublicIP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal.OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal)OutboundIP).PublicIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal)OutboundIP).PublicIP = value; } + + /// Internal Acessors for RequiredTraffic + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileInternal.RequiredTraffic { get => this._requiredTraffic; set { {_requiredTraffic = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs _outboundIP; + + /// Desired outbound IP resources for Azure Spring Apps resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs OutboundIP { get => (this._outboundIP = this._outboundIP ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPs()); } + + /// A list of public IP addresses. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal)OutboundIP).PublicIP; } + + /// Backing field for property. + private string _outboundType; + + /// The egress traffic type of Azure Spring Apps VNet instances. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string OutboundType { get => this._outboundType; set => this._outboundType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] _requiredTraffic; + + /// Required inbound or outbound traffics for Azure Spring Apps resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] RequiredTraffic { get => this._requiredTraffic; } + + /// Backing field for property. + private string _serviceCidr; + + /// Azure Spring Apps service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ServiceCidr { get => this._serviceCidr; set => this._serviceCidr = value; } + + /// Backing field for property. + private string _serviceRuntimeNetworkResourceGroup; + + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ServiceRuntimeNetworkResourceGroup { get => this._serviceRuntimeNetworkResourceGroup; set => this._serviceRuntimeNetworkResourceGroup = value; } + + /// Backing field for property. + private string _serviceRuntimeSubnetId; + + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ServiceRuntimeSubnetId { get => this._serviceRuntimeSubnetId; set => this._serviceRuntimeSubnetId = value; } + + /// Creates an new instance. + public NetworkProfile() + { + + } + } + /// Service network profile payload + public partial interface INetworkProfile : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources for customer apps in Azure Spring Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string AppNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + string AppSubnetId { get; set; } + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? IngressConfigReadTimeoutInSecond { get; set; } + /// A list of public IP addresses. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A list of public IP addresses.", + SerializedName = @"publicIPs", + PossibleTypes = new [] { typeof(string) })] + string[] OutboundIPPublicIP { get; } + /// The egress traffic type of Azure Spring Apps VNet instances. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The egress traffic type of Azure Spring Apps VNet instances.", + SerializedName = @"outboundType", + PossibleTypes = new [] { typeof(string) })] + string OutboundType { get; set; } + /// Required inbound or outbound traffics for Azure Spring Apps resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Required inbound or outbound traffics for Azure Spring Apps resource.", + SerializedName = @"requiredTraffics", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] RequiredTraffic { get; } + /// Azure Spring Apps service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Apps service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + string ServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string ServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + string ServiceRuntimeSubnetId { get; set; } + + } + /// Service network profile payload + internal partial interface INetworkProfileInternal + + { + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + string AppNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + string AppSubnetId { get; set; } + /// Ingress configuration payload for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig IngressConfig { get; set; } + /// Ingress read time out in seconds. + int? IngressConfigReadTimeoutInSecond { get; set; } + /// Desired outbound IP resources for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs OutboundIP { get; set; } + /// A list of public IP addresses. + string[] OutboundIPPublicIP { get; set; } + /// The egress traffic type of Azure Spring Apps VNet instances. + string OutboundType { get; set; } + /// Required inbound or outbound traffics for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] RequiredTraffic { get; set; } + /// Azure Spring Apps service reserved CIDR + string ServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + string ServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + string ServiceRuntimeSubnetId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.json.cs new file mode 100644 index 000000000000..621232b8e283 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfile.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service network profile payload + public partial class NetworkProfile + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new NetworkProfile(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal NetworkProfile(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_outboundIP = If( json?.PropertyT("outboundIPs"), out var __jsonOutboundIPs) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPs.FromJson(__jsonOutboundIPs) : OutboundIP;} + {_ingressConfig = If( json?.PropertyT("ingressConfig"), out var __jsonIngressConfig) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfig.FromJson(__jsonIngressConfig) : IngressConfig;} + {_serviceRuntimeSubnetId = If( json?.PropertyT("serviceRuntimeSubnetId"), out var __jsonServiceRuntimeSubnetId) ? (string)__jsonServiceRuntimeSubnetId : (string)ServiceRuntimeSubnetId;} + {_appSubnetId = If( json?.PropertyT("appSubnetId"), out var __jsonAppSubnetId) ? (string)__jsonAppSubnetId : (string)AppSubnetId;} + {_serviceCidr = If( json?.PropertyT("serviceCidr"), out var __jsonServiceCidr) ? (string)__jsonServiceCidr : (string)ServiceCidr;} + {_serviceRuntimeNetworkResourceGroup = If( json?.PropertyT("serviceRuntimeNetworkResourceGroup"), out var __jsonServiceRuntimeNetworkResourceGroup) ? (string)__jsonServiceRuntimeNetworkResourceGroup : (string)ServiceRuntimeNetworkResourceGroup;} + {_appNetworkResourceGroup = If( json?.PropertyT("appNetworkResourceGroup"), out var __jsonAppNetworkResourceGroup) ? (string)__jsonAppNetworkResourceGroup : (string)AppNetworkResourceGroup;} + {_requiredTraffic = If( json?.PropertyT("requiredTraffics"), out var __jsonRequiredTraffics) ? If( __jsonRequiredTraffics as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IRequiredTraffic) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTraffic.FromJson(__u) )) ))() : null : RequiredTraffic;} + {_outboundType = If( json?.PropertyT("outboundType"), out var __jsonOutboundType) ? (string)__jsonOutboundType : (string)OutboundType;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._outboundIP ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._outboundIP.ToJson(null,serializationMode) : null, "outboundIPs" ,container.Add ); + } + AddIf( null != this._ingressConfig ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._ingressConfig.ToJson(null,serializationMode) : null, "ingressConfig" ,container.Add ); + AddIf( null != (((object)this._serviceRuntimeSubnetId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._serviceRuntimeSubnetId.ToString()) : null, "serviceRuntimeSubnetId" ,container.Add ); + AddIf( null != (((object)this._appSubnetId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._appSubnetId.ToString()) : null, "appSubnetId" ,container.Add ); + AddIf( null != (((object)this._serviceCidr)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._serviceCidr.ToString()) : null, "serviceCidr" ,container.Add ); + AddIf( null != (((object)this._serviceRuntimeNetworkResourceGroup)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._serviceRuntimeNetworkResourceGroup.ToString()) : null, "serviceRuntimeNetworkResourceGroup" ,container.Add ); + AddIf( null != (((object)this._appNetworkResourceGroup)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._appNetworkResourceGroup.ToString()) : null, "appNetworkResourceGroup" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._requiredTraffic) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._requiredTraffic ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("requiredTraffics",__w); + } + } + AddIf( null != (((object)this._outboundType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._outboundType.ToString()) : null, "outboundType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.PowerShell.cs new file mode 100644 index 000000000000..10e80c26bec4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Desired outbound IP resources for Azure Spring Apps resource. + [System.ComponentModel.TypeConverter(typeof(NetworkProfileOutboundIPsTypeConverter))] + public partial class NetworkProfileOutboundIPs + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NetworkProfileOutboundIPs(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.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NetworkProfileOutboundIPs(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.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NetworkProfileOutboundIPs(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal)this).PublicIP = (string[]) content.GetValueForProperty("PublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal)this).PublicIP, __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 NetworkProfileOutboundIPs(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal)this).PublicIP = (string[]) content.GetValueForProperty("PublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal)this).PublicIP, __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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Desired outbound IP resources for Azure Spring Apps resource. + [System.ComponentModel.TypeConverter(typeof(NetworkProfileOutboundIPsTypeConverter))] + public partial interface INetworkProfileOutboundIPs + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.TypeConverter.cs new file mode 100644 index 000000000000..ceed8232d308 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NetworkProfileOutboundIPsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NetworkProfileOutboundIPs.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NetworkProfileOutboundIPs.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NetworkProfileOutboundIPs.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/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.cs new file mode 100644 index 000000000000..661adafca06e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Desired outbound IP resources for Azure Spring Apps resource. + public partial class NetworkProfileOutboundIPs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal + { + + /// Internal Acessors for PublicIP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPsInternal.PublicIP { get => this._publicIP; set { {_publicIP = value;} } } + + /// Backing field for property. + private string[] _publicIP; + + /// A list of public IP addresses. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] PublicIP { get => this._publicIP; } + + /// Creates an new instance. + public NetworkProfileOutboundIPs() + { + + } + } + /// Desired outbound IP resources for Azure Spring Apps resource. + public partial interface INetworkProfileOutboundIPs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// A list of public IP addresses. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A list of public IP addresses.", + SerializedName = @"publicIPs", + PossibleTypes = new [] { typeof(string) })] + string[] PublicIP { get; } + + } + /// Desired outbound IP resources for Azure Spring Apps resource. + internal partial interface INetworkProfileOutboundIPsInternal + + { + /// A list of public IP addresses. + string[] PublicIP { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.json.cs new file mode 100644 index 000000000000..cdb92a21e9b4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/NetworkProfileOutboundIPs.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Desired outbound IP resources for Azure Spring Apps resource. + public partial class NetworkProfileOutboundIPs + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new NetworkProfileOutboundIPs(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal NetworkProfileOutboundIPs(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_publicIP = If( json?.PropertyT("publicIPs"), out var __jsonPublicIPs) ? If( __jsonPublicIPs as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : PublicIP;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._publicIP) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._publicIP ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("publicIPs",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.PowerShell.cs new file mode 100644 index 000000000000..5580f7182873 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Operation detail payload + [System.ComponentModel.TypeConverter(typeof(OperationDetailTypeConverter))] + public partial class OperationDetail + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IOperationDetail DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationDetail(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.AppPlatform.Models.Api20221101Preview.IOperationDetail DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationDetail(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.AppPlatform.Models.Api20221101Preview.IOperationDetail FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationDetail(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.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDisplayTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("IsDataAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType?) content.GetValueForProperty("ActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType.CreateFrom); + } + if (content.Contains("Origin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Origin, global::System.Convert.ToString); + } + if (content.Contains("ServiceSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceSpecificationTypeConverter.ConvertFrom); + } + if (content.Contains("DisplayProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayProvider, global::System.Convert.ToString); + } + if (content.Contains("DisplayResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayResource, global::System.Convert.ToString); + } + if (content.Contains("DisplayOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayOperation, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayDescription, global::System.Convert.ToString); + } + if (content.Contains("ServiceSpecificationLogSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecificationTypeConverter.ConvertFrom)); + } + if (content.Contains("ServiceSpecificationMetricSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecificationMetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[]) content.GetValueForProperty("ServiceSpecificationMetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecificationMetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecificationTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationDetail(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.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDisplayTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("IsDataAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("ActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType?) content.GetValueForProperty("ActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType.CreateFrom); + } + if (content.Contains("Origin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).Origin, global::System.Convert.ToString); + } + if (content.Contains("ServiceSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceSpecificationTypeConverter.ConvertFrom); + } + if (content.Contains("DisplayProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayProvider, global::System.Convert.ToString); + } + if (content.Contains("DisplayResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayResource, global::System.Convert.ToString); + } + if (content.Contains("DisplayOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayOperation, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).DisplayDescription, global::System.Convert.ToString); + } + if (content.Contains("ServiceSpecificationLogSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecificationTypeConverter.ConvertFrom)); + } + if (content.Contains("ServiceSpecificationMetricSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecificationMetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[]) content.GetValueForProperty("ServiceSpecificationMetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal)this).ServiceSpecificationMetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecificationTypeConverter.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Operation detail payload + [System.ComponentModel.TypeConverter(typeof(OperationDetailTypeConverter))] + public partial interface IOperationDetail + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.TypeConverter.cs new file mode 100644 index 000000000000..f953ffeb2edc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationDetailTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IOperationDetail ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationDetail.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationDetail.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationDetail.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/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.cs new file mode 100644 index 000000000000..7a9434c492ea --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.cs @@ -0,0 +1,224 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Operation detail payload + public partial class OperationDetail : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType? _actionType; + + /// + /// Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType? ActionType { get => this._actionType; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay _display; + + /// Display of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDisplay()); set => this._display = value; } + + /// Localized friendly description for the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DisplayDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)Display).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)Display).Description = value ?? null; } + + /// Localized friendly name for the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DisplayOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)Display).Operation; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)Display).Operation = value ?? null; } + + /// Resource provider of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DisplayProvider { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)Display).Provider; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)Display).Provider = value ?? null; } + + /// Resource of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DisplayResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)Display).Resource; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)Display).Resource = value ?? null; } + + /// Backing field for property. + private bool? _isDataAction; + + /// Indicates whether the operation is a data action + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? IsDataAction { get => this._isDataAction; set => this._isDataAction = value; } + + /// Internal Acessors for ActionType + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal.ActionType { get => this._actionType; set { {_actionType = value;} } } + + /// Internal Acessors for Display + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal.Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationDisplay()); set { {_display = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationProperties()); set { {_property = value;} } } + + /// Internal Acessors for ServiceSpecification + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetailInternal.ServiceSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)Property).ServiceSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)Property).ServiceSpecification = value; } + + /// Backing field for property. + private string _name; + + /// Name of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _origin; + + /// Origin of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Origin { get => this._origin; set => this._origin = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties _property; + + /// Properties of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationProperties()); set => this._property = value; } + + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)Property).ServiceSpecificationLogSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)Property).ServiceSpecificationLogSpecification = value ?? null /* arrayOf */; } + + /// Specifications of the Metrics for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)Property).ServiceSpecificationMetricSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)Property).ServiceSpecificationMetricSpecification = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public OperationDetail() + { + + } + } + /// Operation detail payload + public partial interface IOperationDetail : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Enum. Indicates the action type. ""Internal"" refers to actions that are for internal only APIs.", + SerializedName = @"actionType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType? ActionType { get; } + /// Localized friendly description for the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly description for the operation", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string DisplayDescription { get; set; } + /// Localized friendly name for the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly name for the operation", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(string) })] + string DisplayOperation { get; set; } + /// Resource provider of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource provider of the operation", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string DisplayProvider { get; set; } + /// Resource of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource of the operation", + SerializedName = @"resource", + PossibleTypes = new [] { typeof(string) })] + string DisplayResource { get; set; } + /// Indicates whether the operation is a data action + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the operation is a data action", + SerializedName = @"isDataAction", + PossibleTypes = new [] { typeof(bool) })] + bool? IsDataAction { get; set; } + /// Name of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the operation", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Origin of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Origin of the operation", + SerializedName = @"origin", + PossibleTypes = new [] { typeof(string) })] + string Origin { get; set; } + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Log for Azure Monitoring", + SerializedName = @"logSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Metrics for Azure Monitoring", + SerializedName = @"metricSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get; set; } + + } + /// Operation detail payload + internal partial interface IOperationDetailInternal + + { + /// + /// Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType? ActionType { get; set; } + /// Display of the operation + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay Display { get; set; } + /// Localized friendly description for the operation + string DisplayDescription { get; set; } + /// Localized friendly name for the operation + string DisplayOperation { get; set; } + /// Resource provider of the operation + string DisplayProvider { get; set; } + /// Resource of the operation + string DisplayResource { get; set; } + /// Indicates whether the operation is a data action + bool? IsDataAction { get; set; } + /// Name of the operation + string Name { get; set; } + /// Origin of the operation + string Origin { get; set; } + /// Properties of the operation + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties Property { get; set; } + /// Service specifications of the operation + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification ServiceSpecification { get; set; } + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.json.cs new file mode 100644 index 000000000000..0331a2bc924e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDetail.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Operation detail payload + public partial class OperationDetail + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new OperationDetail(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal OperationDetail(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.OperationDisplay.FromJson(__jsonDisplay) : Display;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.OperationProperties.FromJson(__jsonProperties) : Property;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_isDataAction = If( json?.PropertyT("isDataAction"), out var __jsonIsDataAction) ? (bool?)__jsonIsDataAction : IsDataAction;} + {_actionType = If( json?.PropertyT("actionType"), out var __jsonActionType) ? (string)__jsonActionType : (string)ActionType;} + {_origin = If( json?.PropertyT("origin"), out var __jsonOrigin) ? (string)__jsonOrigin : (string)Origin;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._display ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._display.ToJson(null,serializationMode) : null, "display" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != this._isDataAction ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._isDataAction) : null, "isDataAction" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._actionType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._actionType.ToString()) : null, "actionType" ,container.Add ); + } + AddIf( null != (((object)this._origin)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._origin.ToString()) : null, "origin" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.PowerShell.cs new file mode 100644 index 000000000000..002bbaafa2c9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Operation display payload + [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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.IOperationDisplay FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + } + if (content.Contains("Operation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + } + if (content.Contains("Operation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Operation display payload + [System.ComponentModel.TypeConverter(typeof(OperationDisplayTypeConverter))] + public partial interface IOperationDisplay + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.TypeConverter.cs new file mode 100644 index 000000000000..25a2d4137bdb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IOperationDisplay ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.cs new file mode 100644 index 000000000000..97a4f6b311ab --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Operation display payload + public partial class OperationDisplay : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplayInternal + { + + /// Backing field for property. + private string _description; + + /// Localized friendly description for the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _operation; + + /// Localized friendly name for the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Operation { get => this._operation; set => this._operation = value; } + + /// Backing field for property. + private string _provider; + + /// Resource provider of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Provider { get => this._provider; set => this._provider = value; } + + /// Backing field for property. + private string _resource; + + /// Resource of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Resource { get => this._resource; set => this._resource = value; } + + /// Creates an new instance. + public OperationDisplay() + { + + } + } + /// Operation display payload + public partial interface IOperationDisplay : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Localized friendly description for the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly description for the operation", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Localized friendly name for the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Localized friendly name for the operation", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(string) })] + string Operation { get; set; } + /// Resource provider of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource provider of the operation", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string Provider { get; set; } + /// Resource of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource of the operation", + SerializedName = @"resource", + PossibleTypes = new [] { typeof(string) })] + string Resource { get; set; } + + } + /// Operation display payload + internal partial interface IOperationDisplayInternal + + { + /// Localized friendly description for the operation + string Description { get; set; } + /// Localized friendly name for the operation + string Operation { get; set; } + /// Resource provider of the operation + string Provider { get; set; } + /// Resource of the operation + string Resource { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.json.cs new file mode 100644 index 000000000000..9e9d69f5f330 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationDisplay.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Operation display payload + 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDisplay FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new OperationDisplay(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal OperationDisplay(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_resource = If( json?.PropertyT("resource"), out var __jsonResource) ? (string)__jsonResource : (string)Resource;} + {_operation = If( json?.PropertyT("operation"), out var __jsonOperation) ? (string)__jsonOperation : (string)Operation;} + {_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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provider.ToString()) : null, "provider" ,container.Add ); + AddIf( null != (((object)this._resource)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._resource.ToString()) : null, "resource" ,container.Add ); + AddIf( null != (((object)this._operation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._operation.ToString()) : null, "operation" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.PowerShell.cs new file mode 100644 index 000000000000..f3ceaf0327ef --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Extra Operation properties + [System.ComponentModel.TypeConverter(typeof(OperationPropertiesTypeConverter))] + public partial class OperationProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IOperationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationProperties(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.AppPlatform.Models.Api20221101Preview.IOperationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationProperties(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.AppPlatform.Models.Api20221101Preview.IOperationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ServiceSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceSpecificationTypeConverter.ConvertFrom); + } + if (content.Contains("ServiceSpecificationLogSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecificationTypeConverter.ConvertFrom)); + } + if (content.Contains("ServiceSpecificationMetricSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecificationMetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[]) content.GetValueForProperty("ServiceSpecificationMetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecificationMetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecificationTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ServiceSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceSpecificationTypeConverter.ConvertFrom); + } + if (content.Contains("ServiceSpecificationLogSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecificationTypeConverter.ConvertFrom)); + } + if (content.Contains("ServiceSpecificationMetricSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecificationMetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[]) content.GetValueForProperty("ServiceSpecificationMetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal)this).ServiceSpecificationMetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecificationTypeConverter.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Extra Operation properties + [System.ComponentModel.TypeConverter(typeof(OperationPropertiesTypeConverter))] + public partial interface IOperationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.TypeConverter.cs new file mode 100644 index 000000000000..a9e813d84568 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IOperationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationProperties.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/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.cs new file mode 100644 index 000000000000..d9b8442d188b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Extra Operation properties + public partial class OperationProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal + { + + /// Internal Acessors for ServiceSpecification + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationPropertiesInternal.ServiceSpecification { get => (this._serviceSpecification = this._serviceSpecification ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceSpecification()); set { {_serviceSpecification = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification _serviceSpecification; + + /// Service specifications of the operation + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification ServiceSpecification { get => (this._serviceSpecification = this._serviceSpecification ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceSpecification()); set => this._serviceSpecification = value; } + + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)ServiceSpecification).LogSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)ServiceSpecification).LogSpecification = value ?? null /* arrayOf */; } + + /// Specifications of the Metrics for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)ServiceSpecification).MetricSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)ServiceSpecification).MetricSpecification = value ?? null /* arrayOf */; } + + /// Creates an new instance. + public OperationProperties() + { + + } + } + /// Extra Operation properties + public partial interface IOperationProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Log for Azure Monitoring", + SerializedName = @"logSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Metrics for Azure Monitoring", + SerializedName = @"metricSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get; set; } + + } + /// Extra Operation properties + internal partial interface IOperationPropertiesInternal + + { + /// Service specifications of the operation + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification ServiceSpecification { get; set; } + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.json.cs new file mode 100644 index 000000000000..8670caef4989 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/OperationProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Extra Operation properties + public partial class OperationProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new OperationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal OperationProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_serviceSpecification = If( json?.PropertyT("serviceSpecification"), out var __jsonServiceSpecification) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceSpecification.FromJson(__jsonServiceSpecification) : ServiceSpecification;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._serviceSpecification ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._serviceSpecification.ToJson(null,serializationMode) : null, "serviceSpecification" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.PowerShell.cs new file mode 100644 index 000000000000..28dc729b244b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Persistent disk payload + [System.ComponentModel.TypeConverter(typeof(PersistentDiskTypeConverter))] + public partial class PersistentDisk + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IPersistentDisk DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PersistentDisk(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.AppPlatform.Models.Api20221101Preview.IPersistentDisk DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PersistentDisk(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.AppPlatform.Models.Api20221101Preview.IPersistentDisk FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PersistentDisk(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).SizeInGb = (int?) content.GetValueForProperty("SizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).SizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("UsedInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).UsedInGb = (int?) content.GetValueForProperty("UsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).UsedInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).MountPath, 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 PersistentDisk(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).SizeInGb = (int?) content.GetValueForProperty("SizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).SizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("UsedInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).UsedInGb = (int?) content.GetValueForProperty("UsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).UsedInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal)this).MountPath, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Persistent disk payload + [System.ComponentModel.TypeConverter(typeof(PersistentDiskTypeConverter))] + public partial interface IPersistentDisk + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.TypeConverter.cs new file mode 100644 index 000000000000..1d929c02360a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PersistentDiskTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IPersistentDisk ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PersistentDisk.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PersistentDisk.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PersistentDisk.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/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.cs new file mode 100644 index 000000000000..503f06d86a9d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Persistent disk payload + public partial class PersistentDisk : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal + { + + /// Internal Acessors for UsedInGb + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDiskInternal.UsedInGb { get => this._usedInGb; set { {_usedInGb = value;} } } + + /// Backing field for property. + private string _mountPath; + + /// Mount path of the persistent disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string MountPath { get => this._mountPath; set => this._mountPath = value; } + + /// Backing field for property. + private int? _sizeInGb; + + /// Size of the persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? SizeInGb { get => this._sizeInGb; set => this._sizeInGb = value; } + + /// Backing field for property. + private int? _usedInGb; + + /// Size of the used persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? UsedInGb { get => this._usedInGb; } + + /// Creates an new instance. + public PersistentDisk() + { + + } + } + /// Persistent disk payload + public partial interface IPersistentDisk : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Mount path of the persistent disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the persistent disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string MountPath { get; set; } + /// Size of the persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the persistent disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + int? SizeInGb { get; set; } + /// Size of the used persistent disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Size of the used persistent disk in GB", + SerializedName = @"usedInGB", + PossibleTypes = new [] { typeof(int) })] + int? UsedInGb { get; } + + } + /// Persistent disk payload + internal partial interface IPersistentDiskInternal + + { + /// Mount path of the persistent disk + string MountPath { get; set; } + /// Size of the persistent disk in GB + int? SizeInGb { get; set; } + /// Size of the used persistent disk in GB + int? UsedInGb { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.json.cs new file mode 100644 index 000000000000..c04410b0b8f7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PersistentDisk.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Persistent disk payload + public partial class PersistentDisk + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPersistentDisk FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new PersistentDisk(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal PersistentDisk(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_sizeInGb = If( json?.PropertyT("sizeInGB"), out var __jsonSizeInGb) ? (int?)__jsonSizeInGb : SizeInGb;} + {_usedInGb = If( json?.PropertyT("usedInGB"), out var __jsonUsedInGb) ? (int?)__jsonUsedInGb : UsedInGb;} + {_mountPath = If( json?.PropertyT("mountPath"), out var __jsonMountPath) ? (string)__jsonMountPath : (string)MountPath;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._sizeInGb ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._sizeInGb) : null, "sizeInGB" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._usedInGb ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._usedInGb) : null, "usedInGB" ,container.Add ); + } + AddIf( null != (((object)this._mountPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._mountPath.ToString()) : null, "mountPath" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.PowerShell.cs new file mode 100644 index 000000000000..3f87a7b6b5eb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Predefined accelerator properties payload + [System.ComponentModel.TypeConverter(typeof(PredefinedAcceleratorPropertiesTypeConverter))] + public partial class PredefinedAcceleratorProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PredefinedAcceleratorProperties(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PredefinedAcceleratorProperties(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PredefinedAcceleratorProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IconUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).IconUrl = (string) content.GetValueForProperty("IconUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).IconUrl, global::System.Convert.ToString); + } + if (content.Contains("AcceleratorTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).AcceleratorTag = (string[]) content.GetValueForProperty("AcceleratorTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).AcceleratorTag, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PredefinedAcceleratorProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IconUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).IconUrl = (string) content.GetValueForProperty("IconUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).IconUrl, global::System.Convert.ToString); + } + if (content.Contains("AcceleratorTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).AcceleratorTag = (string[]) content.GetValueForProperty("AcceleratorTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).AcceleratorTag, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Predefined accelerator properties payload + [System.ComponentModel.TypeConverter(typeof(PredefinedAcceleratorPropertiesTypeConverter))] + public partial interface IPredefinedAcceleratorProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.TypeConverter.cs new file mode 100644 index 000000000000..e7f65e300d2c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PredefinedAcceleratorPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PredefinedAcceleratorProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PredefinedAcceleratorProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PredefinedAcceleratorProperties.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/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.cs new file mode 100644 index 000000000000..a607c637b7b8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Predefined accelerator properties payload + public partial class PredefinedAcceleratorProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal + { + + /// Backing field for property. + private string[] _acceleratorTag; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] AcceleratorTag { get => this._acceleratorTag; } + + /// Backing field for property. + private string _description; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Description { get => this._description; } + + /// Backing field for property. + private string _displayName; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; } + + /// Backing field for property. + private string _iconUrl; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string IconUrl { get => this._iconUrl; } + + /// Internal Acessors for AcceleratorTag + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal.AcceleratorTag { get => this._acceleratorTag; set { {_acceleratorTag = value;} } } + + /// Internal Acessors for Description + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal.Description { get => this._description; set { {_description = value;} } } + + /// Internal Acessors for DisplayName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal.DisplayName { get => this._displayName; set { {_displayName = value;} } } + + /// Internal Acessors for IconUrl + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal.IconUrl { get => this._iconUrl; set { {_iconUrl = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? _provisioningState; + + /// Provisioning state of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState? _state; + + /// State of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState? State { get => this._state; set => this._state = value; } + + /// Creates an new instance. + public PredefinedAcceleratorProperties() + { + + } + } + /// Predefined accelerator properties payload + public partial interface IPredefinedAcceleratorProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"acceleratorTags", + PossibleTypes = new [] { typeof(string) })] + string[] AcceleratorTag { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"iconUrl", + PossibleTypes = new [] { typeof(string) })] + string IconUrl { get; } + /// Provisioning state of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the predefined accelerator.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? ProvisioningState { get; } + /// State of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the predefined accelerator.", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState? State { get; set; } + + } + /// Predefined accelerator properties payload + internal partial interface IPredefinedAcceleratorPropertiesInternal + + { + string[] AcceleratorTag { get; set; } + + string Description { get; set; } + + string DisplayName { get; set; } + + string IconUrl { get; set; } + /// Provisioning state of the predefined accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? ProvisioningState { get; set; } + /// State of the predefined accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState? State { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.json.cs new file mode 100644 index 000000000000..cea2a37dd8b2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorProperties.json.cs @@ -0,0 +1,141 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Predefined accelerator properties payload + public partial class PredefinedAcceleratorProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new PredefinedAcceleratorProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal PredefinedAcceleratorProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_iconUrl = If( json?.PropertyT("iconUrl"), out var __jsonIconUrl) ? (string)__jsonIconUrl : (string)IconUrl;} + {_acceleratorTag = If( json?.PropertyT("acceleratorTags"), out var __jsonAcceleratorTags) ? If( __jsonAcceleratorTags as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AcceleratorTag;} + {_state = If( json?.PropertyT("state"), out var __jsonState) ? (string)__jsonState : (string)State;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._iconUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._iconUrl.ToString()) : null, "iconUrl" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._acceleratorTag) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._acceleratorTag ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("acceleratorTags",__w); + } + } + AddIf( null != (((object)this._state)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._state.ToString()) : null, "state" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.PowerShell.cs new file mode 100644 index 000000000000..19baf4599809 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.PowerShell.cs @@ -0,0 +1,306 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Predefined accelerator resource + [System.ComponentModel.TypeConverter(typeof(PredefinedAcceleratorResourceTypeConverter))] + public partial class PredefinedAcceleratorResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PredefinedAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PredefinedAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PredefinedAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IconUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).IconUrl = (string) content.GetValueForProperty("IconUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).IconUrl, global::System.Convert.ToString); + } + if (content.Contains("AcceleratorTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).AcceleratorTag = (string[]) content.GetValueForProperty("AcceleratorTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).AcceleratorTag, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PredefinedAcceleratorResource(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState.CreateFrom); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("IconUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).IconUrl = (string) content.GetValueForProperty("IconUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).IconUrl, global::System.Convert.ToString); + } + if (content.Contains("AcceleratorTag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).AcceleratorTag = (string[]) content.GetValueForProperty("AcceleratorTag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).AcceleratorTag, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("State")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).State = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState?) content.GetValueForProperty("State",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal)this).State, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Predefined accelerator resource + [System.ComponentModel.TypeConverter(typeof(PredefinedAcceleratorResourceTypeConverter))] + public partial interface IPredefinedAcceleratorResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.TypeConverter.cs new file mode 100644 index 000000000000..29380bffff02 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PredefinedAcceleratorResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PredefinedAcceleratorResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PredefinedAcceleratorResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PredefinedAcceleratorResource.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/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.cs new file mode 100644 index 000000000000..c8f8db04b0ff --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.cs @@ -0,0 +1,264 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Predefined accelerator resource + public partial class PredefinedAcceleratorResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] AcceleratorTag { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).AcceleratorTag; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).Description; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).DisplayName; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string IconUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).IconUrl; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for AcceleratorTag + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal.AcceleratorTag { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).AcceleratorTag; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).AcceleratorTag = value; } + + /// Internal Acessors for Description + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal.Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).Description = value; } + + /// Internal Acessors for DisplayName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal.DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).DisplayName = value; } + + /// Internal Acessors for IconUrl + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal.IconUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).IconUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).IconUrl = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties _property; + + /// Predefined accelerator properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorProperties()); set => this._property = value; } + + /// Provisioning state of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku _sku; + + /// Sku of the predefined accelerator resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set => this._sku = value; } + + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity = value ?? default(int); } + + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name = value ?? null; } + + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// State of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState? State { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).State; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorPropertiesInternal)Property).State = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState)""); } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public PredefinedAcceleratorResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Predefined accelerator resource + public partial interface IPredefinedAcceleratorResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"acceleratorTags", + PossibleTypes = new [] { typeof(string) })] + string[] AcceleratorTag { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"iconUrl", + PossibleTypes = new [] { typeof(string) })] + string IconUrl { get; } + /// Provisioning state of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the predefined accelerator.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? ProvisioningState { get; } + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string SkuName { get; set; } + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string SkuTier { get; set; } + /// State of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the predefined accelerator.", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState? State { get; set; } + + } + /// Predefined accelerator resource + internal partial interface IPredefinedAcceleratorResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + string[] AcceleratorTag { get; set; } + + string Description { get; set; } + + string DisplayName { get; set; } + + string IconUrl { get; set; } + /// Predefined accelerator properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorProperties Property { get; set; } + /// Provisioning state of the predefined accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState? ProvisioningState { get; set; } + /// Sku of the predefined accelerator resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get; set; } + /// Current capacity of the target resource + int? SkuCapacity { get; set; } + /// Name of the Sku + string SkuName { get; set; } + /// Tier of the Sku + string SkuTier { get; set; } + /// State of the predefined accelerator. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState? State { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.json.cs new file mode 100644 index 000000000000..043ab79e8804 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Predefined accelerator resource + public partial class PredefinedAcceleratorResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new PredefinedAcceleratorResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal PredefinedAcceleratorResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku.FromJson(__jsonSku) : Sku;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..43bc8733956a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(PredefinedAcceleratorResourceCollectionTypeConverter))] + public partial class PredefinedAcceleratorResourceCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PredefinedAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PredefinedAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PredefinedAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal)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 PredefinedAcceleratorResourceCollection(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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(PredefinedAcceleratorResourceCollectionTypeConverter))] + public partial interface IPredefinedAcceleratorResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..33b78df8238f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.TypeConverter.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PredefinedAcceleratorResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PredefinedAcceleratorResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PredefinedAcceleratorResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PredefinedAcceleratorResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.cs new file mode 100644 index 000000000000..251cc35bf017 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class PredefinedAcceleratorResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource[] _value; + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PredefinedAcceleratorResourceCollection() + { + + } + } + public partial interface IPredefinedAcceleratorResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource[] Value { get; set; } + + } + internal partial interface IPredefinedAcceleratorResourceCollectionInternal + + { + string NextLink { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.json.cs new file mode 100644 index 000000000000..2ba26d721f04 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/PredefinedAcceleratorResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class PredefinedAcceleratorResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new PredefinedAcceleratorResourceCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal PredefinedAcceleratorResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.PredefinedAcceleratorResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/Probe.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.PowerShell.cs new file mode 100644 index 000000000000..88f1387381ce --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Probe describes a health check to be performed against an App Instance to determine whether it is alive or ready to receive + /// traffic. + /// + [System.ComponentModel.TypeConverter(typeof(ProbeTypeConverter))] + public partial class Probe + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IProbe DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Probe(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.AppPlatform.Models.Api20221101Preview.IProbe DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Probe(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.AppPlatform.Models.Api20221101Preview.IProbe FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Probe(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Action")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).Action = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction) content.GetValueForProperty("Action",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).Action, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeActionTypeConverter.ConvertFrom); + } + if (content.Contains("DisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).DisableProbe = (bool) content.GetValueForProperty("DisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).DisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("InitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).InitialDelaySecond = (int?) content.GetValueForProperty("InitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).InitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).PeriodSecond = (int?) content.GetValueForProperty("PeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).PeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).TimeoutSecond = (int?) content.GetValueForProperty("TimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).TimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("FailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).FailureThreshold = (int?) content.GetValueForProperty("FailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).FailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).SuccessThreshold = (int?) content.GetValueForProperty("SuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).SuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).ActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("ActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).ActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Probe(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Action")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).Action = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction) content.GetValueForProperty("Action",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).Action, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeActionTypeConverter.ConvertFrom); + } + if (content.Contains("DisableProbe")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).DisableProbe = (bool) content.GetValueForProperty("DisableProbe",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).DisableProbe, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("InitialDelaySecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).InitialDelaySecond = (int?) content.GetValueForProperty("InitialDelaySecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).InitialDelaySecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PeriodSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).PeriodSecond = (int?) content.GetValueForProperty("PeriodSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).PeriodSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("TimeoutSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).TimeoutSecond = (int?) content.GetValueForProperty("TimeoutSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).TimeoutSecond, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("FailureThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).FailureThreshold = (int?) content.GetValueForProperty("FailureThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).FailureThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("SuccessThreshold")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).SuccessThreshold = (int?) content.GetValueForProperty("SuccessThreshold",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).SuccessThreshold, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ActionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).ActionType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("ActionType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal)this).ActionType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Probe describes a health check to be performed against an App Instance to determine whether it is alive or ready to receive + /// traffic. + [System.ComponentModel.TypeConverter(typeof(ProbeTypeConverter))] + public partial interface IProbe + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.TypeConverter.cs new file mode 100644 index 000000000000..ca7671e24f53 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ProbeTypeConverter : 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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IProbe ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Probe.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Probe.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Probe.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/appplatform/generated/api/Models/Api20221101Preview/Probe.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.cs new file mode 100644 index 000000000000..5949925c25d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Probe describes a health check to be performed against an App Instance to determine whether it is alive or ready to receive + /// traffic. + /// + public partial class Probe : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction _action; + + /// The action of the probe. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction Action { get => (this._action = this._action ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction()); set => this._action = value; } + + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? ActionType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)Action).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)Action).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType)""); } + + /// Backing field for property. + private bool _disableProbe; + + /// Indicate whether the probe is disabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool DisableProbe { get => this._disableProbe; set => this._disableProbe = value; } + + /// Backing field for property. + private int? _failureThreshold; + + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? FailureThreshold { get => this._failureThreshold; set => this._failureThreshold = value; } + + /// Backing field for property. + private int? _initialDelaySecond; + + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? InitialDelaySecond { get => this._initialDelaySecond; set => this._initialDelaySecond = value; } + + /// Internal Acessors for Action + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeInternal.Action { get => (this._action = this._action ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction()); set { {_action = value;} } } + + /// Backing field for property. + private int? _periodSecond; + + /// How often (in seconds) to perform the probe. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? PeriodSecond { get => this._periodSecond; set => this._periodSecond = value; } + + /// Backing field for property. + private int? _successThreshold; + + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? SuccessThreshold { get => this._successThreshold; set => this._successThreshold = value; } + + /// Backing field for property. + private int? _timeoutSecond; + + /// Number of seconds after which the probe times out. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? TimeoutSecond { get => this._timeoutSecond; set => this._timeoutSecond = value; } + + /// Creates an new instance. + public Probe() + { + + } + } + /// Probe describes a health check to be performed against an App Instance to determine whether it is alive or ready to receive + /// traffic. + public partial interface IProbe : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the action to take to perform the health check.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? ActionType { get; set; } + /// Indicate whether the probe is disabled. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Indicate whether the probe is disabled.", + SerializedName = @"disableProbe", + PossibleTypes = new [] { typeof(bool) })] + bool DisableProbe { get; set; } + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1.", + SerializedName = @"failureThreshold", + PossibleTypes = new [] { typeof(int) })] + int? FailureThreshold { get; set; } + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", + SerializedName = @"initialDelaySeconds", + PossibleTypes = new [] { typeof(int) })] + int? InitialDelaySecond { get; set; } + /// How often (in seconds) to perform the probe. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How often (in seconds) to perform the probe. Minimum value is 1.", + SerializedName = @"periodSeconds", + PossibleTypes = new [] { typeof(int) })] + int? PeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and startup. Minimum value is 1.", + SerializedName = @"successThreshold", + PossibleTypes = new [] { typeof(int) })] + int? SuccessThreshold { get; set; } + /// Number of seconds after which the probe times out. Minimum value is 1. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Number of seconds after which the probe times out. Minimum value is 1.", + SerializedName = @"timeoutSeconds", + PossibleTypes = new [] { typeof(int) })] + int? TimeoutSecond { get; set; } + + } + /// Probe describes a health check to be performed against an App Instance to determine whether it is alive or ready to receive + /// traffic. + internal partial interface IProbeInternal + + { + /// The action of the probe. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction Action { get; set; } + /// The type of the action to take to perform the health check. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType? ActionType { get; set; } + /// Indicate whether the probe is disabled. + bool DisableProbe { get; set; } + /// + /// Minimum consecutive failures for the probe to be considered failed after having succeeded. Minimum value is 1. + /// + int? FailureThreshold { get; set; } + /// + /// Number of seconds after the App Instance has started before probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes + /// + int? InitialDelaySecond { get; set; } + /// How often (in seconds) to perform the probe. Minimum value is 1. + int? PeriodSecond { get; set; } + /// + /// Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 for liveness and + /// startup. Minimum value is 1. + /// + int? SuccessThreshold { get; set; } + /// Number of seconds after which the probe times out. Minimum value is 1. + int? TimeoutSecond { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.json.cs new file mode 100644 index 000000000000..1705b51e3947 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Probe.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Probe describes a health check to be performed against an App Instance to determine whether it is alive or ready to receive + /// traffic. + /// + public partial class Probe + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbe FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new Probe(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal Probe(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_action = If( json?.PropertyT("probeAction"), out var __jsonProbeAction) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction.FromJson(__jsonProbeAction) : Action;} + {_disableProbe = If( json?.PropertyT("disableProbe"), out var __jsonDisableProbe) ? (bool)__jsonDisableProbe : DisableProbe;} + {_initialDelaySecond = If( json?.PropertyT("initialDelaySeconds"), out var __jsonInitialDelaySeconds) ? (int?)__jsonInitialDelaySeconds : InitialDelaySecond;} + {_periodSecond = If( json?.PropertyT("periodSeconds"), out var __jsonPeriodSeconds) ? (int?)__jsonPeriodSeconds : PeriodSecond;} + {_timeoutSecond = If( json?.PropertyT("timeoutSeconds"), out var __jsonTimeoutSeconds) ? (int?)__jsonTimeoutSeconds : TimeoutSecond;} + {_failureThreshold = If( json?.PropertyT("failureThreshold"), out var __jsonFailureThreshold) ? (int?)__jsonFailureThreshold : FailureThreshold;} + {_successThreshold = If( json?.PropertyT("successThreshold"), out var __jsonSuccessThreshold) ? (int?)__jsonSuccessThreshold : SuccessThreshold;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._action ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._action.ToJson(null,serializationMode) : null, "probeAction" ,container.Add ); + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean(this._disableProbe), "disableProbe" ,container.Add ); + AddIf( null != this._initialDelaySecond ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._initialDelaySecond) : null, "initialDelaySeconds" ,container.Add ); + AddIf( null != this._periodSecond ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._periodSecond) : null, "periodSeconds" ,container.Add ); + AddIf( null != this._timeoutSecond ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._timeoutSecond) : null, "timeoutSeconds" ,container.Add ); + AddIf( null != this._failureThreshold ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._failureThreshold) : null, "failureThreshold" ,container.Add ); + AddIf( null != this._successThreshold ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._successThreshold) : null, "successThreshold" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.PowerShell.cs new file mode 100644 index 000000000000..477999151520 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The action of the probe. + [System.ComponentModel.TypeConverter(typeof(ProbeActionTypeConverter))] + public partial class ProbeAction + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IProbeAction DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ProbeAction(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.AppPlatform.Models.Api20221101Preview.IProbeAction DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ProbeAction(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.AppPlatform.Models.Api20221101Preview.IProbeAction FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ProbeAction(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ProbeAction(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The action of the probe. + [System.ComponentModel.TypeConverter(typeof(ProbeActionTypeConverter))] + public partial interface IProbeAction + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.TypeConverter.cs new file mode 100644 index 000000000000..e6c67f8102e7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ProbeActionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IProbeAction ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ProbeAction.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ProbeAction.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ProbeAction.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/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.cs new file mode 100644 index 000000000000..02c591209805 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The action of the probe. + public partial class ProbeAction : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType _type; + + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public ProbeAction() + { + + } + } + /// The action of the probe. + public partial interface IProbeAction : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the action to take to perform the health check.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType Type { get; set; } + + } + /// The action of the probe. + internal partial interface IProbeActionInternal + + { + /// The type of the action to take to perform the health check. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.json.cs new file mode 100644 index 000000000000..8f5a7952c406 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProbeAction.json.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The action of the probe. + public partial class ProbeAction + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction 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.AppPlatform.Models.Api20221101Preview.IProbeAction. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("type") ) + { + case "HTTPGetAction": + { + return new HttpGetAction(json); + } + case "ExecAction": + { + return new ExecAction(json); + } + case "TCPSocketAction": + { + return new TcpSocketAction(json); + } + } + return new ProbeAction(json); + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ProbeAction(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.PowerShell.cs new file mode 100644 index 000000000000..6384fe893c8d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + /// + [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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.IProxyResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + [System.ComponentModel.TypeConverter(typeof(ProxyResourceTypeConverter))] + public partial interface IProxyResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.TypeConverter.cs new file mode 100644 index 000000000000..6fee077d44d3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IProxyResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.cs new file mode 100644 index 000000000000..1a50ea9d5b66 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + /// + public partial class ProxyResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProxyResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProxyResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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 that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + public partial interface IProxyResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + + } + /// The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + internal partial interface IProxyResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.json.cs new file mode 100644 index 000000000000..b2c0ef70d205 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ProxyResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// The resource model definition for a ARM proxy resource. It will have everything other than required location and tags. + /// + 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProxyResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProxyResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProxyResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ProxyResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ProxyResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.PowerShell.cs new file mode 100644 index 000000000000..c29185cb252d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Regenerate test key request payload + [System.ComponentModel.TypeConverter(typeof(RegenerateTestKeyRequestPayloadTypeConverter))] + public partial class RegenerateTestKeyRequestPayload + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RegenerateTestKeyRequestPayload(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.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RegenerateTestKeyRequestPayload(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.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RegenerateTestKeyRequestPayload(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayloadInternal)this).KeyType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType) content.GetValueForProperty("KeyType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayloadInternal)this).KeyType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal RegenerateTestKeyRequestPayload(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayloadInternal)this).KeyType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType) content.GetValueForProperty("KeyType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayloadInternal)this).KeyType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Regenerate test key request payload + [System.ComponentModel.TypeConverter(typeof(RegenerateTestKeyRequestPayloadTypeConverter))] + public partial interface IRegenerateTestKeyRequestPayload + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.TypeConverter.cs new file mode 100644 index 000000000000..569c1b707cba --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RegenerateTestKeyRequestPayloadTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RegenerateTestKeyRequestPayload.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RegenerateTestKeyRequestPayload.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RegenerateTestKeyRequestPayload.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/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.cs new file mode 100644 index 000000000000..6db908b537dd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Regenerate test key request payload + public partial class RegenerateTestKeyRequestPayload : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayloadInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType _keyType; + + /// Type of the test key + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType KeyType { get => this._keyType; set => this._keyType = value; } + + /// Creates an new instance. + public RegenerateTestKeyRequestPayload() + { + + } + } + /// Regenerate test key request payload + public partial interface IRegenerateTestKeyRequestPayload : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Type of the test key + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the test key", + SerializedName = @"keyType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType KeyType { get; set; } + + } + /// Regenerate test key request payload + internal partial interface IRegenerateTestKeyRequestPayloadInternal + + { + /// Type of the test key + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType KeyType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.json.cs new file mode 100644 index 000000000000..960c038e984d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RegenerateTestKeyRequestPayload.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Regenerate test key request payload + public partial class RegenerateTestKeyRequestPayload + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new RegenerateTestKeyRequestPayload(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal RegenerateTestKeyRequestPayload(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_keyType = If( json?.PropertyT("keyType"), out var __jsonKeyType) ? (string)__jsonKeyType : (string)KeyType;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._keyType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._keyType.ToString()) : null, "keyType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.PowerShell.cs new file mode 100644 index 000000000000..7209f56104ec --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Remote debugging config. + [System.ComponentModel.TypeConverter(typeof(RemoteDebuggingTypeConverter))] + public partial class RemoteDebugging + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RemoteDebugging(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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RemoteDebugging(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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RemoteDebugging(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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal RemoteDebugging(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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Remote debugging config. + [System.ComponentModel.TypeConverter(typeof(RemoteDebuggingTypeConverter))] + public partial interface IRemoteDebugging + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.TypeConverter.cs new file mode 100644 index 000000000000..c1ec7050f309 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RemoteDebuggingTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RemoteDebugging.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RemoteDebugging.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RemoteDebugging.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/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.cs new file mode 100644 index 000000000000..d45694fd54d5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Remote debugging config. + public partial class RemoteDebugging : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// Indicate if remote debugging is enabled + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private int? _port; + + /// Application debugging port + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Port { get => this._port; set => this._port = value; } + + /// Creates an new instance. + public RemoteDebugging() + { + + } + } + /// Remote debugging config. + public partial interface IRemoteDebugging : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Indicate if remote debugging is enabled + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if remote debugging is enabled", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// Application debugging port + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application debugging port", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + int? Port { get; set; } + + } + /// Remote debugging config. + internal partial interface IRemoteDebuggingInternal + + { + /// Indicate if remote debugging is enabled + bool? Enabled { get; set; } + /// Application debugging port + int? Port { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.json.cs new file mode 100644 index 000000000000..abe6f7ca6d03 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebugging.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Remote debugging config. + public partial class RemoteDebugging + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new RemoteDebugging(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal RemoteDebugging(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._port ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._port) : null, "port" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._enabled) : null, "enabled" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.PowerShell.cs new file mode 100644 index 000000000000..7b6178a1ac1b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Remote debugging payload. + [System.ComponentModel.TypeConverter(typeof(RemoteDebuggingPayloadTypeConverter))] + public partial class RemoteDebuggingPayload + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RemoteDebuggingPayload(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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RemoteDebuggingPayload(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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RemoteDebuggingPayload(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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayloadInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayloadInternal)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 RemoteDebuggingPayload(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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayloadInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayloadInternal)this).Port, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Remote debugging payload. + [System.ComponentModel.TypeConverter(typeof(RemoteDebuggingPayloadTypeConverter))] + public partial interface IRemoteDebuggingPayload + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.TypeConverter.cs new file mode 100644 index 000000000000..179bbaeb8e0d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RemoteDebuggingPayloadTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RemoteDebuggingPayload.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RemoteDebuggingPayload.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RemoteDebuggingPayload.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/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.cs new file mode 100644 index 000000000000..bff68fe7c0f3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Remote debugging payload. + public partial class RemoteDebuggingPayload : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayloadInternal + { + + /// Backing field for property. + private int? _port; + + /// Application debugging port. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Port { get => this._port; set => this._port = value; } + + /// Creates an new instance. + public RemoteDebuggingPayload() + { + + } + } + /// Remote debugging payload. + public partial interface IRemoteDebuggingPayload : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Application debugging port. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application debugging port.", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + int? Port { get; set; } + + } + /// Remote debugging payload. + internal partial interface IRemoteDebuggingPayloadInternal + + { + /// Application debugging port. + int? Port { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.json.cs new file mode 100644 index 000000000000..2abe5957cc27 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RemoteDebuggingPayload.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Remote debugging payload. + public partial class RemoteDebuggingPayload + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new RemoteDebuggingPayload(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal RemoteDebuggingPayload(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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); + } + + /// + /// 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._port ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.PowerShell.cs new file mode 100644 index 000000000000..6740539b93fe --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Required inbound or outbound traffic for Azure Spring Apps resource. + [System.ComponentModel.TypeConverter(typeof(RequiredTrafficTypeConverter))] + public partial class RequiredTraffic + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IRequiredTraffic DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RequiredTraffic(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.AppPlatform.Models.Api20221101Preview.IRequiredTraffic DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RequiredTraffic(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.AppPlatform.Models.Api20221101Preview.IRequiredTraffic FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RequiredTraffic(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Protocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Protocol = (string) content.GetValueForProperty("Protocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Protocol, global::System.Convert.ToString); + } + if (content.Contains("Port")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).IP = (string[]) content.GetValueForProperty("IP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).IP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Fqdn = (string[]) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Fqdn, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Direction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Direction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection?) content.GetValueForProperty("Direction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Direction, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal RequiredTraffic(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Protocol")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Protocol = (string) content.GetValueForProperty("Protocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Protocol, global::System.Convert.ToString); + } + if (content.Contains("Port")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("IP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).IP = (string[]) content.GetValueForProperty("IP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).IP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Fqdn = (string[]) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Fqdn, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Direction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Direction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection?) content.GetValueForProperty("Direction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal)this).Direction, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Required inbound or outbound traffic for Azure Spring Apps resource. + [System.ComponentModel.TypeConverter(typeof(RequiredTrafficTypeConverter))] + public partial interface IRequiredTraffic + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.TypeConverter.cs new file mode 100644 index 000000000000..3dc380fa7173 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RequiredTrafficTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IRequiredTraffic ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RequiredTraffic.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RequiredTraffic.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RequiredTraffic.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/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.cs new file mode 100644 index 000000000000..05e41e360825 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Required inbound or outbound traffic for Azure Spring Apps resource. + public partial class RequiredTraffic : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection? _direction; + + /// The direction of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection? Direction { get => this._direction; } + + /// Backing field for property. + private string[] _fqdn; + + /// The FQDN list of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Fqdn { get => this._fqdn; } + + /// Backing field for property. + private string[] _iP; + + /// The ip list of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] IP { get => this._iP; } + + /// Internal Acessors for Direction + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal.Direction { get => this._direction; set { {_direction = value;} } } + + /// Internal Acessors for Fqdn + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal.Fqdn { get => this._fqdn; set { {_fqdn = value;} } } + + /// Internal Acessors for IP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal.IP { get => this._iP; set { {_iP = value;} } } + + /// Internal Acessors for Port + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal.Port { get => this._port; set { {_port = value;} } } + + /// Internal Acessors for Protocol + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTrafficInternal.Protocol { get => this._protocol; set { {_protocol = value;} } } + + /// Backing field for property. + private int? _port; + + /// The port of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Port { get => this._port; } + + /// Backing field for property. + private string _protocol; + + /// The protocol of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Protocol { get => this._protocol; } + + /// Creates an new instance. + public RequiredTraffic() + { + + } + } + /// Required inbound or outbound traffic for Azure Spring Apps resource. + public partial interface IRequiredTraffic : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The direction of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The direction of required traffic", + SerializedName = @"direction", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection? Direction { get; } + /// The FQDN list of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The FQDN list of required traffic", + SerializedName = @"fqdns", + PossibleTypes = new [] { typeof(string) })] + string[] Fqdn { get; } + /// The ip list of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The ip list of required traffic", + SerializedName = @"ips", + PossibleTypes = new [] { typeof(string) })] + string[] IP { get; } + /// The port of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The port of required traffic", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + int? Port { get; } + /// The protocol of required traffic + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The protocol of required traffic", + SerializedName = @"protocol", + PossibleTypes = new [] { typeof(string) })] + string Protocol { get; } + + } + /// Required inbound or outbound traffic for Azure Spring Apps resource. + internal partial interface IRequiredTrafficInternal + + { + /// The direction of required traffic + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection? Direction { get; set; } + /// The FQDN list of required traffic + string[] Fqdn { get; set; } + /// The ip list of required traffic + string[] IP { get; set; } + /// The port of required traffic + int? Port { get; set; } + /// The protocol of required traffic + string Protocol { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.json.cs new file mode 100644 index 000000000000..ab980efec7c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/RequiredTraffic.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Required inbound or outbound traffic for Azure Spring Apps resource. + public partial class RequiredTraffic + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new RequiredTraffic(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal RequiredTraffic(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_protocol = If( json?.PropertyT("protocol"), out var __jsonProtocol) ? (string)__jsonProtocol : (string)Protocol;} + {_port = If( json?.PropertyT("port"), out var __jsonPort) ? (int?)__jsonPort : Port;} + {_iP = If( json?.PropertyT("ips"), out var __jsonIps) ? If( __jsonIps as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : IP;} + {_fqdn = If( json?.PropertyT("fqdns"), out var __jsonFqdns) ? If( __jsonFqdns as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : Fqdn;} + {_direction = If( json?.PropertyT("direction"), out var __jsonDirection) ? (string)__jsonDirection : (string)Direction;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._protocol)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._protocol.ToString()) : null, "protocol" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._port ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._port) : null, "port" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._iP) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._iP ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("ips",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._fqdn) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._fqdn ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("fqdns",__r); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._direction)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._direction.ToString()) : null, "direction" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.PowerShell.cs new file mode 100644 index 000000000000..ef4ec9306ff9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.PowerShell.cs @@ -0,0 +1,216 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The core properties of ARM 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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.IResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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 Resource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The core properties of ARM resources. + [System.ComponentModel.TypeConverter(typeof(ResourceTypeConverter))] + public partial interface IResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.TypeConverter.cs new file mode 100644 index 000000000000..36477cf543c4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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/appplatform/generated/api/Models/Api20221101Preview/Resource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.cs new file mode 100644 index 000000000000..0b86efd44548 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The core properties of ARM resources. + public partial class Resource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + + /// Backing field for property. + private string _id; + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData _systemData; + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// Backing field for property. + private string _type; + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public Resource() + { + + } + } + /// The core properties of ARM resources. + public partial interface IResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified resource Id for the resource.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The name of the resource.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource 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.AppPlatform.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.AppPlatform.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.AppPlatform.Support.LastModifiedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get; set; } + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of the resource.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// The core properties of ARM resources. + internal partial interface IResourceInternal + + { + /// Fully qualified resource Id for the resource. + string Id { get; set; } + /// The name of the resource. + string Name { get; set; } + /// Metadata pertaining to creation and last modification of the resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource 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.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get; set; } + /// The type of the resource. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.json.cs new file mode 100644 index 000000000000..b8b53d65eb7c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Resource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The core properties of ARM 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new Resource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal Resource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..07eca060f404 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Deployment resource request payload + [System.ComponentModel.TypeConverter(typeof(ResourceRequestsTypeConverter))] + public partial class ResourceRequests + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceRequests(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.AppPlatform.Models.Api20221101Preview.IResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceRequests(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.AppPlatform.Models.Api20221101Preview.IResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)this).Memory, 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 ResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal)this).Memory, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Deployment resource request payload + [System.ComponentModel.TypeConverter(typeof(ResourceRequestsTypeConverter))] + public partial interface IResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..40a4ff13c417 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.cs new file mode 100644 index 000000000000..89f699bf0037 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.cs @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource request payload + public partial class ResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// + /// Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} + /// for Standard tier. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; set => this._cpu = value; } + + /// Backing field for property. + private string _memory; + + /// + /// Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, + /// 1Gi, 2Gi, ..., 8Gi} for Standard tier. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; set => this._memory = value; } + + /// Creates an new instance. + public ResourceRequests() + { + + } + } + /// Deployment resource request payload + public partial interface IResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} + /// for Standard tier. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} for Standard tier.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; set; } + /// + /// Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, + /// 1Gi, 2Gi, ..., 8Gi} for Standard tier. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, 1Gi, 2Gi, ..., 8Gi} for Standard tier.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; set; } + + } + /// Deployment resource request payload + internal partial interface IResourceRequestsInternal + + { + /// + /// Required CPU. 1 core can be represented by 1 or 1000m. This should be 500m or 1 for Basic tier, and {500m, 1, 2, 3, 4} + /// for Standard tier. + /// + string Cpu { get; set; } + /// + /// Required memory. 1 GB can be represented by 1Gi or 1024Mi. This should be {512Mi, 1Gi, 2Gi} for Basic tier, and {512Mi, + /// 1Gi, 2Gi, ..., 8Gi} for Standard tier. + /// + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.json.cs new file mode 100644 index 000000000000..806a722f7aaf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource request payload + public partial class ResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceRequests(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.PowerShell.cs new file mode 100644 index 000000000000..f774a355c7cd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.PowerShell.cs @@ -0,0 +1,224 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Describes an available Azure Spring Apps SKU. + [System.ComponentModel.TypeConverter(typeof(ResourceSkuTypeConverter))] + public partial class ResourceSku + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSku DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceSku(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.AppPlatform.Models.Api20221101Preview.IResourceSku DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceSku(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.AppPlatform.Models.Api20221101Preview.IResourceSku FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceSku(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Capacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Capacity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Capacity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuCapacityTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Tier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Tier, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LocationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).LocationInfo = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo[]) content.GetValueForProperty("LocationInfo",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).LocationInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuLocationInfoTypeConverter.ConvertFrom)); + } + if (content.Contains("Restriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Restriction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions[]) content.GetValueForProperty("Restriction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Restriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionsTypeConverter.ConvertFrom)); + } + if (content.Contains("CapacityMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityMinimum = (int) content.GetValueForProperty("CapacityMinimum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityMaximum = (int?) content.GetValueForProperty("CapacityMaximum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityDefault")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityDefault = (int?) content.GetValueForProperty("CapacityDefault",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityDefault, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityScaleType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityScaleType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType?) content.GetValueForProperty("CapacityScaleType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityScaleType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ResourceSku(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Capacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Capacity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Capacity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuCapacityTypeConverter.ConvertFrom); + } + if (content.Contains("ResourceType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).ResourceType, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Tier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Tier, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("LocationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).LocationInfo = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo[]) content.GetValueForProperty("LocationInfo",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).LocationInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuLocationInfoTypeConverter.ConvertFrom)); + } + if (content.Contains("Restriction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Restriction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions[]) content.GetValueForProperty("Restriction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).Restriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionsTypeConverter.ConvertFrom)); + } + if (content.Contains("CapacityMinimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityMinimum = (int) content.GetValueForProperty("CapacityMinimum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityMaximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityMaximum = (int?) content.GetValueForProperty("CapacityMaximum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityDefault")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityDefault = (int?) content.GetValueForProperty("CapacityDefault",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityDefault, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("CapacityScaleType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityScaleType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType?) content.GetValueForProperty("CapacityScaleType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal)this).CapacityScaleType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Describes an available Azure Spring Apps SKU. + [System.ComponentModel.TypeConverter(typeof(ResourceSkuTypeConverter))] + public partial interface IResourceSku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.TypeConverter.cs new file mode 100644 index 000000000000..2785ebaa049d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceSkuTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceSku.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceSku.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceSku.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.cs new file mode 100644 index 000000000000..a3f33347b9e8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.cs @@ -0,0 +1,220 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Describes an available Azure Spring Apps SKU. + public partial class ResourceSku : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity _capacity; + + /// Gets the capacity of SKU. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity Capacity { get => (this._capacity = this._capacity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuCapacity()); set => this._capacity = value; } + + /// Gets or sets the default. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? CapacityDefault { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)Capacity).Default; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)Capacity).Default = value ?? default(int); } + + /// Gets or sets the maximum. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? CapacityMaximum { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)Capacity).Maximum; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)Capacity).Maximum = value ?? default(int); } + + /// Gets or sets the minimum. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? CapacityMinimum { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)Capacity).Minimum; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)Capacity).Minimum = value ?? default(int); } + + /// Gets or sets the type of the scale. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType? CapacityScaleType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)Capacity).ScaleType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)Capacity).ScaleType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType)""); } + + /// Backing field for property. + private string[] _location; + + /// Gets the set of locations that the SKU is available. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo[] _locationInfo; + + /// + /// Gets a list of locations and availability zones in those locations where the SKU is available. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo[] LocationInfo { get => this._locationInfo; set => this._locationInfo = value; } + + /// Internal Acessors for Capacity + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuInternal.Capacity { get => (this._capacity = this._capacity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuCapacity()); set { {_capacity = value;} } } + + /// Backing field for property. + private string _name; + + /// Gets the name of SKU. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _resourceType; + + /// Gets the type of resource the SKU applies to. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ResourceType { get => this._resourceType; set => this._resourceType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions[] _restriction; + + /// + /// Gets the restrictions because of which SKU cannot be used. This is + /// empty if there are no restrictions. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions[] Restriction { get => this._restriction; set => this._restriction = value; } + + /// Backing field for property. + private string _tier; + + /// Gets the tier of SKU. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Tier { get => this._tier; set => this._tier = value; } + + /// Creates an new instance. + public ResourceSku() + { + + } + } + /// Describes an available Azure Spring Apps SKU. + public partial interface IResourceSku : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Gets or sets the default. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets or sets the default.", + SerializedName = @"default", + PossibleTypes = new [] { typeof(int) })] + int? CapacityDefault { get; set; } + /// Gets or sets the maximum. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets or sets the maximum.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + int? CapacityMaximum { get; set; } + /// Gets or sets the minimum. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets or sets the minimum.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + int? CapacityMinimum { get; set; } + /// Gets or sets the type of the scale. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets or sets the type of the scale.", + SerializedName = @"scaleType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType? CapacityScaleType { get; set; } + /// Gets the set of locations that the SKU is available. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the set of locations that the SKU is available.", + SerializedName = @"locations", + PossibleTypes = new [] { typeof(string) })] + string[] Location { get; set; } + /// + /// Gets a list of locations and availability zones in those locations where the SKU is available. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets a list of locations and availability zones in those locations where the SKU is available.", + SerializedName = @"locationInfo", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo[] LocationInfo { get; set; } + /// Gets the name of SKU. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the name of SKU.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Gets the type of resource the SKU applies to. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the type of resource the SKU applies to.", + SerializedName = @"resourceType", + PossibleTypes = new [] { typeof(string) })] + string ResourceType { get; set; } + /// + /// Gets the restrictions because of which SKU cannot be used. This is + /// empty if there are no restrictions. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the restrictions because of which SKU cannot be used. This is + empty if there are no restrictions.", + SerializedName = @"restrictions", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions[] Restriction { get; set; } + /// Gets the tier of SKU. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the tier of SKU.", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string Tier { get; set; } + + } + /// Describes an available Azure Spring Apps SKU. + internal partial interface IResourceSkuInternal + + { + /// Gets the capacity of SKU. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity Capacity { get; set; } + /// Gets or sets the default. + int? CapacityDefault { get; set; } + /// Gets or sets the maximum. + int? CapacityMaximum { get; set; } + /// Gets or sets the minimum. + int? CapacityMinimum { get; set; } + /// Gets or sets the type of the scale. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType? CapacityScaleType { get; set; } + /// Gets the set of locations that the SKU is available. + string[] Location { get; set; } + /// + /// Gets a list of locations and availability zones in those locations where the SKU is available. + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo[] LocationInfo { get; set; } + /// Gets the name of SKU. + string Name { get; set; } + /// Gets the type of resource the SKU applies to. + string ResourceType { get; set; } + /// + /// Gets the restrictions because of which SKU cannot be used. This is + /// empty if there are no restrictions. + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions[] Restriction { get; set; } + /// Gets the tier of SKU. + string Tier { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.json.cs new file mode 100644 index 000000000000..13f5fe3ebfc9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSku.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Describes an available Azure Spring Apps SKU. + public partial class ResourceSku + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceSku(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceSku(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_capacity = If( json?.PropertyT("capacity"), out var __jsonCapacity) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuCapacity.FromJson(__jsonCapacity) : Capacity;} + {_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.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuLocationInfo.FromJson(__p) )) ))() : null : LocationInfo;} + {_restriction = If( json?.PropertyT("restrictions"), out var __jsonRestrictions) ? If( __jsonRestrictions as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictions.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._capacity ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._capacity.ToJson(null,serializationMode) : null, "capacity" ,container.Add ); + AddIf( null != (((object)this._resourceType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._resourceType.ToString()) : null, "resourceType" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._tier)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._tier.ToString()) : null, "tier" ,container.Add ); + if (null != this._location) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._location ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("locations",__w); + } + if (null != this._locationInfo) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._locationInfo ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("locationInfo",__r); + } + if (null != this._restriction) + { + var __m = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.PowerShell.cs new file mode 100644 index 000000000000..b0ea43026d67 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(ResourceSkuCapabilitiesTypeConverter))] + public partial class ResourceSkuCapabilities + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceSkuCapabilities(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.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceSkuCapabilities(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.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceSkuCapabilities(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.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal)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 ResourceSkuCapabilities(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.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal)this).Value, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(ResourceSkuCapabilitiesTypeConverter))] + public partial interface IResourceSkuCapabilities + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.TypeConverter.cs new file mode 100644 index 000000000000..41b8507d5848 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceSkuCapabilitiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceSkuCapabilities.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceSkuCapabilities.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceSkuCapabilities.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.cs new file mode 100644 index 000000000000..27060436387b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.cs @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ResourceSkuCapabilities : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilitiesInternal + { + + /// Backing field for property. + private string _name; + + /// Gets an invariant to describe the feature. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _value; + + /// Gets an invariant if the feature is measured by quantity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ResourceSkuCapabilities() + { + + } + } + public partial interface IResourceSkuCapabilities : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Gets an invariant to describe the feature. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets an invariant to describe the feature.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Gets an invariant if the feature is measured by quantity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets an invariant if the feature is measured by quantity.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + internal partial interface IResourceSkuCapabilitiesInternal + + { + /// Gets an invariant to describe the feature. + string Name { get; set; } + /// Gets an invariant if the feature is measured by quantity. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.json.cs new file mode 100644 index 000000000000..d1a48b20c730 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCapabilities.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ResourceSkuCapabilities + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceSkuCapabilities(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceSkuCapabilities(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (string)__jsonValue : (string)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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.PowerShell.cs new file mode 100644 index 000000000000..265cc84de5ca --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Azure Spring Apps SKU and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(ResourceSkuCollectionTypeConverter))] + public partial class ResourceSkuCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceSkuCollection(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.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceSkuCollection(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.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceSkuCollection(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.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal)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 ResourceSkuCollection(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.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Azure Spring Apps SKU and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(ResourceSkuCollectionTypeConverter))] + public partial interface IResourceSkuCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.TypeConverter.cs new file mode 100644 index 000000000000..fe30fa61990f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceSkuCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceSkuCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceSkuCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceSkuCollection.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.cs new file mode 100644 index 000000000000..b1a82b88cfbe --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Azure Spring Apps SKU and a possible link for next set + /// + public partial class ResourceSkuCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku[] _value; + + /// Collection of resource SKU + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ResourceSkuCollection() + { + + } + } + /// Object that includes an array of Azure Spring Apps SKU and a possible link for next set + public partial interface IResourceSkuCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of resource SKU + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of resource SKU", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku[] Value { get; set; } + + } + /// Object that includes an array of Azure Spring Apps SKU and a possible link for next set + internal partial interface IResourceSkuCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of resource SKU + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.json.cs new file mode 100644 index 000000000000..6a6483677784 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Azure Spring Apps SKU and a possible link for next set + /// + public partial class ResourceSkuCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceSkuCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceSkuCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IResourceSku) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSku.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.PowerShell.cs new file mode 100644 index 000000000000..6243ba37c604 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Locations and availability zones where the SKU is available + [System.ComponentModel.TypeConverter(typeof(ResourceSkuLocationInfoTypeConverter))] + public partial class ResourceSkuLocationInfo + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceSkuLocationInfo(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.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceSkuLocationInfo(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.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceSkuLocationInfo(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.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).Zone, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ZoneDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).ZoneDetail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails[]) content.GetValueForProperty("ZoneDetail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).ZoneDetail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuZoneDetailsTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ResourceSkuLocationInfo(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.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).Zone, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ZoneDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).ZoneDetail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails[]) content.GetValueForProperty("ZoneDetail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal)this).ZoneDetail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuZoneDetailsTypeConverter.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Locations and availability zones where the SKU is available + [System.ComponentModel.TypeConverter(typeof(ResourceSkuLocationInfoTypeConverter))] + public partial interface IResourceSkuLocationInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.TypeConverter.cs new file mode 100644 index 000000000000..3e139f934254 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceSkuLocationInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceSkuLocationInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceSkuLocationInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceSkuLocationInfo.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.cs new file mode 100644 index 000000000000..b1f36e6fa8fd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Locations and availability zones where the SKU is available + public partial class ResourceSkuLocationInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfoInternal + { + + /// Backing field for property. + private string _location; + + /// Gets location of the SKU + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private string[] _zone; + + /// Gets list of availability zones where the SKU is supported. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Zone { get => this._zone; set => this._zone = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails[] _zoneDetail; + + /// Gets details of capabilities available to a SKU in specific zones. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails[] ZoneDetail { get => this._zoneDetail; set => this._zoneDetail = value; } + + /// Creates an new instance. + public ResourceSkuLocationInfo() + { + + } + } + /// Locations and availability zones where the SKU is available + public partial interface IResourceSkuLocationInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Gets location of the SKU + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets location of the SKU", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// Gets list of availability zones where the SKU is supported. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets list of availability zones where the SKU is supported.", + SerializedName = @"zones", + PossibleTypes = new [] { typeof(string) })] + string[] Zone { get; set; } + /// Gets details of capabilities available to a SKU in specific zones. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets details of capabilities available to a SKU in specific zones.", + SerializedName = @"zoneDetails", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails[] ZoneDetail { get; set; } + + } + /// Locations and availability zones where the SKU is available + internal partial interface IResourceSkuLocationInfoInternal + + { + /// Gets location of the SKU + string Location { get; set; } + /// Gets list of availability zones where the SKU is supported. + string[] Zone { get; set; } + /// Gets details of capabilities available to a SKU in specific zones. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails[] ZoneDetail { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.json.cs new file mode 100644 index 000000000000..7a881c7e1cff --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuLocationInfo.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Locations and availability zones where the SKU is available + public partial class ResourceSkuLocationInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuLocationInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceSkuLocationInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceSkuLocationInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Zone;} + {_zoneDetail = If( json?.PropertyT("zoneDetails"), out var __jsonZoneDetails) ? If( __jsonZoneDetails as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuZoneDetails.FromJson(__p) )) ))() : null : ZoneDetail;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + if (null != this._zone) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._zone ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("zones",__w); + } + if (null != this._zoneDetail) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._zoneDetail ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("zoneDetails",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.PowerShell.cs new file mode 100644 index 000000000000..8c0f33402d25 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Information about the restriction where the SKU cannot be used + [System.ComponentModel.TypeConverter(typeof(ResourceSkuRestrictionInfoTypeConverter))] + public partial class ResourceSkuRestrictionInfo + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceSkuRestrictionInfo(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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceSkuRestrictionInfo(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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceSkuRestrictionInfo(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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)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 ResourceSkuRestrictionInfo(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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Zone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the restriction where the SKU cannot be used + [System.ComponentModel.TypeConverter(typeof(ResourceSkuRestrictionInfoTypeConverter))] + public partial interface IResourceSkuRestrictionInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.TypeConverter.cs new file mode 100644 index 000000000000..f1c778def295 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceSkuRestrictionInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceSkuRestrictionInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceSkuRestrictionInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceSkuRestrictionInfo.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.cs new file mode 100644 index 000000000000..3a5bf0dba8b6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Information about the restriction where the SKU cannot be used + public partial class ResourceSkuRestrictionInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal + { + + /// Backing field for property. + private string[] _location; + + /// Gets locations where the SKU is restricted + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private string[] _zone; + + /// Gets list of availability zones where the SKU is restricted. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Zone { get => this._zone; set => this._zone = value; } + + /// Creates an new instance. + public ResourceSkuRestrictionInfo() + { + + } + } + /// Information about the restriction where the SKU cannot be used + public partial interface IResourceSkuRestrictionInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Gets locations where the SKU is restricted + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets locations where the SKU is restricted", + SerializedName = @"locations", + PossibleTypes = new [] { typeof(string) })] + string[] Location { get; set; } + /// Gets list of availability zones where the SKU is restricted. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets list of availability zones where the SKU is restricted.", + SerializedName = @"zones", + PossibleTypes = new [] { typeof(string) })] + string[] Zone { get; set; } + + } + /// Information about the restriction where the SKU cannot be used + internal partial interface IResourceSkuRestrictionInfoInternal + + { + /// Gets locations where the SKU is restricted + string[] Location { get; set; } + /// Gets list of availability zones where the SKU is restricted. + string[] Zone { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.json.cs new file mode 100644 index 000000000000..71eef5cf6c0e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictionInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Information about the restriction where the SKU cannot be used + public partial class ResourceSkuRestrictionInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceSkuRestrictionInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceSkuRestrictionInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_location = If( json?.PropertyT("locations"), out var __jsonLocations) ? If( __jsonLocations as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Location;} + {_zone = If( json?.PropertyT("zones"), out var __jsonZones) ? If( __jsonZones as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __o ? (string)(__o.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._location) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._location ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("locations",__w); + } + if (null != this._zone) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._zone ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("zones",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.PowerShell.cs new file mode 100644 index 000000000000..02807ff29c57 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Restrictions where the SKU cannot be used + [System.ComponentModel.TypeConverter(typeof(ResourceSkuRestrictionsTypeConverter))] + public partial class ResourceSkuRestrictions + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceSkuRestrictions(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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceSkuRestrictions(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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceSkuRestrictions(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RestrictionInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfo = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo) content.GetValueForProperty("RestrictionInfo",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfo, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType.CreateFrom); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ReasonCode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).ReasonCode = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode?) content.GetValueForProperty("ReasonCode",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).ReasonCode, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode.CreateFrom); + } + if (content.Contains("RestrictionInfoLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoLocation = (string[]) content.GetValueForProperty("RestrictionInfoLocation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoLocation, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RestrictionInfoZone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoZone = (string[]) content.GetValueForProperty("RestrictionInfoZone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoZone, __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 ResourceSkuRestrictions(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RestrictionInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfo = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo) content.GetValueForProperty("RestrictionInfo",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfo, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType.CreateFrom); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ReasonCode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).ReasonCode = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode?) content.GetValueForProperty("ReasonCode",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).ReasonCode, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode.CreateFrom); + } + if (content.Contains("RestrictionInfoLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoLocation = (string[]) content.GetValueForProperty("RestrictionInfoLocation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoLocation, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RestrictionInfoZone")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoZone = (string[]) content.GetValueForProperty("RestrictionInfoZone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoZone, __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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Restrictions where the SKU cannot be used + [System.ComponentModel.TypeConverter(typeof(ResourceSkuRestrictionsTypeConverter))] + public partial interface IResourceSkuRestrictions + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.TypeConverter.cs new file mode 100644 index 000000000000..c8d524dfa603 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceSkuRestrictionsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceSkuRestrictions.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceSkuRestrictions.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceSkuRestrictions.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.cs new file mode 100644 index 000000000000..903fae4d10b5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.cs @@ -0,0 +1,141 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Restrictions where the SKU cannot be used + public partial class ResourceSkuRestrictions : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal + { + + /// Internal Acessors for RestrictionInfo + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionsInternal.RestrictionInfo { get => (this._restrictionInfo = this._restrictionInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionInfo()); set { {_restrictionInfo = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode? _reasonCode; + + /// + /// Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription' + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode? ReasonCode { get => this._reasonCode; set => this._reasonCode = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo _restrictionInfo; + + /// Gets the information about the restriction where the SKU cannot be used. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo RestrictionInfo { get => (this._restrictionInfo = this._restrictionInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionInfo()); set => this._restrictionInfo = value; } + + /// Gets locations where the SKU is restricted + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] RestrictionInfoLocation { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)RestrictionInfo).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)RestrictionInfo).Location = value ?? null /* arrayOf */; } + + /// Gets list of availability zones where the SKU is restricted. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] RestrictionInfoZone { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)RestrictionInfo).Zone; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfoInternal)RestrictionInfo).Zone = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType? _type; + + /// Gets the type of restrictions. Possible values include: 'Location', 'Zone' + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType? Type { get => this._type; set => this._type = value; } + + /// Backing field for property. + private string[] _value; + + /// + /// Gets the value of restrictions. If the restriction type is set to + /// location. This would be different locations where the SKU is restricted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ResourceSkuRestrictions() + { + + } + } + /// Restrictions where the SKU cannot be used + public partial interface IResourceSkuRestrictions : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription' + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription'", + SerializedName = @"reasonCode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode? ReasonCode { get; set; } + /// Gets locations where the SKU is restricted + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets locations where the SKU is restricted", + SerializedName = @"locations", + PossibleTypes = new [] { typeof(string) })] + string[] RestrictionInfoLocation { get; set; } + /// Gets list of availability zones where the SKU is restricted. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets list of availability zones where the SKU is restricted.", + SerializedName = @"zones", + PossibleTypes = new [] { typeof(string) })] + string[] RestrictionInfoZone { get; set; } + /// Gets the type of restrictions. Possible values include: 'Location', 'Zone' + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the type of restrictions. Possible values include: 'Location', 'Zone'", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType? Type { get; set; } + /// + /// Gets the value of restrictions. If the restriction type is set to + /// location. This would be different locations where the SKU is restricted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the value of restrictions. If the restriction type is set to + location. This would be different locations where the SKU is restricted.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// Restrictions where the SKU cannot be used + internal partial interface IResourceSkuRestrictionsInternal + + { + /// + /// Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription' + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode? ReasonCode { get; set; } + /// Gets the information about the restriction where the SKU cannot be used. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictionInfo RestrictionInfo { get; set; } + /// Gets locations where the SKU is restricted + string[] RestrictionInfoLocation { get; set; } + /// Gets list of availability zones where the SKU is restricted. + string[] RestrictionInfoZone { get; set; } + /// Gets the type of restrictions. Possible values include: 'Location', 'Zone' + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType? Type { get; set; } + /// + /// Gets the value of restrictions. If the restriction type is set to + /// location. This would be different locations where the SKU is restricted. + /// + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.json.cs new file mode 100644 index 000000000000..e6268f4aff4f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuRestrictions.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Restrictions where the SKU cannot be used + public partial class ResourceSkuRestrictions + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuRestrictions FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceSkuRestrictions(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceSkuRestrictions(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_restrictionInfo = If( json?.PropertyT("restrictionInfo"), out var __jsonRestrictionInfo) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuRestrictionInfo.FromJson(__jsonRestrictionInfo) : RestrictionInfo;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + {_reasonCode = If( json?.PropertyT("reasonCode"), out var __jsonReasonCode) ? (string)__jsonReasonCode : (string)ReasonCode;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._restrictionInfo ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._restrictionInfo.ToJson(null,serializationMode) : null, "restrictionInfo" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AddIf( null != (((object)this._reasonCode)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._reasonCode.ToString()) : null, "reasonCode" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.PowerShell.cs new file mode 100644 index 000000000000..070768a6ed2d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Details of capabilities available to a SKU in specific zones + [System.ComponentModel.TypeConverter(typeof(ResourceSkuZoneDetailsTypeConverter))] + public partial class ResourceSkuZoneDetails + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceSkuZoneDetails(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.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceSkuZoneDetails(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.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceSkuZoneDetails(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.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal)this).Name = (string[]) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal)this).Name, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Capability")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal)this).Capability = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities[]) content.GetValueForProperty("Capability",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal)this).Capability, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuCapabilitiesTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ResourceSkuZoneDetails(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.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal)this).Name = (string[]) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal)this).Name, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("Capability")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal)this).Capability = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities[]) content.GetValueForProperty("Capability",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal)this).Capability, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuCapabilitiesTypeConverter.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Details of capabilities available to a SKU in specific zones + [System.ComponentModel.TypeConverter(typeof(ResourceSkuZoneDetailsTypeConverter))] + public partial interface IResourceSkuZoneDetails + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.TypeConverter.cs new file mode 100644 index 000000000000..2bb8d2175b14 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceSkuZoneDetailsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceSkuZoneDetails.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceSkuZoneDetails.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceSkuZoneDetails.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/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.cs new file mode 100644 index 000000000000..39c9d8069dba --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Details of capabilities available to a SKU in specific zones + public partial class ResourceSkuZoneDetails : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetailsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities[] _capability; + + /// + /// Gets a list of capabilities that are available for the SKU in the + /// specified list of zones. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities[] Capability { get => this._capability; set => this._capability = value; } + + /// Backing field for property. + private string[] _name; + + /// + /// Gets the set of zones that the SKU is available in with the + /// specified capabilities. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public ResourceSkuZoneDetails() + { + + } + } + /// Details of capabilities available to a SKU in specific zones + public partial interface IResourceSkuZoneDetails : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Gets a list of capabilities that are available for the SKU in the + /// specified list of zones. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets a list of capabilities that are available for the SKU in the + specified list of zones.", + SerializedName = @"capabilities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities[] Capability { get; set; } + /// + /// Gets the set of zones that the SKU is available in with the + /// specified capabilities. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets the set of zones that the SKU is available in with the + specified capabilities.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string[] Name { get; set; } + + } + /// Details of capabilities available to a SKU in specific zones + internal partial interface IResourceSkuZoneDetailsInternal + + { + /// + /// Gets a list of capabilities that are available for the SKU in the + /// specified list of zones. + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities[] Capability { get; set; } + /// + /// Gets the set of zones that the SKU is available in with the + /// specified capabilities. + /// + string[] Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.json.cs new file mode 100644 index 000000000000..3e09d238f365 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceSkuZoneDetails.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Details of capabilities available to a SKU in specific zones + public partial class ResourceSkuZoneDetails + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuZoneDetails FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceSkuZoneDetails(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceSkuZoneDetails(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? If( __jsonName as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Name;} + {_capability = If( json?.PropertyT("capabilities"), out var __jsonCapabilities) ? If( __jsonCapabilities as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IResourceSkuCapabilities) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ResourceSkuCapabilities.FromJson(__p) )) ))() : null : Capability;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._name) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._name ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("name",__w); + } + if (null != this._capability) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._capability ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("capabilities",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.PowerShell.cs new file mode 100644 index 000000000000..73c733eccb44 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Resource upload definition payload + [System.ComponentModel.TypeConverter(typeof(ResourceUploadDefinitionTypeConverter))] + public partial class ResourceUploadDefinition + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceUploadDefinition(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.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceUploadDefinition(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.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceUploadDefinition(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal)this).RelativePath, global::System.Convert.ToString); + } + if (content.Contains("UploadUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal)this).UploadUrl = (string) content.GetValueForProperty("UploadUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal)this).UploadUrl, 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 ResourceUploadDefinition(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal)this).RelativePath, global::System.Convert.ToString); + } + if (content.Contains("UploadUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal)this).UploadUrl = (string) content.GetValueForProperty("UploadUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal)this).UploadUrl, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Resource upload definition payload + [System.ComponentModel.TypeConverter(typeof(ResourceUploadDefinitionTypeConverter))] + public partial interface IResourceUploadDefinition + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.TypeConverter.cs new file mode 100644 index 000000000000..25884ac83f3a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceUploadDefinitionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceUploadDefinition.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceUploadDefinition.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceUploadDefinition.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/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.cs new file mode 100644 index 000000000000..0a008b4a8fdb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource upload definition payload + public partial class ResourceUploadDefinition : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinitionInternal + { + + /// Backing field for property. + private string _relativePath; + + /// Source relative path + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string RelativePath { get => this._relativePath; set => this._relativePath = value; } + + /// Backing field for property. + private string _uploadUrl; + + /// Upload URL + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string UploadUrl { get => this._uploadUrl; set => this._uploadUrl = value; } + + /// Creates an new instance. + public ResourceUploadDefinition() + { + + } + } + /// Resource upload definition payload + public partial interface IResourceUploadDefinition : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Source relative path + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source relative path", + SerializedName = @"relativePath", + PossibleTypes = new [] { typeof(string) })] + string RelativePath { get; set; } + /// Upload URL + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Upload URL", + SerializedName = @"uploadUrl", + PossibleTypes = new [] { typeof(string) })] + string UploadUrl { get; set; } + + } + /// Resource upload definition payload + internal partial interface IResourceUploadDefinitionInternal + + { + /// Source relative path + string RelativePath { get; set; } + /// Upload URL + string UploadUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.json.cs new file mode 100644 index 000000000000..a7a34f13fb56 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ResourceUploadDefinition.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource upload definition payload + public partial class ResourceUploadDefinition + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ResourceUploadDefinition(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceUploadDefinition(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_relativePath = If( json?.PropertyT("relativePath"), out var __jsonRelativePath) ? (string)__jsonRelativePath : (string)RelativePath;} + {_uploadUrl = If( json?.PropertyT("uploadUrl"), out var __jsonUploadUrl) ? (string)__jsonUploadUrl : (string)UploadUrl;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._relativePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._relativePath.ToString()) : null, "relativePath" ,container.Add ); + AddIf( null != (((object)this._uploadUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._uploadUrl.ToString()) : null, "uploadUrl" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.PowerShell.cs new file mode 100644 index 000000000000..7cd6c6ae9324 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection of instances belong to the Service Registry + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryInstanceTypeConverter))] + public partial class ServiceRegistryInstance + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceRegistryInstance(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceRegistryInstance(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceRegistryInstance(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal)this).Status, 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 ServiceRegistryInstance(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal)this).Status, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection of instances belong to the Service Registry + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryInstanceTypeConverter))] + public partial interface IServiceRegistryInstance + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.TypeConverter.cs new file mode 100644 index 000000000000..74a118fb2173 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceRegistryInstanceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceRegistryInstance.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceRegistryInstance.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceRegistryInstance.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/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.cs new file mode 100644 index 000000000000..971ee8fe12fc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Service Registry + public partial class ServiceRegistryInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal + { + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstanceInternal.Status { get => this._status; set { {_status = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _status; + + /// Status of the Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Status { get => this._status; } + + /// Creates an new instance. + public ServiceRegistryInstance() + { + + } + } + /// Collection of instances belong to the Service Registry + public partial interface IServiceRegistryInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name of the Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the Service Registry instance", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Status of the Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Status of the Service Registry instance", + SerializedName = @"status", + PossibleTypes = new [] { typeof(string) })] + string Status { get; } + + } + /// Collection of instances belong to the Service Registry + internal partial interface IServiceRegistryInstanceInternal + + { + /// Name of the Service Registry instance + string Name { get; set; } + /// Status of the Service Registry instance + string Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.json.cs new file mode 100644 index 000000000000..6a11e9950613 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryInstance.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of instances belong to the Service Registry + public partial class ServiceRegistryInstance + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceRegistryInstance(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceRegistryInstance(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_status = If( json?.PropertyT("status"), out var __jsonStatus) ? (string)__jsonStatus : (string)Status;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._status)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.PowerShell.cs new file mode 100644 index 000000000000..7217a56f413e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Service Registry properties payload + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryPropertiesTypeConverter))] + public partial class ServiceRegistryProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceRegistryProperties(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceRegistryProperties(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceRegistryProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestInstanceCount, (__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 ServiceRegistryProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)this).ResourceRequestInstanceCount, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Service Registry properties payload + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryPropertiesTypeConverter))] + public partial interface IServiceRegistryProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.TypeConverter.cs new file mode 100644 index 000000000000..41bff7b5c327 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceRegistryPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceRegistryProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceRegistryProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceRegistryProperties.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/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.cs new file mode 100644 index 000000000000..730efe50c14a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service Registry properties payload + public partial class ServiceRegistryProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] _instance; + + /// Collection of instances belong to Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] Instance { get => this._instance; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal.Instance { get => this._instance; set { {_instance = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequests()); set { {_resourceRequest = value;} } } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).Cpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).InstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).InstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).Memory = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? _provisioningState; + + /// State of the Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests _resourceRequest; + + /// The requested resource quantity for required CPU and Memory. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequests()); } + + /// Cpu allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).Cpu; } + + /// Instance count of the Service Registry + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).InstanceCount; } + + /// Memory allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)ResourceRequest).Memory; } + + /// Creates an new instance. + public ServiceRegistryProperties() + { + + } + } + /// Service Registry properties payload + public partial interface IServiceRegistryProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Collection of instances belong to Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Service Registry.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] Instance { get; } + /// State of the Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Service Registry.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? ProvisioningState { get; } + /// Cpu allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Service Registry instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Instance count of the Service Registry + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Service Registry", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// Memory allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Service Registry instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + /// Service Registry properties payload + internal partial interface IServiceRegistryPropertiesInternal + + { + /// Collection of instances belong to Service Registry. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] Instance { get; set; } + /// State of the Service Registry. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? ProvisioningState { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests ResourceRequest { get; set; } + /// Cpu allocated to each Service Registry instance + string ResourceRequestCpu { get; set; } + /// Instance count of the Service Registry + int? ResourceRequestInstanceCount { get; set; } + /// Memory allocated to each Service Registry instance + string ResourceRequestMemory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.json.cs new file mode 100644 index 000000000000..4247e91c4abd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service Registry properties payload + public partial class ServiceRegistryProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceRegistryProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceRegistryProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceRequest = If( json?.PropertyT("resourceRequests"), out var __jsonResourceRequests) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_instance = If( json?.PropertyT("instances"), out var __jsonInstances) ? If( __jsonInstances as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryInstance.FromJson(__u) )) ))() : null : Instance;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._resourceRequest ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._resourceRequest.ToJson(null,serializationMode) : null, "resourceRequests" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._instance) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._instance ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("instances",__w); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.PowerShell.cs new file mode 100644 index 000000000000..2148b8c2a0e3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.PowerShell.cs @@ -0,0 +1,274 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Service Registry resource + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryResourceTypeConverter))] + public partial class ServiceRegistryResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceRegistryResource(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceRegistryResource(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceRegistryResource(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestInstanceCount, (__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 ServiceRegistryResource(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequest")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceRequestsTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState.CreateFrom); + } + if (content.Contains("Instance")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryInstanceTypeConverter.ConvertFrom)); + } + if (content.Contains("ResourceRequestCpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestMemory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestMemory, global::System.Convert.ToString); + } + if (content.Contains("ResourceRequestInstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestInstanceCount = (int?) content.GetValueForProperty("ResourceRequestInstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal)this).ResourceRequestInstanceCount, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Service Registry resource + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryResourceTypeConverter))] + public partial interface IServiceRegistryResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.TypeConverter.cs new file mode 100644 index 000000000000..c328efbfb52b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceRegistryResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceRegistryResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceRegistryResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceRegistryResource.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/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.cs new file mode 100644 index 000000000000..b64fb7bcd396 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service Registry resource + public partial class ServiceRegistryResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Collection of instances belong to Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).Instance; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal.Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).Instance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).Instance = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal.ResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequest = value; } + + /// Internal Acessors for ResourceRequestCpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal.ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestCpu = value; } + + /// Internal Acessors for ResourceRequestInstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal.ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestInstanceCount; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestInstanceCount = value; } + + /// Internal Acessors for ResourceRequestMemory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceInternal.ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestMemory = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties _property; + + /// Service Registry properties payload + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryProperties()); set => this._property = value; } + + /// State of the Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ProvisioningState; } + + /// Cpu allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestCpu; } + + /// Instance count of the Service Registry + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? ResourceRequestInstanceCount { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestInstanceCount; } + + /// Memory allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ResourceRequestMemory { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryPropertiesInternal)Property).ResourceRequestMemory; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ServiceRegistryResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Service Registry resource + public partial interface IServiceRegistryResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// Collection of instances belong to Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Collection of instances belong to Service Registry.", + SerializedName = @"instances", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] Instance { get; } + /// State of the Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"State of the Service Registry.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? ProvisioningState { get; } + /// Cpu allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Service Registry instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestCpu { get; } + /// Instance count of the Service Registry + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Service Registry", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? ResourceRequestInstanceCount { get; } + /// Memory allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Service Registry instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string ResourceRequestMemory { get; } + + } + /// Service Registry resource + internal partial interface IServiceRegistryResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Collection of instances belong to Service Registry. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryInstance[] Instance { get; set; } + /// Service Registry properties payload + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryProperties Property { get; set; } + /// State of the Service Registry. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState? ProvisioningState { get; set; } + /// The requested resource quantity for required CPU and Memory. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests ResourceRequest { get; set; } + /// Cpu allocated to each Service Registry instance + string ResourceRequestCpu { get; set; } + /// Instance count of the Service Registry + int? ResourceRequestInstanceCount { get; set; } + /// Memory allocated to each Service Registry instance + string ResourceRequestMemory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.json.cs new file mode 100644 index 000000000000..6ce30024417b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service Registry resource + public partial class ServiceRegistryResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceRegistryResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceRegistryResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryProperties.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..b09f8bea4f86 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Service Registry resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryResourceCollectionTypeConverter))] + public partial class ServiceRegistryResourceCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceRegistryResourceCollection(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceRegistryResourceCollection(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceRegistryResourceCollection(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal)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 ServiceRegistryResourceCollection(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Service Registry resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryResourceCollectionTypeConverter))] + public partial interface IServiceRegistryResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..b89d13057d55 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceRegistryResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceRegistryResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceRegistryResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceRegistryResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.cs new file mode 100644 index 000000000000..458e54407afa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Service Registry resources and a possible link for next set + /// + public partial class ServiceRegistryResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource[] _value; + + /// Collection of Service Registry resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ServiceRegistryResourceCollection() + { + + } + } + /// Object that includes an array of Service Registry resources and a possible link for next set + public partial interface IServiceRegistryResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Service Registry resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Service Registry resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource[] Value { get; set; } + + } + /// Object that includes an array of Service Registry resources and a possible link for next set + internal partial interface IServiceRegistryResourceCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Service Registry resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.json.cs new file mode 100644 index 000000000000..5336b5eb90c1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Service Registry resources and a possible link for next set + /// + public partial class ServiceRegistryResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceRegistryResourceCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceRegistryResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceRegistryResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..46691ce64de4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Resource request payload of Service Registry + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryResourceRequestsTypeConverter))] + public partial class ServiceRegistryResourceRequests + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceRegistryResourceRequests(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceRegistryResourceRequests(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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceRegistryResourceRequests(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).InstanceCount, (__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 ServiceRegistryResourceRequests(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Cpu")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + } + if (content.Contains("Memory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).Memory, global::System.Convert.ToString); + } + if (content.Contains("InstanceCount")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).InstanceCount = (int?) content.GetValueForProperty("InstanceCount",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal)this).InstanceCount, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Resource request payload of Service Registry + [System.ComponentModel.TypeConverter(typeof(ServiceRegistryResourceRequestsTypeConverter))] + public partial interface IServiceRegistryResourceRequests + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..cc18ffba081d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceRegistryResourceRequestsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceRegistryResourceRequests.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceRegistryResourceRequests.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceRegistryResourceRequests.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/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.cs new file mode 100644 index 000000000000..252f67d5b2da --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource request payload of Service Registry + public partial class ServiceRegistryResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal + { + + /// Backing field for property. + private string _cpu; + + /// Cpu allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Cpu { get => this._cpu; } + + /// Backing field for property. + private int? _instanceCount; + + /// Instance count of the Service Registry + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? InstanceCount { get => this._instanceCount; } + + /// Backing field for property. + private string _memory; + + /// Memory allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Memory { get => this._memory; } + + /// Internal Acessors for Cpu + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal.Cpu { get => this._cpu; set { {_cpu = value;} } } + + /// Internal Acessors for InstanceCount + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal.InstanceCount { get => this._instanceCount; set { {_instanceCount = value;} } } + + /// Internal Acessors for Memory + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequestsInternal.Memory { get => this._memory; set { {_memory = value;} } } + + /// Creates an new instance. + public ServiceRegistryResourceRequests() + { + + } + } + /// Resource request payload of Service Registry + public partial interface IServiceRegistryResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Cpu allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Cpu allocated to each Service Registry instance", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + string Cpu { get; } + /// Instance count of the Service Registry + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Instance count of the Service Registry", + SerializedName = @"instanceCount", + PossibleTypes = new [] { typeof(int) })] + int? InstanceCount { get; } + /// Memory allocated to each Service Registry instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Memory allocated to each Service Registry instance", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + string Memory { get; } + + } + /// Resource request payload of Service Registry + internal partial interface IServiceRegistryResourceRequestsInternal + + { + /// Cpu allocated to each Service Registry instance + string Cpu { get; set; } + /// Instance count of the Service Registry + int? InstanceCount { get; set; } + /// Memory allocated to each Service Registry instance + string Memory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.json.cs new file mode 100644 index 000000000000..baa6e9e8fdda --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceRegistryResourceRequests.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource request payload of Service Registry + public partial class ServiceRegistryResourceRequests + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceRequests FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceRegistryResourceRequests(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceRegistryResourceRequests(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (string)__jsonCpu : (string)Cpu;} + {_memory = If( json?.PropertyT("memory"), out var __jsonMemory) ? (string)__jsonMemory : (string)Memory;} + {_instanceCount = If( json?.PropertyT("instanceCount"), out var __jsonInstanceCount) ? (int?)__jsonInstanceCount : InstanceCount;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._cpu)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._cpu.ToString()) : null, "cpu" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._memory)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._memory.ToString()) : null, "memory" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._instanceCount ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._instanceCount) : null, "instanceCount" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.PowerShell.cs new file mode 100644 index 000000000000..62de549b215a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.PowerShell.cs @@ -0,0 +1,464 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Service resource + [System.ComponentModel.TypeConverter(typeof(ServiceResourceTypeConverter))] + public partial class ServiceResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceResource(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.AppPlatform.Models.Api20221101Preview.IServiceResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceResource(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.AppPlatform.Models.Api20221101Preview.IServiceResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceResource(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.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ClusterResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfile = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile) content.GetValueForProperty("NetworkProfile",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfile, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileTypeConverter.ConvertFrom); + } + if (content.Contains("MarketplaceResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResource = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource) content.GetValueForProperty("MarketplaceResource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResource, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResourceTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("PowerState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).PowerState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState?) content.GetValueForProperty("PowerState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).PowerState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VnetAddon")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).VnetAddon = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons) content.GetValueForProperty("VnetAddon",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).VnetAddon, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddonsTypeConverter.ConvertFrom); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Version = (int?) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ServiceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ServiceId = (string) content.GetValueForProperty("ServiceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ServiceId, global::System.Convert.ToString); + } + if (content.Contains("ZoneRedundant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ZoneRedundant = (bool?) content.GetValueForProperty("ZoneRedundant",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ZoneRedundant, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileIngressConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileIngressConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig) content.GetValueForProperty("NetworkProfileIngressConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileIngressConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfigTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfileServiceCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceCidr = (string) content.GetValueForProperty("NetworkProfileServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceCidr, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileRequiredTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileRequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[]) content.GetValueForProperty("NetworkProfileRequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileRequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTrafficTypeConverter.ConvertFrom)); + } + if (content.Contains("NetworkProfileOutboundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileOutboundType = (string) content.GetValueForProperty("NetworkProfileOutboundType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileOutboundType, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourcePlan")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourcePlan = (string) content.GetValueForProperty("MarketplaceResourcePlan",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourcePlan, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourcePublisher")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourcePublisher = (string) content.GetValueForProperty("MarketplaceResourcePublisher",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourcePublisher, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourceProduct")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourceProduct = (string) content.GetValueForProperty("MarketplaceResourceProduct",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourceProduct, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileOutboundIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileOutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("NetworkProfileOutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileOutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfileServiceRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeSubnetId = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileAppSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileAppSubnetId = (string) content.GetValueForProperty("NetworkProfileAppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileAppSubnetId, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileServiceRuntimeNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileAppNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileAppNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileAppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileAppNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("VnetAddonLogStreamPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).VnetAddonLogStreamPublicEndpoint = (bool?) content.GetValueForProperty("VnetAddonLogStreamPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).VnetAddonLogStreamPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("OutboundIPPublicIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).OutboundIPPublicIP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("IngressConfigReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).IngressConfigReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressConfigReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).IngressConfigReadTimeoutInSecond, (__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 ServiceResource(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.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ClusterResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SkuTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfile")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfile = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile) content.GetValueForProperty("NetworkProfile",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfile, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileTypeConverter.ConvertFrom); + } + if (content.Contains("MarketplaceResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResource = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource) content.GetValueForProperty("MarketplaceResource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResource, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MarketplaceResourceTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState.CreateFrom); + } + if (content.Contains("PowerState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).PowerState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState?) content.GetValueForProperty("PowerState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).PowerState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuName, global::System.Convert.ToString); + } + if (content.Contains("SkuTier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuTier, global::System.Convert.ToString); + } + if (content.Contains("SkuCapacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("VnetAddon")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).VnetAddon = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons) content.GetValueForProperty("VnetAddon",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).VnetAddon, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceVNetAddonsTypeConverter.ConvertFrom); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Version = (int?) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ServiceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ServiceId = (string) content.GetValueForProperty("ServiceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ServiceId, global::System.Convert.ToString); + } + if (content.Contains("ZoneRedundant")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ZoneRedundant = (bool?) content.GetValueForProperty("ZoneRedundant",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).ZoneRedundant, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Fqdn")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).Fqdn, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileIngressConfig")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileIngressConfig = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig) content.GetValueForProperty("NetworkProfileIngressConfig",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileIngressConfig, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IngressConfigTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfileServiceCidr")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceCidr = (string) content.GetValueForProperty("NetworkProfileServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceCidr, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileRequiredTraffic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileRequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[]) content.GetValueForProperty("NetworkProfileRequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileRequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RequiredTrafficTypeConverter.ConvertFrom)); + } + if (content.Contains("NetworkProfileOutboundType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileOutboundType = (string) content.GetValueForProperty("NetworkProfileOutboundType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileOutboundType, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourcePlan")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourcePlan = (string) content.GetValueForProperty("MarketplaceResourcePlan",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourcePlan, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourcePublisher")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourcePublisher = (string) content.GetValueForProperty("MarketplaceResourcePublisher",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourcePublisher, global::System.Convert.ToString); + } + if (content.Contains("MarketplaceResourceProduct")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourceProduct = (string) content.GetValueForProperty("MarketplaceResourceProduct",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).MarketplaceResourceProduct, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileOutboundIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileOutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("NetworkProfileOutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileOutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + } + if (content.Contains("NetworkProfileServiceRuntimeSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeSubnetId = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeSubnetId, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileAppSubnetId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileAppSubnetId = (string) content.GetValueForProperty("NetworkProfileAppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileAppSubnetId, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileServiceRuntimeNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("NetworkProfileAppNetworkResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileAppNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileAppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).NetworkProfileAppNetworkResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("VnetAddonLogStreamPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).VnetAddonLogStreamPublicEndpoint = (bool?) content.GetValueForProperty("VnetAddonLogStreamPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).VnetAddonLogStreamPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("OutboundIPPublicIP")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).OutboundIPPublicIP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("IngressConfigReadTimeoutInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).IngressConfigReadTimeoutInSecond = (int?) content.GetValueForProperty("IngressConfigReadTimeoutInSecond",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal)this).IngressConfigReadTimeoutInSecond, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Service resource + [System.ComponentModel.TypeConverter(typeof(ServiceResourceTypeConverter))] + public partial interface IServiceResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.TypeConverter.cs new file mode 100644 index 000000000000..fe1c3cec02d4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceResource.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/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.cs new file mode 100644 index 000000000000..b407192bbc60 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service resource + public partial class ServiceResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResource(); + + /// Fully qualified dns name of the service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Fqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).Fqdn; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Id; } + + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? IngressConfigReadTimeoutInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).IngressConfigReadTimeoutInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).IngressConfigReadTimeoutInSecond = value ?? default(int); } + + /// The GEO location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)__trackedResource).Location = value ?? null; } + + /// The plan id of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string MarketplaceResourcePlan { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).MarketplaceResourcePlan; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).MarketplaceResourcePlan = value ?? null; } + + /// The 3rd Party artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string MarketplaceResourceProduct { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).MarketplaceResourceProduct; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).MarketplaceResourceProduct = value ?? null; } + + /// The publisher id of the 3rd Party Artifact that is being bought. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string MarketplaceResourcePublisher { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).MarketplaceResourcePublisher; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).MarketplaceResourcePublisher = value ?? null; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Internal Acessors for Fqdn + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.Fqdn { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).Fqdn; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).Fqdn = value; } + + /// Internal Acessors for MarketplaceResource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.MarketplaceResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).MarketplaceResource; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).MarketplaceResource = value; } + + /// Internal Acessors for NetworkProfile + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.NetworkProfile { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfile; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfile = value; } + + /// Internal Acessors for NetworkProfileIngressConfig + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.NetworkProfileIngressConfig { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileIngressConfig; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileIngressConfig = value; } + + /// Internal Acessors for NetworkProfileOutboundIP + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.NetworkProfileOutboundIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileOutboundIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileOutboundIP = value; } + + /// Internal Acessors for NetworkProfileRequiredTraffic + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.NetworkProfileRequiredTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileRequiredTraffic; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileRequiredTraffic = value; } + + /// Internal Acessors for OutboundIPPublicIP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).OutboundIPPublicIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).OutboundIPPublicIP = value; } + + /// Internal Acessors for PowerState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.PowerState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).PowerState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).PowerState = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ClusterResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ServiceId + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.ServiceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).ServiceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).ServiceId = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for Version + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).Version = value; } + + /// Internal Acessors for VnetAddon + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceInternal.VnetAddon { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).VnetAddon; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).VnetAddon = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Name; } + + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileAppNetworkResourceGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileAppNetworkResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileAppNetworkResourceGroup = value ?? null; } + + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileAppSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileAppSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileAppSubnetId = value ?? null; } + + /// The egress traffic type of Azure Spring Apps VNet instances. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileOutboundType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileOutboundType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileOutboundType = value ?? null; } + + /// Required inbound or outbound traffics for Azure Spring Apps resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileRequiredTraffic; } + + /// Azure Spring Apps service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileServiceCidr { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceCidr; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceCidr = value ?? null; } + + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileServiceRuntimeNetworkResourceGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceRuntimeNetworkResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceRuntimeNetworkResourceGroup = value ?? null; } + + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileServiceRuntimeSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceRuntimeSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceRuntimeSubnetId = value ?? null; } + + /// A list of public IP addresses. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string[] OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).OutboundIPPublicIP; } + + /// Power state of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? PowerState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).PowerState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties _property; + + /// Properties of the Service resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ClusterResourceProperties()); set => this._property = value; } + + /// Provisioning state of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).ProvisioningState; } + + /// ServiceInstanceEntity GUID which uniquely identifies a created resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ServiceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).ServiceId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku _sku; + + /// Sku of the Service resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku()); set => this._sku = value; } + + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? SkuCapacity { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Capacity = value ?? default(int); } + + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Name = value ?? null; } + + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SkuTier { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__trackedResource).Type; } + + /// Version of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).Version; } + + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? VnetAddonLogStreamPublicEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).VnetAddonLogStreamPublicEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).VnetAddonLogStreamPublicEndpoint = value ?? default(bool); } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public bool? ZoneRedundant { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).ZoneRedundant; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourcePropertiesInternal)Property).ZoneRedundant = value ?? default(bool); } + + /// Creates an new instance. + public ServiceResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Service resource + public partial interface IServiceResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResource + { + /// Fully qualified dns name of the service instance + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified dns name of the service instance", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { get; } + /// Ingress read time out in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + int? IngressConfigReadTimeoutInSecond { get; set; } + /// The plan id of the 3rd Party Artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The plan id of the 3rd Party Artifact that is being procured.", + SerializedName = @"plan", + PossibleTypes = new [] { typeof(string) })] + string MarketplaceResourcePlan { get; set; } + /// The 3rd Party artifact that is being procured. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured.", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + string MarketplaceResourceProduct { get; set; } + /// The publisher id of the 3rd Party Artifact that is being bought. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher id of the 3rd Party Artifact that is being bought.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + string MarketplaceResourcePublisher { get; set; } + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources for customer apps in Azure Spring Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileAppNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileAppSubnetId { get; set; } + /// The egress traffic type of Azure Spring Apps VNet instances. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The egress traffic type of Azure Spring Apps VNet instances.", + SerializedName = @"outboundType", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileOutboundType { get; set; } + /// Required inbound or outbound traffics for Azure Spring Apps resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Required inbound or outbound traffics for Azure Spring Apps resource.", + SerializedName = @"requiredTraffics", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get; } + /// Azure Spring Apps service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Apps service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceRuntimeSubnetId { get; set; } + /// A list of public IP addresses. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"A list of public IP addresses.", + SerializedName = @"publicIPs", + PossibleTypes = new [] { typeof(string) })] + string[] OutboundIPPublicIP { get; } + /// Power state of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Power state of the Service", + SerializedName = @"powerState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? PowerState { get; } + /// Provisioning state of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Service", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? ProvisioningState { get; } + /// ServiceInstanceEntity GUID which uniquely identifies a created resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"ServiceInstanceEntity GUID which uniquely identifies a created resource", + SerializedName = @"serviceId", + PossibleTypes = new [] { typeof(string) })] + string ServiceId { get; } + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? SkuCapacity { get; set; } + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string SkuName { get; set; } + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string SkuTier { get; set; } + /// Version of the Service + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Version of the Service", + SerializedName = @"version", + PossibleTypes = new [] { typeof(int) })] + int? Version { get; } + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the log stream in vnet injection instance could be accessed from internet.", + SerializedName = @"logStreamPublicEndpoint", + PossibleTypes = new [] { typeof(bool) })] + bool? VnetAddonLogStreamPublicEndpoint { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(bool) })] + bool? ZoneRedundant { get; set; } + + } + /// Service resource + internal partial interface IServiceResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal + { + /// Fully qualified dns name of the service instance + string Fqdn { get; set; } + /// Ingress read time out in seconds. + int? IngressConfigReadTimeoutInSecond { get; set; } + /// Purchasing 3rd party product of the Service resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMarketplaceResource MarketplaceResource { get; set; } + /// The plan id of the 3rd Party Artifact that is being procured. + string MarketplaceResourcePlan { get; set; } + /// The 3rd Party artifact that is being procured. + string MarketplaceResourceProduct { get; set; } + /// The publisher id of the 3rd Party Artifact that is being bought. + string MarketplaceResourcePublisher { get; set; } + /// Network profile of the Service + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfile NetworkProfile { get; set; } + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + string NetworkProfileAppNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + string NetworkProfileAppSubnetId { get; set; } + /// Ingress configuration payload for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IIngressConfig NetworkProfileIngressConfig { get; set; } + /// Desired outbound IP resources for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INetworkProfileOutboundIPs NetworkProfileOutboundIP { get; set; } + /// The egress traffic type of Azure Spring Apps VNet instances. + string NetworkProfileOutboundType { get; set; } + /// Required inbound or outbound traffics for Azure Spring Apps resource. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get; set; } + /// Azure Spring Apps service reserved CIDR + string NetworkProfileServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + string NetworkProfileServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + string NetworkProfileServiceRuntimeSubnetId { get; set; } + /// A list of public IP addresses. + string[] OutboundIPPublicIP { get; set; } + /// Power state of the Service + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState? PowerState { get; set; } + /// Properties of the Service resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IClusterResourceProperties Property { get; set; } + /// Provisioning state of the Service + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? ProvisioningState { get; set; } + /// ServiceInstanceEntity GUID which uniquely identifies a created resource + string ServiceId { get; set; } + /// Sku of the Service resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku Sku { get; set; } + /// Current capacity of the target resource + int? SkuCapacity { get; set; } + /// Name of the Sku + string SkuName { get; set; } + /// Tier of the Sku + string SkuTier { get; set; } + /// Version of the Service + int? Version { get; set; } + /// Additional Service settings in vnet injection instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons VnetAddon { get; set; } + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + bool? VnetAddonLogStreamPublicEndpoint { get; set; } + + bool? ZoneRedundant { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.json.cs new file mode 100644 index 000000000000..56c03b835df2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service resource + public partial class ServiceResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ClusterResourceProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Sku.FromJson(__jsonSku) : Sku;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.PowerShell.cs new file mode 100644 index 000000000000..3c9e5816bba8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Service resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(ServiceResourceListTypeConverter))] + public partial class ServiceResourceList + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResourceList DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceResourceList(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.AppPlatform.Models.Api20221101Preview.IServiceResourceList DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceResourceList(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.AppPlatform.Models.Api20221101Preview.IServiceResourceList FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceResourceList(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.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal)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 ServiceResourceList(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.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of Service resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(ServiceResourceListTypeConverter))] + public partial interface IServiceResourceList + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.TypeConverter.cs new file mode 100644 index 000000000000..4e8a4f32ec29 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceResourceListTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResourceList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceResourceList.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceResourceList.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceResourceList.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/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.cs new file mode 100644 index 000000000000..608e08a2ec33 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Service resources and a possible link for next set + /// + public partial class ServiceResourceList : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceListInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource[] _value; + + /// Collection of Service resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ServiceResourceList() + { + + } + } + /// Object that includes an array of Service resources and a possible link for next set + public partial interface IServiceResourceList : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of Service resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of Service resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource[] Value { get; set; } + + } + /// Object that includes an array of Service resources and a possible link for next set + internal partial interface IServiceResourceListInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of Service resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.json.cs new file mode 100644 index 000000000000..5ea79acec62c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceResourceList.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Service resources and a possible link for next set + /// + public partial class ServiceResourceList + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceResourceList(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceResourceList(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IServiceResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.PowerShell.cs new file mode 100644 index 000000000000..6337281e880f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Service specification payload + [System.ComponentModel.TypeConverter(typeof(ServiceSpecificationTypeConverter))] + public partial class ServiceSpecification + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceSpecification DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceSpecification(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.AppPlatform.Models.Api20221101Preview.IServiceSpecification DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceSpecification(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.AppPlatform.Models.Api20221101Preview.IServiceSpecification FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceSpecification(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LogSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)this).LogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[]) content.GetValueForProperty("LogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)this).LogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecificationTypeConverter.ConvertFrom)); + } + if (content.Contains("MetricSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)this).MetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[]) content.GetValueForProperty("MetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)this).MetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecificationTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ServiceSpecification(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LogSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)this).LogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[]) content.GetValueForProperty("LogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)this).LogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecificationTypeConverter.ConvertFrom)); + } + if (content.Contains("MetricSpecification")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)this).MetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[]) content.GetValueForProperty("MetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal)this).MetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecificationTypeConverter.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Service specification payload + [System.ComponentModel.TypeConverter(typeof(ServiceSpecificationTypeConverter))] + public partial interface IServiceSpecification + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.TypeConverter.cs new file mode 100644 index 000000000000..7f11be12290d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceSpecificationTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceSpecification ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceSpecification.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceSpecification.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceSpecification.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/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.cs new file mode 100644 index 000000000000..67b53e529bcf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service specification payload + public partial class ServiceSpecification : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecificationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] _logSpecification; + + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] LogSpecification { get => this._logSpecification; set => this._logSpecification = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] _metricSpecification; + + /// Specifications of the Metrics for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] MetricSpecification { get => this._metricSpecification; set => this._metricSpecification = value; } + + /// Creates an new instance. + public ServiceSpecification() + { + + } + } + /// Service specification payload + public partial interface IServiceSpecification : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Specifications of the Log for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Log for Azure Monitoring", + SerializedName = @"logSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] LogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifications of the Metrics for Azure Monitoring", + SerializedName = @"metricSpecifications", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] MetricSpecification { get; set; } + + } + /// Service specification payload + internal partial interface IServiceSpecificationInternal + + { + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogSpecification[] LogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMetricSpecification[] MetricSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.json.cs new file mode 100644 index 000000000000..e88ef71b1821 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceSpecification.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service specification payload + public partial class ServiceSpecification + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceSpecification FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceSpecification(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceSpecification(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_logSpecification = If( json?.PropertyT("logSpecifications"), out var __jsonLogSpecifications) ? If( __jsonLogSpecifications as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ILogSpecification) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.LogSpecification.FromJson(__u) )) ))() : null : LogSpecification;} + {_metricSpecification = If( json?.PropertyT("metricSpecifications"), out var __jsonMetricSpecifications) ? If( __jsonMetricSpecifications as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IMetricSpecification) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MetricSpecification.FromJson(__p) )) ))() : null : MetricSpecification;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._logSpecification) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._logSpecification ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("logSpecifications",__w); + } + if (null != this._metricSpecification) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __s in this._metricSpecification ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("metricSpecifications",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.PowerShell.cs new file mode 100644 index 000000000000..91b9698c185c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Additional Service settings in vnet injection instance + [System.ComponentModel.TypeConverter(typeof(ServiceVNetAddonsTypeConverter))] + public partial class ServiceVNetAddons + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceVNetAddons(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.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceVNetAddons(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.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceVNetAddons(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LogStreamPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddonsInternal)this).LogStreamPublicEndpoint = (bool?) content.GetValueForProperty("LogStreamPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddonsInternal)this).LogStreamPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ServiceVNetAddons(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("LogStreamPublicEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddonsInternal)this).LogStreamPublicEndpoint = (bool?) content.GetValueForProperty("LogStreamPublicEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddonsInternal)this).LogStreamPublicEndpoint, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Additional Service settings in vnet injection instance + [System.ComponentModel.TypeConverter(typeof(ServiceVNetAddonsTypeConverter))] + public partial interface IServiceVNetAddons + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.TypeConverter.cs new file mode 100644 index 000000000000..68216df8395f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceVNetAddonsTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceVNetAddons.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceVNetAddons.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceVNetAddons.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/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.cs new file mode 100644 index 000000000000..ae06f46bc448 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Additional Service settings in vnet injection instance + public partial class ServiceVNetAddons : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddonsInternal + { + + /// Backing field for property. + private bool? _logStreamPublicEndpoint; + + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? LogStreamPublicEndpoint { get => this._logStreamPublicEndpoint; set => this._logStreamPublicEndpoint = value; } + + /// Creates an new instance. + public ServiceVNetAddons() + { + + } + } + /// Additional Service settings in vnet injection instance + public partial interface IServiceVNetAddons : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the log stream in vnet injection instance could be accessed from internet.", + SerializedName = @"logStreamPublicEndpoint", + PossibleTypes = new [] { typeof(bool) })] + bool? LogStreamPublicEndpoint { get; set; } + + } + /// Additional Service settings in vnet injection instance + internal partial interface IServiceVNetAddonsInternal + + { + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + bool? LogStreamPublicEndpoint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.json.cs new file mode 100644 index 000000000000..c5ebfcd5e17a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ServiceVNetAddons.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Additional Service settings in vnet injection instance + public partial class ServiceVNetAddons + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceVNetAddons FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ServiceVNetAddons(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceVNetAddons(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_logStreamPublicEndpoint = If( json?.PropertyT("logStreamPublicEndpoint"), out var __jsonLogStreamPublicEndpoint) ? (bool?)__jsonLogStreamPublicEndpoint : LogStreamPublicEndpoint;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._logStreamPublicEndpoint ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._logStreamPublicEndpoint) : null, "logStreamPublicEndpoint" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.PowerShell.cs new file mode 100644 index 000000000000..3a68f1ee0854 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Sku of Azure Spring Apps + [System.ComponentModel.TypeConverter(typeof(SkuTypeConverter))] + public partial class Sku + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISku DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Sku(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.AppPlatform.Models.Api20221101Preview.ISku DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Sku(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.AppPlatform.Models.Api20221101Preview.ISku FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Sku(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.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Tier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Tier, global::System.Convert.ToString); + } + if (content.Contains("Capacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Capacity, (__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 Sku(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.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Tier")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Tier, global::System.Convert.ToString); + } + if (content.Contains("Capacity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal)this).Capacity, (__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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Sku of Azure Spring Apps + [System.ComponentModel.TypeConverter(typeof(SkuTypeConverter))] + public partial interface ISku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.TypeConverter.cs new file mode 100644 index 000000000000..3a6ac21b12ed --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SkuTypeConverter : 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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Sku.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Sku.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Sku.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/appplatform/generated/api/Models/Api20221101Preview/Sku.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.cs new file mode 100644 index 000000000000..15ecfc288398 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sku of Azure Spring Apps + public partial class Sku : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuInternal + { + + /// Backing field for property. + private int? _capacity; + + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Capacity { get => this._capacity; set => this._capacity = value; } + + /// Backing field for property. + private string _name; + + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _tier; + + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Tier { get => this._tier; set => this._tier = value; } + + /// Creates an new instance. + public Sku() + { + + } + } + /// Sku of Azure Spring Apps + public partial interface ISku : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Current capacity of the target resource + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + int? Capacity { get; set; } + /// Name of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Tier of the Sku + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + string Tier { get; set; } + + } + /// Sku of Azure Spring Apps + internal partial interface ISkuInternal + + { + /// Current capacity of the target resource + int? Capacity { get; set; } + /// Name of the Sku + string Name { get; set; } + /// Tier of the Sku + string Tier { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.json.cs new file mode 100644 index 000000000000..ede72ac0532c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/Sku.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sku of Azure Spring Apps + public partial class Sku + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISku FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new Sku(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal Sku(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_tier = If( json?.PropertyT("tier"), out var __jsonTier) ? (string)__jsonTier : (string)Tier;} + {_capacity = If( json?.PropertyT("capacity"), out var __jsonCapacity) ? (int?)__jsonCapacity : Capacity;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._tier)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._tier.ToString()) : null, "tier" ,container.Add ); + AddIf( null != this._capacity ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._capacity) : null, "capacity" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.PowerShell.cs new file mode 100644 index 000000000000..8a2001f08d4a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The SKU capacity + [System.ComponentModel.TypeConverter(typeof(SkuCapacityTypeConverter))] + public partial class SkuCapacity + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISkuCapacity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SkuCapacity(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.AppPlatform.Models.Api20221101Preview.ISkuCapacity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SkuCapacity(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.AppPlatform.Models.Api20221101Preview.ISkuCapacity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SkuCapacity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Minimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Minimum = (int) content.GetValueForProperty("Minimum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Minimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Maximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Maximum = (int?) content.GetValueForProperty("Maximum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Maximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Default")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Default = (int?) content.GetValueForProperty("Default",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Default, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).ScaleType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType?) content.GetValueForProperty("ScaleType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).ScaleType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SkuCapacity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Minimum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Minimum = (int) content.GetValueForProperty("Minimum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Minimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Maximum")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Maximum = (int?) content.GetValueForProperty("Maximum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Maximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("Default")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Default = (int?) content.GetValueForProperty("Default",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).Default, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("ScaleType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).ScaleType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType?) content.GetValueForProperty("ScaleType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal)this).ScaleType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The SKU capacity + [System.ComponentModel.TypeConverter(typeof(SkuCapacityTypeConverter))] + public partial interface ISkuCapacity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.TypeConverter.cs new file mode 100644 index 000000000000..dcc2fd871593 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SkuCapacityTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISkuCapacity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SkuCapacity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SkuCapacity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SkuCapacity.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/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.cs new file mode 100644 index 000000000000..47fb3d2d7b9a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The SKU capacity + public partial class SkuCapacity : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacityInternal + { + + /// Backing field for property. + private int? _default; + + /// Gets or sets the default. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Default { get => this._default; set => this._default = value; } + + /// Backing field for property. + private int? _maximum; + + /// Gets or sets the maximum. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Maximum { get => this._maximum; set => this._maximum = value; } + + /// Backing field for property. + private int _minimum; + + /// Gets or sets the minimum. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int Minimum { get => this._minimum; set => this._minimum = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType? _scaleType; + + /// Gets or sets the type of the scale. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType? ScaleType { get => this._scaleType; set => this._scaleType = value; } + + /// Creates an new instance. + public SkuCapacity() + { + + } + } + /// The SKU capacity + public partial interface ISkuCapacity : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Gets or sets the default. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets or sets the default.", + SerializedName = @"default", + PossibleTypes = new [] { typeof(int) })] + int? Default { get; set; } + /// Gets or sets the maximum. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets or sets the maximum.", + SerializedName = @"maximum", + PossibleTypes = new [] { typeof(int) })] + int? Maximum { get; set; } + /// Gets or sets the minimum. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets or sets the minimum.", + SerializedName = @"minimum", + PossibleTypes = new [] { typeof(int) })] + int Minimum { get; set; } + /// Gets or sets the type of the scale. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets or sets the type of the scale.", + SerializedName = @"scaleType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType? ScaleType { get; set; } + + } + /// The SKU capacity + internal partial interface ISkuCapacityInternal + + { + /// Gets or sets the default. + int? Default { get; set; } + /// Gets or sets the maximum. + int? Maximum { get; set; } + /// Gets or sets the minimum. + int Minimum { get; set; } + /// Gets or sets the type of the scale. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType? ScaleType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.json.cs new file mode 100644 index 000000000000..a9aebe36aa6f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SkuCapacity.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The SKU capacity + public partial class SkuCapacity + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISkuCapacity FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SkuCapacity(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SkuCapacity(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_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;} + {_scaleType = If( json?.PropertyT("scaleType"), out var __jsonScaleType) ? (string)__jsonScaleType : (string)ScaleType;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber(this._minimum), "minimum" ,container.Add ); + AddIf( null != this._maximum ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._maximum) : null, "maximum" ,container.Add ); + AddIf( null != this._default ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._default) : null, "default" ,container.Add ); + AddIf( null != (((object)this._scaleType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._scaleType.ToString()) : null, "scaleType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.PowerShell.cs new file mode 100644 index 000000000000..55da8a4b5adb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Uploaded Java source code binary for a deployment + [System.ComponentModel.TypeConverter(typeof(SourceUploadedUserSourceInfoTypeConverter))] + public partial class SourceUploadedUserSourceInfo + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SourceUploadedUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SourceUploadedUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SourceUploadedUserSourceInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ArtifactSelector")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal)this).ArtifactSelector = (string) content.GetValueForProperty("ArtifactSelector",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal)this).ArtifactSelector, global::System.Convert.ToString); + } + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal)this).RuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath, 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 SourceUploadedUserSourceInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ArtifactSelector")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal)this).ArtifactSelector = (string) content.GetValueForProperty("ArtifactSelector",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal)this).ArtifactSelector, global::System.Convert.ToString); + } + if (content.Contains("RuntimeVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal)this).RuntimeVersion = (string) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal)this).RuntimeVersion, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Uploaded Java source code binary for a deployment + [System.ComponentModel.TypeConverter(typeof(SourceUploadedUserSourceInfoTypeConverter))] + public partial interface ISourceUploadedUserSourceInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.TypeConverter.cs new file mode 100644 index 000000000000..46efbc561f1a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SourceUploadedUserSourceInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SourceUploadedUserSourceInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SourceUploadedUserSourceInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SourceUploadedUserSourceInfo.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/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.cs new file mode 100644 index 000000000000..3ebc7fb58702 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Uploaded Java source code binary for a deployment + public partial class SourceUploadedUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo __uploadedUserSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UploadedUserSourceInfo(); + + /// Backing field for property. + private string _artifactSelector; + + /// + /// Selector for the artifact to be used for the deployment for multi-module projects. This should be + /// the relative path to the target module/project. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ArtifactSelector { get => this._artifactSelector; set => this._artifactSelector = value; } + + /// Relative path of the storage which stores the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string RelativePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)__uploadedUserSourceInfo).RelativePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)__uploadedUserSourceInfo).RelativePath = value ?? null; } + + /// Backing field for property. + private string _runtimeVersion; + + /// Runtime version of the source file + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string RuntimeVersion { get => this._runtimeVersion; set => this._runtimeVersion = value; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Type = value ; } + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__uploadedUserSourceInfo).Version = value ?? null; } + + /// Creates an new instance. + public SourceUploadedUserSourceInfo() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__uploadedUserSourceInfo), __uploadedUserSourceInfo); + await eventListener.AssertObjectIsValid(nameof(__uploadedUserSourceInfo), __uploadedUserSourceInfo); + } + } + /// Uploaded Java source code binary for a deployment + public partial interface ISourceUploadedUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo + { + /// + /// Selector for the artifact to be used for the deployment for multi-module projects. This should be + /// the relative path to the target module/project. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Selector for the artifact to be used for the deployment for multi-module projects. This should be + the relative path to the target module/project.", + SerializedName = @"artifactSelector", + PossibleTypes = new [] { typeof(string) })] + string ArtifactSelector { get; set; } + /// Runtime version of the source file + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version of the source file", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(string) })] + string RuntimeVersion { get; set; } + + } + /// Uploaded Java source code binary for a deployment + internal partial interface ISourceUploadedUserSourceInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal + { + /// + /// Selector for the artifact to be used for the deployment for multi-module projects. This should be + /// the relative path to the target module/project. + /// + string ArtifactSelector { get; set; } + /// Runtime version of the source file + string RuntimeVersion { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.json.cs new file mode 100644 index 000000000000..ec69c6dedf11 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SourceUploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Uploaded Java source code binary for a deployment + public partial class SourceUploadedUserSourceInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISourceUploadedUserSourceInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SourceUploadedUserSourceInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SourceUploadedUserSourceInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __uploadedUserSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UploadedUserSourceInfo(json); + {_artifactSelector = If( json?.PropertyT("artifactSelector"), out var __jsonArtifactSelector) ? (string)__jsonArtifactSelector : (string)ArtifactSelector;} + {_runtimeVersion = If( json?.PropertyT("runtimeVersion"), out var __jsonRuntimeVersion) ? (string)__jsonRuntimeVersion : (string)RuntimeVersion;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __uploadedUserSourceInfo?.ToJson(container, serializationMode); + AddIf( null != (((object)this._artifactSelector)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._artifactSelector.ToString()) : null, "artifactSelector" ,container.Add ); + AddIf( null != (((object)this._runtimeVersion)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._runtimeVersion.ToString()) : null, "runtimeVersion" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.PowerShell.cs new file mode 100644 index 000000000000..d919ac47717f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Single sign-on related configuration + [System.ComponentModel.TypeConverter(typeof(SsoPropertiesTypeConverter))] + public partial class SsoProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISsoProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SsoProperties(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.AppPlatform.Models.Api20221101Preview.ISsoProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SsoProperties(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.AppPlatform.Models.Api20221101Preview.ISsoProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SsoProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).Scope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).ClientSecret = (string) content.GetValueForProperty("ClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).ClientSecret, global::System.Convert.ToString); + } + if (content.Contains("IssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).IssuerUri = (string) content.GetValueForProperty("IssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).IssuerUri, 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 SsoProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).Scope = (string[]) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).Scope, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).ClientId, global::System.Convert.ToString); + } + if (content.Contains("ClientSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).ClientSecret = (string) content.GetValueForProperty("ClientSecret",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).ClientSecret, global::System.Convert.ToString); + } + if (content.Contains("IssuerUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).IssuerUri = (string) content.GetValueForProperty("IssuerUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal)this).IssuerUri, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Single sign-on related configuration + [System.ComponentModel.TypeConverter(typeof(SsoPropertiesTypeConverter))] + public partial interface ISsoProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.TypeConverter.cs new file mode 100644 index 000000000000..ee753467a9d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SsoPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISsoProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SsoProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SsoProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SsoProperties.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/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.cs new file mode 100644 index 000000000000..8f96d22cabb5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Single sign-on related configuration + public partial class SsoProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoPropertiesInternal + { + + /// Backing field for property. + private string _clientId; + + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Backing field for property. + private string _clientSecret; + + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ClientSecret { get => this._clientSecret; set => this._clientSecret = value; } + + /// Backing field for property. + private string _issuerUri; + + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string IssuerUri { get => this._issuerUri; set => this._issuerUri = value; } + + /// Backing field for property. + private string[] _scope; + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Scope { get => this._scope; set => this._scope = value; } + + /// Creates an new instance. + public SsoProperties() + { + + } + } + /// Single sign-on related configuration + public partial interface ISsoProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The public identifier for the application + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + /// The secret known only to the application and the authorization server + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + string ClientSecret { get; set; } + /// The URI of Issuer Identifier + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of Issuer Identifier", + SerializedName = @"issuerUri", + PossibleTypes = new [] { typeof(string) })] + string IssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + string[] Scope { get; set; } + + } + /// Single sign-on related configuration + internal partial interface ISsoPropertiesInternal + + { + /// The public identifier for the application + string ClientId { get; set; } + /// The secret known only to the application and the authorization server + string ClientSecret { get; set; } + /// The URI of Issuer Identifier + string IssuerUri { get; set; } + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + string[] Scope { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.json.cs new file mode 100644 index 000000000000..2f9b1f2c93fe --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SsoProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Single sign-on related configuration + public partial class SsoProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISsoProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SsoProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SsoProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_scope = If( json?.PropertyT("scope"), out var __jsonScope) ? If( __jsonScope as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Scope;} + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + {_clientSecret = If( json?.PropertyT("clientSecret"), out var __jsonClientSecret) ? (string)__jsonClientSecret : (string)ClientSecret;} + {_issuerUri = If( json?.PropertyT("issuerUri"), out var __jsonIssuerUri) ? (string)__jsonIssuerUri : (string)IssuerUri;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (null != this._scope) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._scope ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("scope",__w); + } + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AddIf( null != (((object)this._clientSecret)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._clientSecret.ToString()) : null, "clientSecret" ,container.Add ); + AddIf( null != (((object)this._issuerUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._issuerUri.ToString()) : null, "issuerUri" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.PowerShell.cs new file mode 100644 index 000000000000..7a7b014270db --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// KPack ClusterStack properties payload + [System.ComponentModel.TypeConverter(typeof(StackPropertiesTypeConverter))] + public partial class StackProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStackProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StackProperties(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.AppPlatform.Models.Api20221101Preview.IStackProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StackProperties(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.AppPlatform.Models.Api20221101Preview.IStackProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StackProperties(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.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)this).Version, 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 StackProperties(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.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal)this).Version, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// KPack ClusterStack properties payload + [System.ComponentModel.TypeConverter(typeof(StackPropertiesTypeConverter))] + public partial interface IStackProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.TypeConverter.cs new file mode 100644 index 000000000000..df8751b767a3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StackPropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStackProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StackProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StackProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StackProperties.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/appplatform/generated/api/Models/Api20221101Preview/StackProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.cs new file mode 100644 index 000000000000..a8115cc30df9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// KPack ClusterStack properties payload + public partial class StackProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackPropertiesInternal + { + + /// Backing field for property. + private string _id; + + /// Id of the ClusterStack. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Backing field for property. + private string _version; + + /// Version of the ClusterStack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public StackProperties() + { + + } + } + /// KPack ClusterStack properties payload + public partial interface IStackProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Id of the ClusterStack. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Id of the ClusterStack.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + /// Version of the ClusterStack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the ClusterStack", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// KPack ClusterStack properties payload + internal partial interface IStackPropertiesInternal + + { + /// Id of the ClusterStack. + string Id { get; set; } + /// Version of the ClusterStack + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.json.cs new file mode 100644 index 000000000000..30f6cd1e5c75 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StackProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// KPack ClusterStack properties payload + public partial class StackProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStackProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new StackProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal StackProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.PowerShell.cs new file mode 100644 index 000000000000..1eb78c0401a6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// storage resource of type Azure Storage Account. + [System.ComponentModel.TypeConverter(typeof(StorageAccountTypeConverter))] + public partial class StorageAccount + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStorageAccount DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StorageAccount(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.AppPlatform.Models.Api20221101Preview.IStorageAccount DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StorageAccount(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.AppPlatform.Models.Api20221101Preview.IStorageAccount FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StorageAccount(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal)this).AccountName = (string) content.GetValueForProperty("AccountName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal)this).AccountName, global::System.Convert.ToString); + } + if (content.Contains("AccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal)this).AccountKey = (string) content.GetValueForProperty("AccountKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal)this).AccountKey, global::System.Convert.ToString); + } + if (content.Contains("StorageType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)this).StorageType = (string) content.GetValueForProperty("StorageType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)this).StorageType, 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 StorageAccount(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AccountName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal)this).AccountName = (string) content.GetValueForProperty("AccountName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal)this).AccountName, global::System.Convert.ToString); + } + if (content.Contains("AccountKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal)this).AccountKey = (string) content.GetValueForProperty("AccountKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal)this).AccountKey, global::System.Convert.ToString); + } + if (content.Contains("StorageType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)this).StorageType = (string) content.GetValueForProperty("StorageType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)this).StorageType, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// storage resource of type Azure Storage Account. + [System.ComponentModel.TypeConverter(typeof(StorageAccountTypeConverter))] + public partial interface IStorageAccount + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.TypeConverter.cs new file mode 100644 index 000000000000..8c6935820fe5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StorageAccountTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStorageAccount ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccount).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StorageAccount.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StorageAccount.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StorageAccount.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/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.cs new file mode 100644 index 000000000000..537958c4a8f4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// storage resource of type Azure Storage Account. + public partial class StorageAccount : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccount, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccountInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties __storageProperties = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageProperties(); + + /// Backing field for property. + private string _accountKey; + + /// The account key of the Azure Storage Account. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AccountKey { get => this._accountKey; set => this._accountKey = value; } + + /// Backing field for property. + private string _accountName; + + /// The account name of the Azure Storage Account. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AccountName { get => this._accountName; set => this._accountName = value; } + + /// Internal Acessors for StorageType + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal.StorageType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)__storageProperties).StorageType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)__storageProperties).StorageType = value; } + + /// The type of the storage. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string StorageType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)__storageProperties).StorageType; } + + /// Creates an new instance. + public StorageAccount() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__storageProperties), __storageProperties); + await eventListener.AssertObjectIsValid(nameof(__storageProperties), __storageProperties); + } + } + /// storage resource of type Azure Storage Account. + public partial interface IStorageAccount : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties + { + /// The account key of the Azure Storage Account. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The account key of the Azure Storage Account.", + SerializedName = @"accountKey", + PossibleTypes = new [] { typeof(string) })] + string AccountKey { get; set; } + /// The account name of the Azure Storage Account. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The account name of the Azure Storage Account.", + SerializedName = @"accountName", + PossibleTypes = new [] { typeof(string) })] + string AccountName { get; set; } + + } + /// storage resource of type Azure Storage Account. + internal partial interface IStorageAccountInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal + { + /// The account key of the Azure Storage Account. + string AccountKey { get; set; } + /// The account name of the Azure Storage Account. + string AccountName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.json.cs new file mode 100644 index 000000000000..cb8399b7705f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageAccount.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// storage resource of type Azure Storage Account. + public partial class StorageAccount + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccount. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccount. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageAccount FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new StorageAccount(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal StorageAccount(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __storageProperties = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageProperties(json); + {_accountName = If( json?.PropertyT("accountName"), out var __jsonAccountName) ? (string)__jsonAccountName : (string)AccountName;} + {_accountKey = If( json?.PropertyT("accountKey"), out var __jsonAccountKey) ? (string)__jsonAccountKey : (string)AccountKey;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __storageProperties?.ToJson(container, serializationMode); + AddIf( null != (((object)this._accountName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._accountName.ToString()) : null, "accountName" ,container.Add ); + AddIf( null != (((object)this._accountKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._accountKey.ToString()) : null, "accountKey" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.PowerShell.cs new file mode 100644 index 000000000000..cfa5d18b6a8f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Storage resource payload. + [System.ComponentModel.TypeConverter(typeof(StoragePropertiesTypeConverter))] + public partial class StorageProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStorageProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StorageProperties(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.AppPlatform.Models.Api20221101Preview.IStorageProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StorageProperties(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.AppPlatform.Models.Api20221101Preview.IStorageProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StorageProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("StorageType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)this).StorageType = (string) content.GetValueForProperty("StorageType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)this).StorageType, 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 StorageProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("StorageType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)this).StorageType = (string) content.GetValueForProperty("StorageType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)this).StorageType, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Storage resource payload. + [System.ComponentModel.TypeConverter(typeof(StoragePropertiesTypeConverter))] + public partial interface IStorageProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.TypeConverter.cs new file mode 100644 index 000000000000..cd4cef3eead1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StoragePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStorageProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StorageProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StorageProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StorageProperties.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/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.cs new file mode 100644 index 000000000000..d8d7a1a6e0cd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Storage resource payload. + public partial class StorageProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal + { + + /// Internal Acessors for StorageType + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal.StorageType { get => this._storageType; set { {_storageType = value;} } } + + /// Backing field for property. + private string _storageType= @"StorageAccount"; + + /// The type of the storage. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string StorageType { get => this._storageType; } + + /// Creates an new instance. + public StorageProperties() + { + + } + } + /// Storage resource payload. + public partial interface IStorageProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The type of the storage. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"The type of the storage.", + SerializedName = @"storageType", + PossibleTypes = new [] { typeof(string) })] + string StorageType { get; } + + } + /// Storage resource payload. + internal partial interface IStoragePropertiesInternal + + { + /// The type of the storage. + string StorageType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.json.cs new file mode 100644 index 000000000000..79964f5d4a12 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Storage resource payload. + public partial class StorageProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties 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.AppPlatform.Models.Api20221101Preview.IStorageProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("storageType") ) + { + case "StorageAccount": + { + return new StorageAccount(json); + } + } + return new StorageProperties(json); + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal StorageProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_storageType = If( json?.PropertyT("storageType"), out var __jsonStorageType) ? (string)__jsonStorageType : (string)StorageType;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._storageType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._storageType.ToString()) : null, "storageType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.PowerShell.cs new file mode 100644 index 000000000000..857c4c94eb9f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Storage resource payload. + [System.ComponentModel.TypeConverter(typeof(StorageResourceTypeConverter))] + public partial class StorageResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStorageResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StorageResource(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.AppPlatform.Models.Api20221101Preview.IStorageResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StorageResource(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.AppPlatform.Models.Api20221101Preview.IStorageResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StorageResource(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.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StoragePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("StorageType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal)this).StorageType = (string) content.GetValueForProperty("StorageType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal)this).StorageType, 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 StorageResource(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.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StoragePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("StorageType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal)this).StorageType = (string) content.GetValueForProperty("StorageType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal)this).StorageType, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Storage resource payload. + [System.ComponentModel.TypeConverter(typeof(StorageResourceTypeConverter))] + public partial interface IStorageResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.TypeConverter.cs new file mode 100644 index 000000000000..df589f3d0ea0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StorageResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStorageResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StorageResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StorageResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StorageResource.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/appplatform/generated/api/Models/Api20221101Preview/StorageResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.cs new file mode 100644 index 000000000000..6f04853c62c6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Storage resource payload. + public partial class StorageResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageProperties()); set { {_property = value;} } } + + /// Internal Acessors for StorageType + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceInternal.StorageType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)Property).StorageType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)Property).StorageType = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties _property; + + /// Properties of the storage resource payload. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageProperties()); set => this._property = value; } + + /// The type of the storage. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string StorageType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStoragePropertiesInternal)Property).StorageType; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public StorageResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Storage resource payload. + public partial interface IStorageResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The type of the storage. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The type of the storage.", + SerializedName = @"storageType", + PossibleTypes = new [] { typeof(string) })] + string StorageType { get; } + + } + /// Storage resource payload. + internal partial interface IStorageResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Properties of the storage resource payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageProperties Property { get; set; } + /// The type of the storage. + string StorageType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.json.cs new file mode 100644 index 000000000000..308b7c015cf4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Storage resource payload. + public partial class StorageResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new StorageResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal StorageResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageProperties.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..d337801430c6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Collection compose of storage resources list and a possible link for next page. + [System.ComponentModel.TypeConverter(typeof(StorageResourceCollectionTypeConverter))] + public partial class StorageResourceCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StorageResourceCollection(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.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StorageResourceCollection(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.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StorageResourceCollection(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.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal)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 StorageResourceCollection(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.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Collection compose of storage resources list and a possible link for next page. + [System.ComponentModel.TypeConverter(typeof(StorageResourceCollectionTypeConverter))] + public partial interface IStorageResourceCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..efa3c185e45d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StorageResourceCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StorageResourceCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StorageResourceCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StorageResourceCollection.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/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.cs new file mode 100644 index 000000000000..3b32fff9b058 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection compose of storage resources list and a possible link for next page. + public partial class StorageResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// The link to next page of storage list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource[] _value; + + /// The storage resources list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StorageResourceCollection() + { + + } + } + /// Collection compose of storage resources list and a possible link for next page. + public partial interface IStorageResourceCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The link to next page of storage list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The link to next page of storage list.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// The storage resources list. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The storage resources list.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource[] Value { get; set; } + + } + /// Collection compose of storage resources list and a possible link for next page. + internal partial interface IStorageResourceCollectionInternal + + { + /// The link to next page of storage list. + string NextLink { get; set; } + /// The storage resources list. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.json.cs new file mode 100644 index 000000000000..e6a21290b67c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/StorageResourceCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection compose of storage resources list and a possible link for next page. + public partial class StorageResourceCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new StorageResourceCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal StorageResourceCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IStorageResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.PowerShell.cs new file mode 100644 index 000000000000..432460f65f70 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Supported buildpack resource payload + [System.ComponentModel.TypeConverter(typeof(SupportedBuildpackResourceTypeConverter))] + public partial class SupportedBuildpackResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SupportedBuildpackResource(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SupportedBuildpackResource(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SupportedBuildpackResource(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("BuildpackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal)this).BuildpackId = (string) content.GetValueForProperty("BuildpackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal)this).BuildpackId, 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 SupportedBuildpackResource(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("BuildpackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal)this).BuildpackId = (string) content.GetValueForProperty("BuildpackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal)this).BuildpackId, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Supported buildpack resource payload + [System.ComponentModel.TypeConverter(typeof(SupportedBuildpackResourceTypeConverter))] + public partial interface ISupportedBuildpackResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.TypeConverter.cs new file mode 100644 index 000000000000..25294d6202a8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SupportedBuildpackResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SupportedBuildpackResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SupportedBuildpackResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SupportedBuildpackResource.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/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.cs new file mode 100644 index 000000000000..317818ec5f5e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.cs @@ -0,0 +1,131 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported buildpack resource payload + public partial class SupportedBuildpackResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// The id of supported buildpack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string BuildpackId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourcePropertiesInternal)Property).BuildpackId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourcePropertiesInternal)Property).BuildpackId = value ?? null; } + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourceProperties()); set { {_property = value;} } } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties _property; + + /// Supported buildpack resource properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourceProperties()); set => this._property = value; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public SupportedBuildpackResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Supported buildpack resource payload + public partial interface ISupportedBuildpackResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The id of supported buildpack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The id of supported buildpack", + SerializedName = @"buildpackId", + PossibleTypes = new [] { typeof(string) })] + string BuildpackId { get; set; } + + } + /// Supported buildpack resource payload + internal partial interface ISupportedBuildpackResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The id of supported buildpack + string BuildpackId { get; set; } + /// Supported buildpack resource properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.json.cs new file mode 100644 index 000000000000..826c8e7e8aa0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported buildpack resource payload + public partial class SupportedBuildpackResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SupportedBuildpackResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SupportedBuildpackResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourceProperties.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..b826beb88429 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Supported buildpack resource properties + [System.ComponentModel.TypeConverter(typeof(SupportedBuildpackResourcePropertiesTypeConverter))] + public partial class SupportedBuildpackResourceProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SupportedBuildpackResourceProperties(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SupportedBuildpackResourceProperties(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SupportedBuildpackResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("BuildpackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourcePropertiesInternal)this).BuildpackId = (string) content.GetValueForProperty("BuildpackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourcePropertiesInternal)this).BuildpackId, 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 SupportedBuildpackResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("BuildpackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourcePropertiesInternal)this).BuildpackId = (string) content.GetValueForProperty("BuildpackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourcePropertiesInternal)this).BuildpackId, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Supported buildpack resource properties + [System.ComponentModel.TypeConverter(typeof(SupportedBuildpackResourcePropertiesTypeConverter))] + public partial interface ISupportedBuildpackResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..5b59ab5bf677 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SupportedBuildpackResourcePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SupportedBuildpackResourceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SupportedBuildpackResourceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SupportedBuildpackResourceProperties.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/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.cs new file mode 100644 index 000000000000..d94d42e01d42 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported buildpack resource properties + public partial class SupportedBuildpackResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourcePropertiesInternal + { + + /// Backing field for property. + private string _buildpackId; + + /// The id of supported buildpack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuildpackId { get => this._buildpackId; set => this._buildpackId = value; } + + /// Creates an new instance. + public SupportedBuildpackResourceProperties() + { + + } + } + /// Supported buildpack resource properties + public partial interface ISupportedBuildpackResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The id of supported buildpack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The id of supported buildpack", + SerializedName = @"buildpackId", + PossibleTypes = new [] { typeof(string) })] + string BuildpackId { get; set; } + + } + /// Supported buildpack resource properties + internal partial interface ISupportedBuildpackResourcePropertiesInternal + + { + /// The id of supported buildpack + string BuildpackId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.json.cs new file mode 100644 index 000000000000..75545a48048d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpackResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported buildpack resource properties + public partial class SupportedBuildpackResourceProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SupportedBuildpackResourceProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SupportedBuildpackResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_buildpackId = If( json?.PropertyT("buildpackId"), out var __jsonBuildpackId) ? (string)__jsonBuildpackId : (string)BuildpackId;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._buildpackId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._buildpackId.ToString()) : null, "buildpackId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.PowerShell.cs new file mode 100644 index 000000000000..8c77ffd40e15 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of supported buildpacks resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(SupportedBuildpacksCollectionTypeConverter))] + public partial class SupportedBuildpacksCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SupportedBuildpacksCollection(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SupportedBuildpacksCollection(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SupportedBuildpacksCollection(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal)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 SupportedBuildpacksCollection(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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of supported buildpacks resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(SupportedBuildpacksCollectionTypeConverter))] + public partial interface ISupportedBuildpacksCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.TypeConverter.cs new file mode 100644 index 000000000000..fed9b15df3ec --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SupportedBuildpacksCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SupportedBuildpacksCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SupportedBuildpacksCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SupportedBuildpacksCollection.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/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.cs new file mode 100644 index 000000000000..dee1def6b4e3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of supported buildpacks resources and a possible link for next set + /// + public partial class SupportedBuildpacksCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource[] _value; + + /// Collection of supported buildpacks resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public SupportedBuildpacksCollection() + { + + } + } + /// Object that includes an array of supported buildpacks resources and a possible link for next set + public partial interface ISupportedBuildpacksCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of supported buildpacks resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of supported buildpacks resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource[] Value { get; set; } + + } + /// Object that includes an array of supported buildpacks resources and a possible link for next set + internal partial interface ISupportedBuildpacksCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of supported buildpacks resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.json.cs new file mode 100644 index 000000000000..2a3a1ea38a8a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedBuildpacksCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of supported buildpacks resources and a possible link for next set + /// + public partial class SupportedBuildpacksCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SupportedBuildpacksCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SupportedBuildpacksCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedBuildpackResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.PowerShell.cs new file mode 100644 index 000000000000..869aee838532 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Supported deployment runtime version descriptor. + [System.ComponentModel.TypeConverter(typeof(SupportedRuntimeVersionTypeConverter))] + public partial class SupportedRuntimeVersion + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SupportedRuntimeVersion(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.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SupportedRuntimeVersion(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.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SupportedRuntimeVersion(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.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Value, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue.CreateFrom); + } + if (content.Contains("Platform")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Platform = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform?) content.GetValueForProperty("Platform",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Platform, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform.CreateFrom); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Version, 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 SupportedRuntimeVersion(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.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Value, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue.CreateFrom); + } + if (content.Contains("Platform")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Platform = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform?) content.GetValueForProperty("Platform",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Platform, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform.CreateFrom); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal)this).Version, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Supported deployment runtime version descriptor. + [System.ComponentModel.TypeConverter(typeof(SupportedRuntimeVersionTypeConverter))] + public partial interface ISupportedRuntimeVersion + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.TypeConverter.cs new file mode 100644 index 000000000000..52884b8aeb50 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SupportedRuntimeVersionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SupportedRuntimeVersion.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SupportedRuntimeVersion.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SupportedRuntimeVersion.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/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.cs new file mode 100644 index 000000000000..d3ec01366c4d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported deployment runtime version descriptor. + public partial class SupportedRuntimeVersion : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersionInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform? _platform; + + /// The platform of this runtime version (possible values: "Java" or ".NET"). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform? Platform { get => this._platform; set => this._platform = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue? _value; + + /// The raw value which could be passed to deployment CRUD operations. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue? Value { get => this._value; set => this._value = value; } + + /// Backing field for property. + private string _version; + + /// The detailed version (major.minor) of the platform. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public SupportedRuntimeVersion() + { + + } + } + /// Supported deployment runtime version descriptor. + public partial interface ISupportedRuntimeVersion : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The platform of this runtime version (possible values: "Java" or ".NET"). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The platform of this runtime version (possible values: ""Java"" or "".NET"").", + SerializedName = @"platform", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform? Platform { get; set; } + /// The raw value which could be passed to deployment CRUD operations. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The raw value which could be passed to deployment CRUD operations.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue? Value { get; set; } + /// The detailed version (major.minor) of the platform. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The detailed version (major.minor) of the platform.", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Supported deployment runtime version descriptor. + internal partial interface ISupportedRuntimeVersionInternal + + { + /// The platform of this runtime version (possible values: "Java" or ".NET"). + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform? Platform { get; set; } + /// The raw value which could be passed to deployment CRUD operations. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue? Value { get; set; } + /// The detailed version (major.minor) of the platform. + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.json.cs new file mode 100644 index 000000000000..61b6e4664e31 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedRuntimeVersion.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported deployment runtime version descriptor. + public partial class SupportedRuntimeVersion + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SupportedRuntimeVersion(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SupportedRuntimeVersion(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_platform = If( json?.PropertyT("platform"), out var __jsonPlatform) ? (string)__jsonPlatform : (string)Platform;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._value.ToString()) : null, "value" ,container.Add ); + AddIf( null != (((object)this._platform)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._platform.ToString()) : null, "platform" ,container.Add ); + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.PowerShell.cs new file mode 100644 index 000000000000..ed65f57ad8a1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Supported stack resource payload + [System.ComponentModel.TypeConverter(typeof(SupportedStackResourceTypeConverter))] + public partial class SupportedStackResource + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedStackResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SupportedStackResource(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.AppPlatform.Models.Api20221101Preview.ISupportedStackResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SupportedStackResource(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.AppPlatform.Models.Api20221101Preview.ISupportedStackResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SupportedStackResource(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.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("StackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).StackId = (string) content.GetValueForProperty("StackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).StackId, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).Version, 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 SupportedStackResource(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.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("StackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).StackId = (string) content.GetValueForProperty("StackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).StackId, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal)this).Version, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Supported stack resource payload + [System.ComponentModel.TypeConverter(typeof(SupportedStackResourceTypeConverter))] + public partial interface ISupportedStackResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.TypeConverter.cs new file mode 100644 index 000000000000..14b1e6306637 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SupportedStackResourceTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedStackResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SupportedStackResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SupportedStackResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SupportedStackResource.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/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.cs new file mode 100644 index 000000000000..d283dfdf1908 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported stack resource payload + public partial class SupportedStackResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourceProperties()); set { {_property = value;} } } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties _property; + + /// Supported stack resource properties + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourceProperties()); set => this._property = value; } + + /// The id of supported stack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string StackId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)Property).StackId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)Property).StackId = value ?? null; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; } + + /// The version of supported stack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)Property).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)Property).Version = value ?? null; } + + /// Creates an new instance. + public SupportedStackResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Supported stack resource payload + public partial interface ISupportedStackResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The id of supported stack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The id of supported stack", + SerializedName = @"stackId", + PossibleTypes = new [] { typeof(string) })] + string StackId { get; set; } + /// The version of supported stack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of supported stack", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Supported stack resource payload + internal partial interface ISupportedStackResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// Supported stack resource properties + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties Property { get; set; } + /// The id of supported stack + string StackId { get; set; } + /// The version of supported stack + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.json.cs new file mode 100644 index 000000000000..b2e5722a3b7c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported stack resource payload + public partial class SupportedStackResource + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SupportedStackResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SupportedStackResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourceProperties.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..675367173a47 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Supported stack resource properties + [System.ComponentModel.TypeConverter(typeof(SupportedStackResourcePropertiesTypeConverter))] + public partial class SupportedStackResourceProperties + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SupportedStackResourceProperties(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.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SupportedStackResourceProperties(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.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SupportedStackResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("StackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)this).StackId = (string) content.GetValueForProperty("StackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)this).StackId, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)this).Version, 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 SupportedStackResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("StackId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)this).StackId = (string) content.GetValueForProperty("StackId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)this).StackId, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal)this).Version, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Supported stack resource properties + [System.ComponentModel.TypeConverter(typeof(SupportedStackResourcePropertiesTypeConverter))] + public partial interface ISupportedStackResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..ddc5ee85935c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SupportedStackResourcePropertiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SupportedStackResourceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SupportedStackResourceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SupportedStackResourceProperties.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/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.cs new file mode 100644 index 000000000000..cb5c4414909c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported stack resource properties + public partial class SupportedStackResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourcePropertiesInternal + { + + /// Backing field for property. + private string _stackId; + + /// The id of supported stack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string StackId { get => this._stackId; set => this._stackId = value; } + + /// Backing field for property. + private string _version; + + /// The version of supported stack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public SupportedStackResourceProperties() + { + + } + } + /// Supported stack resource properties + public partial interface ISupportedStackResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The id of supported stack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The id of supported stack", + SerializedName = @"stackId", + PossibleTypes = new [] { typeof(string) })] + string StackId { get; set; } + /// The version of supported stack + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The version of supported stack", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Supported stack resource properties + internal partial interface ISupportedStackResourcePropertiesInternal + + { + /// The id of supported stack + string StackId { get; set; } + /// The version of supported stack + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.json.cs new file mode 100644 index 000000000000..3d890efbd302 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStackResourceProperties.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported stack resource properties + public partial class SupportedStackResourceProperties + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SupportedStackResourceProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SupportedStackResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_stackId = If( json?.PropertyT("stackId"), out var __jsonStackId) ? (string)__jsonStackId : (string)StackId;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._stackId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._stackId.ToString()) : null, "stackId" ,container.Add ); + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.PowerShell.cs new file mode 100644 index 000000000000..2e3a1c362347 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.PowerShell.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of supported stacks resources and a possible link for next set + /// + [System.ComponentModel.TypeConverter(typeof(SupportedStacksCollectionTypeConverter))] + public partial class SupportedStacksCollection + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SupportedStacksCollection(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.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SupportedStacksCollection(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.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SupportedStacksCollection(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.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal)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 SupportedStacksCollection(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.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal)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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Object that includes an array of supported stacks resources and a possible link for next set + [System.ComponentModel.TypeConverter(typeof(SupportedStacksCollectionTypeConverter))] + public partial interface ISupportedStacksCollection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.TypeConverter.cs new file mode 100644 index 000000000000..0a6562aee769 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SupportedStacksCollectionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SupportedStacksCollection.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SupportedStacksCollection.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SupportedStacksCollection.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/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.cs new file mode 100644 index 000000000000..9d3cdc2aeb7c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of supported stacks resources and a possible link for next set + /// + public partial class SupportedStacksCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollectionInternal + { + + /// Backing field for property. + private string _nextLink; + + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource[] _value; + + /// Collection of supported stacks resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public SupportedStacksCollection() + { + + } + } + /// Object that includes an array of supported stacks resources and a possible link for next set + public partial interface ISupportedStacksCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URL client should use to fetch the next page (per server side paging). + It's null for now, added for future use.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// Collection of supported stacks resources + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of supported stacks resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource[] Value { get; set; } + + } + /// Object that includes an array of supported stacks resources and a possible link for next set + internal partial interface ISupportedStacksCollectionInternal + + { + /// + /// URL client should use to fetch the next page (per server side paging). + /// It's null for now, added for future use. + /// + string NextLink { get; set; } + /// Collection of supported stacks resources + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.json.cs new file mode 100644 index 000000000000..8221b489f38a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SupportedStacksCollection.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of supported stacks resources and a possible link for next set + /// + public partial class SupportedStacksCollection + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SupportedStacksCollection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SupportedStacksCollection(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ISupportedStackResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SupportedStackResource.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/SystemData.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.PowerShell.cs new file mode 100644 index 000000000000..69cc0b4ebb62 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ISystemData FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + } + if (content.Contains("CreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("LastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("LastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + } + if (content.Contains("CreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("LastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("LastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/SystemData.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.TypeConverter.cs new file mode 100644 index 000000000000..6cb35b6597b4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ISystemData ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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/appplatform/generated/api/Models/Api20221101Preview/SystemData.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.cs new file mode 100644 index 000000000000..03d7410fd95a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Metadata pertaining to creation and last modification of the resource. + public partial class SystemData : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemDataInternal + { + + /// Backing field for property. + private global::System.DateTime? _createdAt; + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string CreatedBy { get => this._createdBy; set => this._createdBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? _createdByType; + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? CreatedByType { get => this._createdByType; set => this._createdByType = value; } + + /// Backing field for property. + private global::System.DateTime? _lastModifiedAt; + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string LastModifiedBy { get => this._lastModifiedBy; set => this._lastModifiedBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? _lastModifiedByType; + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? 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.AppPlatform.Runtime.IJsonSerializable + { + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? CreatedByType { get; set; } + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The timestamp of resource 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.AppPlatform.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.AppPlatform.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.AppPlatform.Support.LastModifiedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? 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.AppPlatform.Support.CreatedByType? CreatedByType { get; set; } + /// The timestamp of resource 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.AppPlatform.Support.LastModifiedByType? LastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.json.cs new file mode 100644 index 000000000000..6abe9c40fb12 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/SystemData.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new SystemData(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal SystemData(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._createdBy.ToString()) : null, "createdBy" ,container.Add ); + AddIf( null != (((object)this._createdByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._createdByType.ToString()) : null, "createdByType" ,container.Add ); + AddIf( null != this._createdAt ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._lastModifiedBy.ToString()) : null, "lastModifiedBy" ,container.Add ); + AddIf( null != (((object)this._lastModifiedByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._lastModifiedByType.ToString()) : null, "lastModifiedByType" ,container.Add ); + AddIf( null != this._lastModifiedAt ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.PowerShell.cs new file mode 100644 index 000000000000..781a0645f76e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// TCPSocketAction describes an action based on opening a socket + [System.ComponentModel.TypeConverter(typeof(TcpSocketActionTypeConverter))] + public partial class TcpSocketAction + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITcpSocketAction DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TcpSocketAction(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.AppPlatform.Models.Api20221101Preview.ITcpSocketAction DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TcpSocketAction(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.AppPlatform.Models.Api20221101Preview.ITcpSocketAction FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TcpSocketAction(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TcpSocketAction(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// TCPSocketAction describes an action based on opening a socket + [System.ComponentModel.TypeConverter(typeof(TcpSocketActionTypeConverter))] + public partial interface ITcpSocketAction + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.TypeConverter.cs new file mode 100644 index 000000000000..ecf0994fc00b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TcpSocketActionTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITcpSocketAction ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITcpSocketAction).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TcpSocketAction.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TcpSocketAction.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TcpSocketAction.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/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.cs new file mode 100644 index 000000000000..f82326adc23d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// TCPSocketAction describes an action based on opening a socket + public partial class TcpSocketAction : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITcpSocketAction, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITcpSocketActionInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction __probeAction = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction(); + + /// The type of the action to take to perform the health check. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)__probeAction).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal)__probeAction).Type = value ; } + + /// Creates an new instance. + public TcpSocketAction() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__probeAction), __probeAction); + await eventListener.AssertObjectIsValid(nameof(__probeAction), __probeAction); + } + } + /// TCPSocketAction describes an action based on opening a socket + public partial interface ITcpSocketAction : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeAction + { + + } + /// TCPSocketAction describes an action based on opening a socket + internal partial interface ITcpSocketActionInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IProbeActionInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.json.cs new file mode 100644 index 000000000000..41c619cc5ebb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TcpSocketAction.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// TCPSocketAction describes an action based on opening a socket + public partial class TcpSocketAction + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITcpSocketAction. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITcpSocketAction. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITcpSocketAction FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new TcpSocketAction(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal TcpSocketAction(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __probeAction = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ProbeAction(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __probeAction?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.PowerShell.cs new file mode 100644 index 000000000000..8c012dbfd541 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Temporary disk payload + [System.ComponentModel.TypeConverter(typeof(TemporaryDiskTypeConverter))] + public partial class TemporaryDisk + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITemporaryDisk DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TemporaryDisk(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.AppPlatform.Models.Api20221101Preview.ITemporaryDisk DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TemporaryDisk(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.AppPlatform.Models.Api20221101Preview.ITemporaryDisk FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TemporaryDisk(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)this).SizeInGb = (int?) content.GetValueForProperty("SizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)this).SizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)this).MountPath, 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 TemporaryDisk(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SizeInGb")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)this).SizeInGb = (int?) content.GetValueForProperty("SizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)this).SizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("MountPath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal)this).MountPath, 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Temporary disk payload + [System.ComponentModel.TypeConverter(typeof(TemporaryDiskTypeConverter))] + public partial interface ITemporaryDisk + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.TypeConverter.cs new file mode 100644 index 000000000000..4c2a6a6b8a9e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TemporaryDiskTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITemporaryDisk ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TemporaryDisk.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TemporaryDisk.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TemporaryDisk.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/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.cs new file mode 100644 index 000000000000..738dc3f4f880 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Temporary disk payload + public partial class TemporaryDisk : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDiskInternal + { + + /// Backing field for property. + private string _mountPath; + + /// Mount path of the temporary disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string MountPath { get => this._mountPath; set => this._mountPath = value; } + + /// Backing field for property. + private int? _sizeInGb; + + /// Size of the temporary disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? SizeInGb { get => this._sizeInGb; set => this._sizeInGb = value; } + + /// Creates an new instance. + public TemporaryDisk() + { + + } + } + /// Temporary disk payload + public partial interface ITemporaryDisk : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Mount path of the temporary disk + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the temporary disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + string MountPath { get; set; } + /// Size of the temporary disk in GB + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the temporary disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + int? SizeInGb { get; set; } + + } + /// Temporary disk payload + internal partial interface ITemporaryDiskInternal + + { + /// Mount path of the temporary disk + string MountPath { get; set; } + /// Size of the temporary disk in GB + int? SizeInGb { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.json.cs new file mode 100644 index 000000000000..464f356b9f13 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TemporaryDisk.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Temporary disk payload + public partial class TemporaryDisk + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITemporaryDisk FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new TemporaryDisk(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal TemporaryDisk(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_sizeInGb = If( json?.PropertyT("sizeInGB"), out var __jsonSizeInGb) ? (int?)__jsonSizeInGb : SizeInGb;} + {_mountPath = If( json?.PropertyT("mountPath"), out var __jsonMountPath) ? (string)__jsonMountPath : (string)MountPath;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._sizeInGb ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._sizeInGb) : null, "sizeInGB" ,container.Add ); + AddIf( null != (((object)this._mountPath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._mountPath.ToString()) : null, "mountPath" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.PowerShell.cs new file mode 100644 index 000000000000..cae82734b691 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Test keys payload + [System.ComponentModel.TypeConverter(typeof(TestKeysTypeConverter))] + public partial class TestKeys + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TestKeys(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.AppPlatform.Models.Api20221101Preview.ITestKeys DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TestKeys(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.AppPlatform.Models.Api20221101Preview.ITestKeys FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TestKeys(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrimaryKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).PrimaryKey = (string) content.GetValueForProperty("PrimaryKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).PrimaryKey, global::System.Convert.ToString); + } + if (content.Contains("SecondaryKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).SecondaryKey = (string) content.GetValueForProperty("SecondaryKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).SecondaryKey, global::System.Convert.ToString); + } + if (content.Contains("PrimaryTestEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).PrimaryTestEndpoint = (string) content.GetValueForProperty("PrimaryTestEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).PrimaryTestEndpoint, global::System.Convert.ToString); + } + if (content.Contains("SecondaryTestEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).SecondaryTestEndpoint = (string) content.GetValueForProperty("SecondaryTestEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).SecondaryTestEndpoint, global::System.Convert.ToString); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TestKeys(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrimaryKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).PrimaryKey = (string) content.GetValueForProperty("PrimaryKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).PrimaryKey, global::System.Convert.ToString); + } + if (content.Contains("SecondaryKey")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).SecondaryKey = (string) content.GetValueForProperty("SecondaryKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).SecondaryKey, global::System.Convert.ToString); + } + if (content.Contains("PrimaryTestEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).PrimaryTestEndpoint = (string) content.GetValueForProperty("PrimaryTestEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).PrimaryTestEndpoint, global::System.Convert.ToString); + } + if (content.Contains("SecondaryTestEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).SecondaryTestEndpoint = (string) content.GetValueForProperty("SecondaryTestEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).SecondaryTestEndpoint, global::System.Convert.ToString); + } + if (content.Contains("Enabled")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal)this).Enabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + 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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Test keys payload + [System.ComponentModel.TypeConverter(typeof(TestKeysTypeConverter))] + public partial interface ITestKeys + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.TypeConverter.cs new file mode 100644 index 000000000000..c9980bab46fb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TestKeysTypeConverter : 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 type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TestKeys.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TestKeys.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TestKeys.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/appplatform/generated/api/Models/Api20221101Preview/TestKeys.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.cs new file mode 100644 index 000000000000..4b62fe36045b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Test keys payload + public partial class TestKeys : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeysInternal + { + + /// Backing field for property. + private bool? _enabled; + + /// Indicates whether the test endpoint feature enabled or not + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public bool? Enabled { get => this._enabled; set => this._enabled = value; } + + /// Backing field for property. + private string _primaryKey; + + /// Primary key + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PrimaryKey { get => this._primaryKey; set => this._primaryKey = value; } + + /// Backing field for property. + private string _primaryTestEndpoint; + + /// Primary test endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PrimaryTestEndpoint { get => this._primaryTestEndpoint; set => this._primaryTestEndpoint = value; } + + /// Backing field for property. + private string _secondaryKey; + + /// Secondary key + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string SecondaryKey { get => this._secondaryKey; set => this._secondaryKey = value; } + + /// Backing field for property. + private string _secondaryTestEndpoint; + + /// Secondary test endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string SecondaryTestEndpoint { get => this._secondaryTestEndpoint; set => this._secondaryTestEndpoint = value; } + + /// Creates an new instance. + public TestKeys() + { + + } + } + /// Test keys payload + public partial interface ITestKeys : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Indicates whether the test endpoint feature enabled or not + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the test endpoint feature enabled or not", + SerializedName = @"enabled", + PossibleTypes = new [] { typeof(bool) })] + bool? Enabled { get; set; } + /// Primary key + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Primary key", + SerializedName = @"primaryKey", + PossibleTypes = new [] { typeof(string) })] + string PrimaryKey { get; set; } + /// Primary test endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Primary test endpoint", + SerializedName = @"primaryTestEndpoint", + PossibleTypes = new [] { typeof(string) })] + string PrimaryTestEndpoint { get; set; } + /// Secondary key + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Secondary key", + SerializedName = @"secondaryKey", + PossibleTypes = new [] { typeof(string) })] + string SecondaryKey { get; set; } + /// Secondary test endpoint + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Secondary test endpoint", + SerializedName = @"secondaryTestEndpoint", + PossibleTypes = new [] { typeof(string) })] + string SecondaryTestEndpoint { get; set; } + + } + /// Test keys payload + internal partial interface ITestKeysInternal + + { + /// Indicates whether the test endpoint feature enabled or not + bool? Enabled { get; set; } + /// Primary key + string PrimaryKey { get; set; } + /// Primary test endpoint + string PrimaryTestEndpoint { get; set; } + /// Secondary key + string SecondaryKey { get; set; } + /// Secondary test endpoint + string SecondaryTestEndpoint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.json.cs new file mode 100644 index 000000000000..0097d2d02f2f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TestKeys.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Test keys payload + public partial class TestKeys + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new TestKeys(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal TestKeys(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_primaryKey = If( json?.PropertyT("primaryKey"), out var __jsonPrimaryKey) ? (string)__jsonPrimaryKey : (string)PrimaryKey;} + {_secondaryKey = If( json?.PropertyT("secondaryKey"), out var __jsonSecondaryKey) ? (string)__jsonSecondaryKey : (string)SecondaryKey;} + {_primaryTestEndpoint = If( json?.PropertyT("primaryTestEndpoint"), out var __jsonPrimaryTestEndpoint) ? (string)__jsonPrimaryTestEndpoint : (string)PrimaryTestEndpoint;} + {_secondaryTestEndpoint = If( json?.PropertyT("secondaryTestEndpoint"), out var __jsonSecondaryTestEndpoint) ? (string)__jsonSecondaryTestEndpoint : (string)SecondaryTestEndpoint;} + {_enabled = If( json?.PropertyT("enabled"), out var __jsonEnabled) ? (bool?)__jsonEnabled : Enabled;} + 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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._primaryKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._primaryKey.ToString()) : null, "primaryKey" ,container.Add ); + AddIf( null != (((object)this._secondaryKey)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._secondaryKey.ToString()) : null, "secondaryKey" ,container.Add ); + AddIf( null != (((object)this._primaryTestEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._primaryTestEndpoint.ToString()) : null, "primaryTestEndpoint" ,container.Add ); + AddIf( null != (((object)this._secondaryTestEndpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._secondaryTestEndpoint.ToString()) : null, "secondaryTestEndpoint" ,container.Add ); + AddIf( null != this._enabled ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonBoolean((bool)this._enabled) : null, "enabled" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.PowerShell.cs new file mode 100644 index 000000000000..4e8599702425 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.PowerShell.cs @@ -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. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The resource model definition for a ARM tracked top level resource. + [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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ITrackedResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)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("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// The resource model definition for a ARM tracked top level resource. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTypeConverter))] + public partial interface ITrackedResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.TypeConverter.cs new file mode 100644 index 000000000000..f21d2aa18ebc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITrackedResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.cs new file mode 100644 index 000000000000..128948f785a1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The resource model definition for a ARM tracked top level resource. + public partial class TrackedResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(); + + /// Fully qualified resource Id for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private string _location; + + /// The GEO location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Type = value; } + + /// The name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).Name; } + + /// Metadata pertaining to creation and last modification of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISystemData SystemData { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemData; } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataCreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType)""); } + + /// The timestamp of resource modification (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal)__resource).SystemDataLastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags _tag; + + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResourceTags()); set => this._tag = value; } + + /// The type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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 that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// The resource model definition for a ARM tracked top level resource. + public partial interface ITrackedResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResource + { + /// The GEO location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The GEO location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the service which is a list of key value pairs that describe the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags Tag { get; set; } + + } + /// The resource model definition for a ARM tracked top level resource. + internal partial interface ITrackedResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceInternal + { + /// The GEO location of the resource. + string Location { get; set; } + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResource.json.cs new file mode 100644 index 000000000000..3a3424f1de51 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The resource model definition for a ARM tracked top level resource. + 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal TrackedResource(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Resource(json); + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.TrackedResourceTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.PowerShell.cs new file mode 100644 index 000000000000..b53b427624af --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + [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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.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.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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); + } + } + /// Tags of the service which is a list of key value pairs that describe the resource. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTagsTypeConverter))] + public partial interface ITrackedResourceTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.TypeConverter.cs new file mode 100644 index 000000000000..8ffe9969e422 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.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/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.cs new file mode 100644 index 000000000000..845ae77973c6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + public partial class TrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTagsInternal + { + + /// Creates an new instance. + public TrackedResourceTags() + { + + } + } + /// Tags of the service which is a list of key value pairs that describe the resource. + public partial interface ITrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// Tags of the service which is a list of key value pairs that describe the resource. + internal partial interface ITrackedResourceTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.dictionary.cs new file mode 100644 index 000000000000..5c45d7191dd2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class TrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.TrackedResourceTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.json.cs new file mode 100644 index 000000000000..8186128777a5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TrackedResourceTags.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal TrackedResourceTags(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.PowerShell.cs new file mode 100644 index 000000000000..be568eb843e9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The build result triggered by a build + [System.ComponentModel.TypeConverter(typeof(TriggeredBuildResultTypeConverter))] + public partial class TriggeredBuildResult + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TriggeredBuildResult(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.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TriggeredBuildResult(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.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TriggeredBuildResult(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.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResultInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResultInternal)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 TriggeredBuildResult(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.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResultInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResultInternal)this).Id, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// The build result triggered by a build + [System.ComponentModel.TypeConverter(typeof(TriggeredBuildResultTypeConverter))] + public partial interface ITriggeredBuildResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.TypeConverter.cs new file mode 100644 index 000000000000..239be5f1aacd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TriggeredBuildResultTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TriggeredBuildResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TriggeredBuildResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TriggeredBuildResult.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/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.cs new file mode 100644 index 000000000000..f0fd3972edfd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The build result triggered by a build + public partial class TriggeredBuildResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResultInternal + { + + /// Backing field for property. + private string _id; + + /// The unique build id of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Creates an new instance. + public TriggeredBuildResult() + { + + } + } + /// The build result triggered by a build + public partial interface ITriggeredBuildResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The unique build id of this build result + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The unique build id of this build result", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + + } + /// The build result triggered by a build + internal partial interface ITriggeredBuildResultInternal + + { + /// The unique build id of this build result + string Id { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.json.cs new file mode 100644 index 000000000000..37b92afde414 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/TriggeredBuildResult.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The build result triggered by a build + public partial class TriggeredBuildResult + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITriggeredBuildResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new TriggeredBuildResult(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal TriggeredBuildResult(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.PowerShell.cs new file mode 100644 index 000000000000..4b81530fe8ea --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Source with uploaded location + [System.ComponentModel.TypeConverter(typeof(UploadedUserSourceInfoTypeConverter))] + public partial class UploadedUserSourceInfo + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UploadedUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UploadedUserSourceInfo(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.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UploadedUserSourceInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, 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 UploadedUserSourceInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RelativePath")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal)this).RelativePath, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Source with uploaded location + [System.ComponentModel.TypeConverter(typeof(UploadedUserSourceInfoTypeConverter))] + public partial interface IUploadedUserSourceInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.TypeConverter.cs new file mode 100644 index 000000000000..d08c25c24aae --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UploadedUserSourceInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UploadedUserSourceInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UploadedUserSourceInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UploadedUserSourceInfo.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/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.cs new file mode 100644 index 000000000000..19967fef88bc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Source with uploaded location + public partial class UploadedUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo __userSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo(); + + /// Backing field for property. + private string _relativePath; + + /// Relative path of the storage which stores the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string RelativePath { get => this._relativePath; set => this._relativePath = value; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Type = value ; } + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inherited)] + public string Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)__userSourceInfo).Version = value ?? null; } + + /// Creates an new instance. + public UploadedUserSourceInfo() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__userSourceInfo), __userSourceInfo); + await eventListener.AssertObjectIsValid(nameof(__userSourceInfo), __userSourceInfo); + } + } + /// Source with uploaded location + public partial interface IUploadedUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo + { + /// Relative path of the storage which stores the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Relative path of the storage which stores the source", + SerializedName = @"relativePath", + PossibleTypes = new [] { typeof(string) })] + string RelativePath { get; set; } + + } + /// Source with uploaded location + internal partial interface IUploadedUserSourceInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal + { + /// Relative path of the storage which stores the source + string RelativePath { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.json.cs new file mode 100644 index 000000000000..dddb77f5f46f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UploadedUserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Source with uploaded location + public partial class UploadedUserSourceInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo 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.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUploadedUserSourceInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("type") ) + { + case "Jar": + { + return new JarUploadedUserSourceInfo(json); + } + case "Source": + { + return new SourceUploadedUserSourceInfo(json); + } + case "NetCoreZip": + { + return new NetCoreZipUploadedUserSourceInfo(json); + } + } + return new UploadedUserSourceInfo(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __userSourceInfo?.ToJson(container, serializationMode); + AddIf( null != (((object)this._relativePath)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._relativePath.ToString()) : null, "relativePath" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal UploadedUserSourceInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __userSourceInfo = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserSourceInfo(json); + {_relativePath = If( json?.PropertyT("relativePath"), out var __jsonRelativePath) ? (string)__jsonRelativePath : (string)RelativePath;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.PowerShell.cs new file mode 100644 index 000000000000..28ff6ed9bf7a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// User-assigned managed identities in key-value map. The key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + [System.ComponentModel.TypeConverter(typeof(UserAssignedManagedIdentitiesTypeConverter))] + public partial class UserAssignedManagedIdentities + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserAssignedManagedIdentities(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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserAssignedManagedIdentities(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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserAssignedManagedIdentities(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 UserAssignedManagedIdentities(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); + } + } + /// User-assigned managed identities in key-value map. The key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + [System.ComponentModel.TypeConverter(typeof(UserAssignedManagedIdentitiesTypeConverter))] + public partial interface IUserAssignedManagedIdentities + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.TypeConverter.cs new file mode 100644 index 000000000000..ac32562e9bdd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserAssignedManagedIdentitiesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserAssignedManagedIdentities.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserAssignedManagedIdentities.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserAssignedManagedIdentities.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/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.cs new file mode 100644 index 000000000000..dc836b9d7c73 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// User-assigned managed identities in key-value map. The key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + public partial class UserAssignedManagedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentitiesInternal + { + + /// Creates an new instance. + public UserAssignedManagedIdentities() + { + + } + } + /// User-assigned managed identities in key-value map. The key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + public partial interface IUserAssignedManagedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + + } + /// User-assigned managed identities in key-value map. The key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + internal partial interface IUserAssignedManagedIdentitiesInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.dictionary.cs new file mode 100644 index 000000000000..4da27b9b1273 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class UserAssignedManagedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity 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.AppPlatform.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.AppPlatform.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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentities source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.json.cs new file mode 100644 index 000000000000..0d57b17215e9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentities.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// User-assigned managed identities in key-value map. The key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// + public partial class UserAssignedManagedIdentities + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new UserAssignedManagedIdentities(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + /// + internal UserAssignedManagedIdentities(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IAssociativeArray)this).AdditionalProperties, (j) => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.UserAssignedManagedIdentity.FromJson(j) ,exclusions ); + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.PowerShell.cs new file mode 100644 index 000000000000..f543f3b78d70 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// The details of the user-assigned managed identity assigned to an App. + [System.ComponentModel.TypeConverter(typeof(UserAssignedManagedIdentityTypeConverter))] + public partial class UserAssignedManagedIdentity + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserAssignedManagedIdentity(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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserAssignedManagedIdentity(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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserAssignedManagedIdentity(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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal)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 UserAssignedManagedIdentity(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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// The details of the user-assigned managed identity assigned to an App. + [System.ComponentModel.TypeConverter(typeof(UserAssignedManagedIdentityTypeConverter))] + public partial interface IUserAssignedManagedIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.TypeConverter.cs new file mode 100644 index 000000000000..43f684c2e1cc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserAssignedManagedIdentityTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserAssignedManagedIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserAssignedManagedIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserAssignedManagedIdentity.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/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.cs new file mode 100644 index 000000000000..e8363bb2649e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.cs @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The details of the user-assigned managed identity assigned to an App. + public partial class UserAssignedManagedIdentity : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal + { + + /// Backing field for property. + private string _clientId; + + /// Client Id of user-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; } + + /// Internal Acessors for ClientId + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal.ClientId { get => this._clientId; set { {_clientId = value;} } } + + /// Internal Acessors for PrincipalId + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentityInternal.PrincipalId { get => this._principalId; set { {_principalId = value;} } } + + /// Backing field for property. + private string _principalId; + + /// Principal Id of user-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; } + + /// Creates an new instance. + public UserAssignedManagedIdentity() + { + + } + } + /// The details of the user-assigned managed identity assigned to an App. + public partial interface IUserAssignedManagedIdentity : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Client Id of user-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Client Id of user-assigned managed identity.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; } + /// Principal Id of user-assigned managed identity. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Principal Id of user-assigned managed identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; } + + } + /// The details of the user-assigned managed identity assigned to an App. + internal partial interface IUserAssignedManagedIdentityInternal + + { + /// Client Id of user-assigned managed identity. + string ClientId { get; set; } + /// Principal Id of user-assigned managed identity. + string PrincipalId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.json.cs new file mode 100644 index 000000000000..2d345f0aa9b1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserAssignedManagedIdentity.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The details of the user-assigned managed identity assigned to an App. + public partial class UserAssignedManagedIdentity + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new UserAssignedManagedIdentity(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal UserAssignedManagedIdentity(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.PowerShell.cs new file mode 100644 index 000000000000..0d0a4bc29b3a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Source information for a deployment + [System.ComponentModel.TypeConverter(typeof(UserSourceInfoTypeConverter))] + public partial class UserSourceInfo + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IUserSourceInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserSourceInfo(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.AppPlatform.Models.Api20221101Preview.IUserSourceInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserSourceInfo(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.AppPlatform.Models.Api20221101Preview.IUserSourceInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserSourceInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, 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 UserSourceInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Version")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Source information for a deployment + [System.ComponentModel.TypeConverter(typeof(UserSourceInfoTypeConverter))] + public partial interface IUserSourceInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.TypeConverter.cs new file mode 100644 index 000000000000..3897032ab32d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserSourceInfoTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IUserSourceInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserSourceInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserSourceInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserSourceInfo.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/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.cs new file mode 100644 index 000000000000..ee731fe72440 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Source information for a deployment + public partial class UserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfoInternal + { + + /// Backing field for property. + private string _type; + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Type { get => this._type; set => this._type = value; } + + /// Backing field for property. + private string _version; + + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Version { get => this._version; set => this._version = value; } + + /// Creates an new instance. + public UserSourceInfo() + { + + } + } + /// Source information for a deployment + public partial interface IUserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the source uploaded", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; set; } + /// Version of the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the source", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + string Version { get; set; } + + } + /// Source information for a deployment + internal partial interface IUserSourceInfoInternal + + { + /// Type of the source uploaded + string Type { get; set; } + /// Version of the source + string Version { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.json.cs new file mode 100644 index 000000000000..08871b84f002 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/UserSourceInfo.json.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Source information for a deployment + public partial class UserSourceInfo + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo 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.AppPlatform.Models.Api20221101Preview.IUserSourceInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserSourceInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("type") ) + { + case "UploadedUserSourceInfo": + { + return new UploadedUserSourceInfo(json); + } + case "Jar": + { + return new JarUploadedUserSourceInfo(json); + } + case "Source": + { + return new SourceUploadedUserSourceInfo(json); + } + case "NetCoreZip": + { + return new NetCoreZipUploadedUserSourceInfo(json); + } + case "BuildResult": + { + return new BuildResultUserSourceInfo(json); + } + case "Container": + { + return new CustomContainerUserSourceInfo(json); + } + } + return new UserSourceInfo(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != (((object)this._version)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._version.ToString()) : null, "version" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal UserSourceInfo(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.PowerShell.cs new file mode 100644 index 000000000000..18107b22a539 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Validate messages of the configuration service git repositories + [System.ComponentModel.TypeConverter(typeof(ValidationMessagesTypeConverter))] + public partial class ValidationMessages + { + + /// + /// 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.AppPlatform.Models.Api20221101Preview.IValidationMessages DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ValidationMessages(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.AppPlatform.Models.Api20221101Preview.IValidationMessages DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ValidationMessages(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.AppPlatform.Models.Api20221101Preview.IValidationMessages FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ValidationMessages(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.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal)this).Message = (string[]) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal)this).Message, __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 ValidationMessages(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.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Message")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal)this).Message = (string[]) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal)this).Message, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + } + /// Validate messages of the configuration service git repositories + [System.ComponentModel.TypeConverter(typeof(ValidationMessagesTypeConverter))] + public partial interface IValidationMessages + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.TypeConverter.cs new file mode 100644 index 000000000000..6e0888253ed3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.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.AppPlatform.Models.Api20221101Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ValidationMessagesTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.Api20221101Preview.IValidationMessages ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ValidationMessages.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ValidationMessages.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ValidationMessages.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/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.cs new file mode 100644 index 000000000000..fe45f8dba9cf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validate messages of the configuration service git repositories + public partial class ValidationMessages : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessagesInternal + { + + /// Backing field for property. + private string[] _message; + + /// Detailed validation messages. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string[] Message { get => this._message; set => this._message = value; } + + /// Backing field for property. + private string _name; + + /// The name of the configuration service git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public ValidationMessages() + { + + } + } + /// Validate messages of the configuration service git repositories + public partial interface IValidationMessages : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Detailed validation messages. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Detailed validation messages.", + SerializedName = @"messages", + PossibleTypes = new [] { typeof(string) })] + string[] Message { get; set; } + /// The name of the configuration service git repository. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the configuration service git repository.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + } + /// Validate messages of the configuration service git repositories + internal partial interface IValidationMessagesInternal + + { + /// Detailed validation messages. + string[] Message { get; set; } + /// The name of the configuration service git repository. + string Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.json.cs b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.json.cs new file mode 100644 index 000000000000..d51f5c085229 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20221101Preview/ValidationMessages.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.AppPlatform.Models.Api20221101Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validate messages of the configuration service git repositories + public partial class ValidationMessages + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IValidationMessages FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new ValidationMessages(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + if (null != this._message) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.XNodeArray(); + foreach( var __x in this._message ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("messages",__w); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal ValidationMessages(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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;} + {_message = If( json?.PropertyT("messages"), out var __jsonMessages) ? If( __jsonMessages as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Message;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.PowerShell.cs new file mode 100644 index 000000000000..c1085d83d7ec --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.PowerShell.cs @@ -0,0 +1,366 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(AppPlatformIdentityTypeConverter))] + public partial class AppPlatformIdentity + { + + /// + /// 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 AppPlatformIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("ServiceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ServiceName = (string) content.GetValueForProperty("ServiceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ServiceName, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ConfigurationServiceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ConfigurationServiceName = (string) content.GetValueForProperty("ConfigurationServiceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ConfigurationServiceName, global::System.Convert.ToString); + } + if (content.Contains("ServiceRegistryName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ServiceRegistryName = (string) content.GetValueForProperty("ServiceRegistryName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ServiceRegistryName, global::System.Convert.ToString); + } + if (content.Contains("ApplicationLiveViewName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApplicationLiveViewName = (string) content.GetValueForProperty("ApplicationLiveViewName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApplicationLiveViewName, global::System.Convert.ToString); + } + if (content.Contains("DevToolPortalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DevToolPortalName = (string) content.GetValueForProperty("DevToolPortalName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DevToolPortalName, global::System.Convert.ToString); + } + if (content.Contains("BuildServiceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildServiceName = (string) content.GetValueForProperty("BuildServiceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildServiceName, global::System.Convert.ToString); + } + if (content.Contains("BuildName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildName = (string) content.GetValueForProperty("BuildName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildName, global::System.Convert.ToString); + } + if (content.Contains("BuildResultName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildResultName = (string) content.GetValueForProperty("BuildResultName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildResultName, global::System.Convert.ToString); + } + if (content.Contains("BuildpackName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildpackName = (string) content.GetValueForProperty("BuildpackName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildpackName, global::System.Convert.ToString); + } + if (content.Contains("StackName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).StackName = (string) content.GetValueForProperty("StackName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).StackName, global::System.Convert.ToString); + } + if (content.Contains("BuilderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuilderName = (string) content.GetValueForProperty("BuilderName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuilderName, global::System.Convert.ToString); + } + if (content.Contains("BuildpackBindingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildpackBindingName = (string) content.GetValueForProperty("BuildpackBindingName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildpackBindingName, global::System.Convert.ToString); + } + if (content.Contains("AgentPoolName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).AgentPoolName = (string) content.GetValueForProperty("AgentPoolName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).AgentPoolName, global::System.Convert.ToString); + } + if (content.Contains("AppName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).AppName, global::System.Convert.ToString); + } + if (content.Contains("BindingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BindingName = (string) content.GetValueForProperty("BindingName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BindingName, global::System.Convert.ToString); + } + if (content.Contains("StorageName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).StorageName = (string) content.GetValueForProperty("StorageName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).StorageName, global::System.Convert.ToString); + } + if (content.Contains("CertificateName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).CertificateName = (string) content.GetValueForProperty("CertificateName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).CertificateName, global::System.Convert.ToString); + } + if (content.Contains("DomainName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DomainName = (string) content.GetValueForProperty("DomainName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DomainName, global::System.Convert.ToString); + } + if (content.Contains("DeploymentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DeploymentName = (string) content.GetValueForProperty("DeploymentName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DeploymentName, global::System.Convert.ToString); + } + if (content.Contains("GatewayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).GatewayName = (string) content.GetValueForProperty("GatewayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).GatewayName, global::System.Convert.ToString); + } + if (content.Contains("RouteConfigName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).RouteConfigName = (string) content.GetValueForProperty("RouteConfigName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).RouteConfigName, global::System.Convert.ToString); + } + if (content.Contains("ApiPortalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApiPortalName = (string) content.GetValueForProperty("ApiPortalName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApiPortalName, global::System.Convert.ToString); + } + if (content.Contains("ApplicationAcceleratorName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApplicationAcceleratorName = (string) content.GetValueForProperty("ApplicationAcceleratorName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApplicationAcceleratorName, global::System.Convert.ToString); + } + if (content.Contains("CustomizedAcceleratorName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).CustomizedAcceleratorName = (string) content.GetValueForProperty("CustomizedAcceleratorName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).CustomizedAcceleratorName, global::System.Convert.ToString); + } + if (content.Contains("PredefinedAcceleratorName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).PredefinedAcceleratorName = (string) content.GetValueForProperty("PredefinedAcceleratorName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).PredefinedAcceleratorName, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)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 AppPlatformIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("ServiceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ServiceName = (string) content.GetValueForProperty("ServiceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ServiceName, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ConfigurationServiceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ConfigurationServiceName = (string) content.GetValueForProperty("ConfigurationServiceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ConfigurationServiceName, global::System.Convert.ToString); + } + if (content.Contains("ServiceRegistryName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ServiceRegistryName = (string) content.GetValueForProperty("ServiceRegistryName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ServiceRegistryName, global::System.Convert.ToString); + } + if (content.Contains("ApplicationLiveViewName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApplicationLiveViewName = (string) content.GetValueForProperty("ApplicationLiveViewName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApplicationLiveViewName, global::System.Convert.ToString); + } + if (content.Contains("DevToolPortalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DevToolPortalName = (string) content.GetValueForProperty("DevToolPortalName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DevToolPortalName, global::System.Convert.ToString); + } + if (content.Contains("BuildServiceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildServiceName = (string) content.GetValueForProperty("BuildServiceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildServiceName, global::System.Convert.ToString); + } + if (content.Contains("BuildName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildName = (string) content.GetValueForProperty("BuildName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildName, global::System.Convert.ToString); + } + if (content.Contains("BuildResultName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildResultName = (string) content.GetValueForProperty("BuildResultName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildResultName, global::System.Convert.ToString); + } + if (content.Contains("BuildpackName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildpackName = (string) content.GetValueForProperty("BuildpackName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildpackName, global::System.Convert.ToString); + } + if (content.Contains("StackName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).StackName = (string) content.GetValueForProperty("StackName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).StackName, global::System.Convert.ToString); + } + if (content.Contains("BuilderName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuilderName = (string) content.GetValueForProperty("BuilderName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuilderName, global::System.Convert.ToString); + } + if (content.Contains("BuildpackBindingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildpackBindingName = (string) content.GetValueForProperty("BuildpackBindingName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BuildpackBindingName, global::System.Convert.ToString); + } + if (content.Contains("AgentPoolName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).AgentPoolName = (string) content.GetValueForProperty("AgentPoolName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).AgentPoolName, global::System.Convert.ToString); + } + if (content.Contains("AppName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).AppName, global::System.Convert.ToString); + } + if (content.Contains("BindingName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BindingName = (string) content.GetValueForProperty("BindingName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).BindingName, global::System.Convert.ToString); + } + if (content.Contains("StorageName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).StorageName = (string) content.GetValueForProperty("StorageName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).StorageName, global::System.Convert.ToString); + } + if (content.Contains("CertificateName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).CertificateName = (string) content.GetValueForProperty("CertificateName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).CertificateName, global::System.Convert.ToString); + } + if (content.Contains("DomainName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DomainName = (string) content.GetValueForProperty("DomainName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DomainName, global::System.Convert.ToString); + } + if (content.Contains("DeploymentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DeploymentName = (string) content.GetValueForProperty("DeploymentName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).DeploymentName, global::System.Convert.ToString); + } + if (content.Contains("GatewayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).GatewayName = (string) content.GetValueForProperty("GatewayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).GatewayName, global::System.Convert.ToString); + } + if (content.Contains("RouteConfigName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).RouteConfigName = (string) content.GetValueForProperty("RouteConfigName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).RouteConfigName, global::System.Convert.ToString); + } + if (content.Contains("ApiPortalName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApiPortalName = (string) content.GetValueForProperty("ApiPortalName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApiPortalName, global::System.Convert.ToString); + } + if (content.Contains("ApplicationAcceleratorName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApplicationAcceleratorName = (string) content.GetValueForProperty("ApplicationAcceleratorName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).ApplicationAcceleratorName, global::System.Convert.ToString); + } + if (content.Contains("CustomizedAcceleratorName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).CustomizedAcceleratorName = (string) content.GetValueForProperty("CustomizedAcceleratorName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).CustomizedAcceleratorName, global::System.Convert.ToString); + } + if (content.Contains("PredefinedAcceleratorName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).PredefinedAcceleratorName = (string) content.GetValueForProperty("PredefinedAcceleratorName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).PredefinedAcceleratorName, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal)this).Id, 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.AppPlatform.Models.IAppPlatformIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AppPlatformIdentity(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.AppPlatform.Models.IAppPlatformIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AppPlatformIdentity(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.AppPlatform.Models.IAppPlatformIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(AppPlatformIdentityTypeConverter))] + public partial interface IAppPlatformIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.TypeConverter.cs new file mode 100644 index 000000000000..48226c50a44b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.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.AppPlatform.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AppPlatformIdentityTypeConverter : 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 + /// type. + /// + /// 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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// 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.AppPlatform.Models.IAppPlatformIdentity 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 AppPlatformIdentity { Id = sourceValue }; + } + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AppPlatformIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AppPlatformIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AppPlatformIdentity.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/appplatform/generated/api/Models/AppPlatformIdentity.cs b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.cs new file mode 100644 index 000000000000..c01653423ff9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.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.AppPlatform.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class AppPlatformIdentity : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentityInternal + { + + /// Backing field for property. + private string _agentPoolName; + + /// The name of the build service agent pool resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AgentPoolName { get => this._agentPoolName; set => this._agentPoolName = value; } + + /// Backing field for property. + private string _apiPortalName; + + /// The name of API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ApiPortalName { get => this._apiPortalName; set => this._apiPortalName = value; } + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppName { get => this._appName; set => this._appName = value; } + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = value; } + + /// Backing field for property. + private string _applicationLiveViewName; + + /// The name of Application Live View. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ApplicationLiveViewName { get => this._applicationLiveViewName; set => this._applicationLiveViewName = value; } + + /// Backing field for property. + private string _bindingName; + + /// The name of the Binding resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BindingName { get => this._bindingName; set => this._bindingName = value; } + + /// Backing field for property. + private string _buildName; + + /// The name of the build resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuildName { get => this._buildName; set => this._buildName = value; } + + /// Backing field for property. + private string _buildResultName; + + /// The name of the build result resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuildResultName { get => this._buildResultName; set => this._buildResultName = value; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// Backing field for property. + private string _buildpackBindingName; + + /// The name of the Buildpack Binding Name + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuildpackBindingName { get => this._buildpackBindingName; set => this._buildpackBindingName = value; } + + /// Backing field for property. + private string _buildpackName; + + /// The name of the buildpack resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string BuildpackName { get => this._buildpackName; set => this._buildpackName = value; } + + /// Backing field for property. + private string _certificateName; + + /// The name of the certificate resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string CertificateName { get => this._certificateName; set => this._certificateName = value; } + + /// Backing field for property. + private string _configurationServiceName; + + /// The name of Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ConfigurationServiceName { get => this._configurationServiceName; set => this._configurationServiceName = value; } + + /// Backing field for property. + private string _customizedAcceleratorName; + + /// The name of the customized accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string CustomizedAcceleratorName { get => this._customizedAcceleratorName; set => this._customizedAcceleratorName = value; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = value; } + + /// Backing field for property. + private string _devToolPortalName; + + /// The name of Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DevToolPortalName { get => this._devToolPortalName; set => this._devToolPortalName = value; } + + /// Backing field for property. + private string _domainName; + + /// The name of the custom domain resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = value; } + + /// Backing field for property. + private string _id; + + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Backing field for property. + private string _location; + + /// the region + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private string _predefinedAcceleratorName; + + /// The name of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string PredefinedAcceleratorName { get => this._predefinedAcceleratorName; set => this._predefinedAcceleratorName = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _routeConfigName; + + /// The name of the Spring Cloud Gateway route config. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string RouteConfigName { get => this._routeConfigName; set => this._routeConfigName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _serviceRegistryName; + + /// The name of Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ServiceRegistryName { get => this._serviceRegistryName; set => this._serviceRegistryName = value; } + + /// Backing field for property. + private string _stackName; + + /// The name of the stack resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string StackName { get => this._stackName; set => this._stackName = value; } + + /// Backing field for property. + private string _storageName; + + /// The name of the storage resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string StorageName { get => this._storageName; set => this._storageName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI + /// for every service call. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Creates an new instance. + public AppPlatformIdentity() + { + + } + } + public partial interface IAppPlatformIdentity : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// The name of the build service agent pool resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the build service agent pool resource.", + SerializedName = @"agentPoolName", + PossibleTypes = new [] { typeof(string) })] + string AgentPoolName { get; set; } + /// The name of API portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + string ApiPortalName { get; set; } + /// The name of the App resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + string AppName { get; set; } + /// The name of the application accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + string ApplicationAcceleratorName { get; set; } + /// The name of Application Live View. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of Application Live View.", + SerializedName = @"applicationLiveViewName", + PossibleTypes = new [] { typeof(string) })] + string ApplicationLiveViewName { get; set; } + /// The name of the Binding resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Binding resource.", + SerializedName = @"bindingName", + PossibleTypes = new [] { typeof(string) })] + string BindingName { get; set; } + /// The name of the build resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the build resource.", + SerializedName = @"buildName", + PossibleTypes = new [] { typeof(string) })] + string BuildName { get; set; } + /// The name of the build result resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the build result resource.", + SerializedName = @"buildResultName", + PossibleTypes = new [] { typeof(string) })] + string BuildResultName { get; set; } + /// The name of the build service resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + string BuildServiceName { get; set; } + /// The name of the builder resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + string BuilderName { get; set; } + /// The name of the Buildpack Binding Name + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Buildpack Binding Name", + SerializedName = @"buildpackBindingName", + PossibleTypes = new [] { typeof(string) })] + string BuildpackBindingName { get; set; } + /// The name of the buildpack resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the buildpack resource.", + SerializedName = @"buildpackName", + PossibleTypes = new [] { typeof(string) })] + string BuildpackName { get; set; } + /// The name of the certificate resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the certificate resource.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + string CertificateName { get; set; } + /// The name of Application Configuration Service. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of Application Configuration Service.", + SerializedName = @"configurationServiceName", + PossibleTypes = new [] { typeof(string) })] + string ConfigurationServiceName { get; set; } + /// The name of the customized accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the customized accelerator.", + SerializedName = @"customizedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + string CustomizedAcceleratorName { get; set; } + /// The name of the Deployment resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + string DeploymentName { get; set; } + /// The name of Dev Tool Portal. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of Dev Tool Portal.", + SerializedName = @"devToolPortalName", + PossibleTypes = new [] { typeof(string) })] + string DevToolPortalName { get; set; } + /// The name of the custom domain resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the custom domain resource.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + string DomainName { get; set; } + /// The name of Spring Cloud Gateway. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + string GatewayName { get; set; } + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource identity path", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + /// the region + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"the region", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// The name of the predefined accelerator. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the predefined accelerator.", + SerializedName = @"predefinedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + string PredefinedAcceleratorName { get; set; } + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string ResourceGroupName { get; set; } + /// The name of the Spring Cloud Gateway route config. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Spring Cloud Gateway route config.", + SerializedName = @"routeConfigName", + PossibleTypes = new [] { typeof(string) })] + string RouteConfigName { get; set; } + /// The name of the Service resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + string ServiceName { get; set; } + /// The name of Service Registry. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of Service Registry.", + SerializedName = @"serviceRegistryName", + PossibleTypes = new [] { typeof(string) })] + string ServiceRegistryName { get; set; } + /// The name of the stack resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the stack resource.", + SerializedName = @"stackName", + PossibleTypes = new [] { typeof(string) })] + string StackName { get; set; } + /// The name of the storage resource. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the storage resource.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + string StorageName { get; set; } + /// + /// Gets subscription ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI + /// for every service call. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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 IAppPlatformIdentityInternal + + { + /// The name of the build service agent pool resource. + string AgentPoolName { get; set; } + /// The name of API portal. + string ApiPortalName { get; set; } + /// The name of the App resource. + string AppName { get; set; } + /// The name of the application accelerator. + string ApplicationAcceleratorName { get; set; } + /// The name of Application Live View. + string ApplicationLiveViewName { get; set; } + /// The name of the Binding resource. + string BindingName { get; set; } + /// The name of the build resource. + string BuildName { get; set; } + /// The name of the build result resource. + string BuildResultName { get; set; } + /// The name of the build service resource. + string BuildServiceName { get; set; } + /// The name of the builder resource. + string BuilderName { get; set; } + /// The name of the Buildpack Binding Name + string BuildpackBindingName { get; set; } + /// The name of the buildpack resource. + string BuildpackName { get; set; } + /// The name of the certificate resource. + string CertificateName { get; set; } + /// The name of Application Configuration Service. + string ConfigurationServiceName { get; set; } + /// The name of the customized accelerator. + string CustomizedAcceleratorName { get; set; } + /// The name of the Deployment resource. + string DeploymentName { get; set; } + /// The name of Dev Tool Portal. + string DevToolPortalName { get; set; } + /// The name of the custom domain resource. + string DomainName { get; set; } + /// The name of Spring Cloud Gateway. + string GatewayName { get; set; } + /// Resource identity path + string Id { get; set; } + /// the region + string Location { get; set; } + /// The name of the predefined accelerator. + string PredefinedAcceleratorName { get; set; } + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + string ResourceGroupName { get; set; } + /// The name of the Spring Cloud Gateway route config. + string RouteConfigName { get; set; } + /// The name of the Service resource. + string ServiceName { get; set; } + /// The name of Service Registry. + string ServiceRegistryName { get; set; } + /// The name of the stack resource. + string StackName { get; set; } + /// The name of the storage resource. + string StorageName { get; set; } + /// + /// Gets subscription ID which uniquely identify the 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/appplatform/generated/api/Models/AppPlatformIdentity.json.cs b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.json.cs new file mode 100644 index 000000000000..e039487de284 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.json.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.AppPlatform.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class AppPlatformIdentity + { + + /// + /// 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.AppPlatform.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json serialization 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.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject instance to deserialize from. + internal AppPlatformIdentity(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_subscriptionId = If( json?.PropertyT("subscriptionId"), out var __jsonSubscriptionId) ? (string)__jsonSubscriptionId : (string)SubscriptionId;} + {_resourceGroupName = If( json?.PropertyT("resourceGroupName"), out var __jsonResourceGroupName) ? (string)__jsonResourceGroupName : (string)ResourceGroupName;} + {_serviceName = If( json?.PropertyT("serviceName"), out var __jsonServiceName) ? (string)__jsonServiceName : (string)ServiceName;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_configurationServiceName = If( json?.PropertyT("configurationServiceName"), out var __jsonConfigurationServiceName) ? (string)__jsonConfigurationServiceName : (string)ConfigurationServiceName;} + {_serviceRegistryName = If( json?.PropertyT("serviceRegistryName"), out var __jsonServiceRegistryName) ? (string)__jsonServiceRegistryName : (string)ServiceRegistryName;} + {_applicationLiveViewName = If( json?.PropertyT("applicationLiveViewName"), out var __jsonApplicationLiveViewName) ? (string)__jsonApplicationLiveViewName : (string)ApplicationLiveViewName;} + {_devToolPortalName = If( json?.PropertyT("devToolPortalName"), out var __jsonDevToolPortalName) ? (string)__jsonDevToolPortalName : (string)DevToolPortalName;} + {_buildServiceName = If( json?.PropertyT("buildServiceName"), out var __jsonBuildServiceName) ? (string)__jsonBuildServiceName : (string)BuildServiceName;} + {_buildName = If( json?.PropertyT("buildName"), out var __jsonBuildName) ? (string)__jsonBuildName : (string)BuildName;} + {_buildResultName = If( json?.PropertyT("buildResultName"), out var __jsonBuildResultName) ? (string)__jsonBuildResultName : (string)BuildResultName;} + {_buildpackName = If( json?.PropertyT("buildpackName"), out var __jsonBuildpackName) ? (string)__jsonBuildpackName : (string)BuildpackName;} + {_stackName = If( json?.PropertyT("stackName"), out var __jsonStackName) ? (string)__jsonStackName : (string)StackName;} + {_builderName = If( json?.PropertyT("builderName"), out var __jsonBuilderName) ? (string)__jsonBuilderName : (string)BuilderName;} + {_buildpackBindingName = If( json?.PropertyT("buildpackBindingName"), out var __jsonBuildpackBindingName) ? (string)__jsonBuildpackBindingName : (string)BuildpackBindingName;} + {_agentPoolName = If( json?.PropertyT("agentPoolName"), out var __jsonAgentPoolName) ? (string)__jsonAgentPoolName : (string)AgentPoolName;} + {_appName = If( json?.PropertyT("appName"), out var __jsonAppName) ? (string)__jsonAppName : (string)AppName;} + {_bindingName = If( json?.PropertyT("bindingName"), out var __jsonBindingName) ? (string)__jsonBindingName : (string)BindingName;} + {_storageName = If( json?.PropertyT("storageName"), out var __jsonStorageName) ? (string)__jsonStorageName : (string)StorageName;} + {_certificateName = If( json?.PropertyT("certificateName"), out var __jsonCertificateName) ? (string)__jsonCertificateName : (string)CertificateName;} + {_domainName = If( json?.PropertyT("domainName"), out var __jsonDomainName) ? (string)__jsonDomainName : (string)DomainName;} + {_deploymentName = If( json?.PropertyT("deploymentName"), out var __jsonDeploymentName) ? (string)__jsonDeploymentName : (string)DeploymentName;} + {_gatewayName = If( json?.PropertyT("gatewayName"), out var __jsonGatewayName) ? (string)__jsonGatewayName : (string)GatewayName;} + {_routeConfigName = If( json?.PropertyT("routeConfigName"), out var __jsonRouteConfigName) ? (string)__jsonRouteConfigName : (string)RouteConfigName;} + {_apiPortalName = If( json?.PropertyT("apiPortalName"), out var __jsonApiPortalName) ? (string)__jsonApiPortalName : (string)ApiPortalName;} + {_applicationAcceleratorName = If( json?.PropertyT("applicationAcceleratorName"), out var __jsonApplicationAcceleratorName) ? (string)__jsonApplicationAcceleratorName : (string)ApplicationAcceleratorName;} + {_customizedAcceleratorName = If( json?.PropertyT("customizedAcceleratorName"), out var __jsonCustomizedAcceleratorName) ? (string)__jsonCustomizedAcceleratorName : (string)CustomizedAcceleratorName;} + {_predefinedAcceleratorName = If( json?.PropertyT("predefinedAcceleratorName"), out var __jsonPredefinedAcceleratorName) ? (string)__jsonPredefinedAcceleratorName : (string)PredefinedAcceleratorName;} + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AppPlatformIdentity(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.AppPlatform.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._subscriptionId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._subscriptionId.ToString()) : null, "subscriptionId" ,container.Add ); + AddIf( null != (((object)this._resourceGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._resourceGroupName.ToString()) : null, "resourceGroupName" ,container.Add ); + AddIf( null != (((object)this._serviceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._serviceName.ToString()) : null, "serviceName" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != (((object)this._configurationServiceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._configurationServiceName.ToString()) : null, "configurationServiceName" ,container.Add ); + AddIf( null != (((object)this._serviceRegistryName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._serviceRegistryName.ToString()) : null, "serviceRegistryName" ,container.Add ); + AddIf( null != (((object)this._applicationLiveViewName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._applicationLiveViewName.ToString()) : null, "applicationLiveViewName" ,container.Add ); + AddIf( null != (((object)this._devToolPortalName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._devToolPortalName.ToString()) : null, "devToolPortalName" ,container.Add ); + AddIf( null != (((object)this._buildServiceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._buildServiceName.ToString()) : null, "buildServiceName" ,container.Add ); + AddIf( null != (((object)this._buildName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._buildName.ToString()) : null, "buildName" ,container.Add ); + AddIf( null != (((object)this._buildResultName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._buildResultName.ToString()) : null, "buildResultName" ,container.Add ); + AddIf( null != (((object)this._buildpackName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._buildpackName.ToString()) : null, "buildpackName" ,container.Add ); + AddIf( null != (((object)this._stackName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._stackName.ToString()) : null, "stackName" ,container.Add ); + AddIf( null != (((object)this._builderName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._builderName.ToString()) : null, "builderName" ,container.Add ); + AddIf( null != (((object)this._buildpackBindingName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._buildpackBindingName.ToString()) : null, "buildpackBindingName" ,container.Add ); + AddIf( null != (((object)this._agentPoolName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._agentPoolName.ToString()) : null, "agentPoolName" ,container.Add ); + AddIf( null != (((object)this._appName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._appName.ToString()) : null, "appName" ,container.Add ); + AddIf( null != (((object)this._bindingName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._bindingName.ToString()) : null, "bindingName" ,container.Add ); + AddIf( null != (((object)this._storageName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._storageName.ToString()) : null, "storageName" ,container.Add ); + AddIf( null != (((object)this._certificateName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._certificateName.ToString()) : null, "certificateName" ,container.Add ); + AddIf( null != (((object)this._domainName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._domainName.ToString()) : null, "domainName" ,container.Add ); + AddIf( null != (((object)this._deploymentName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._deploymentName.ToString()) : null, "deploymentName" ,container.Add ); + AddIf( null != (((object)this._gatewayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._gatewayName.ToString()) : null, "gatewayName" ,container.Add ); + AddIf( null != (((object)this._routeConfigName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._routeConfigName.ToString()) : null, "routeConfigName" ,container.Add ); + AddIf( null != (((object)this._apiPortalName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._apiPortalName.ToString()) : null, "apiPortalName" ,container.Add ); + AddIf( null != (((object)this._applicationAcceleratorName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._applicationAcceleratorName.ToString()) : null, "applicationAcceleratorName" ,container.Add ); + AddIf( null != (((object)this._customizedAcceleratorName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._customizedAcceleratorName.ToString()) : null, "customizedAcceleratorName" ,container.Add ); + AddIf( null != (((object)this._predefinedAcceleratorName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._predefinedAcceleratorName.ToString()) : null, "predefinedAcceleratorName" ,container.Add ); + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Support/ActionType.Completer.cs b/swaggerci/appplatform/generated/api/Support/ActionType.Completer.cs new file mode 100644 index 000000000000..166d1c49fc09 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ActionType.Completer.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// + /// Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionTypeTypeConverter))] + public partial struct ActionType : + 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) || "Internal".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Internal'", "Internal", global::System.Management.Automation.CompletionResultType.ParameterValue, "Internal"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ActionType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ActionType.TypeConverter.cs new file mode 100644 index 000000000000..9fe373160144 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ActionType.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.AppPlatform.Support +{ + + /// + /// Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. + /// + public partial class ActionTypeTypeConverter : + 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) => ActionType.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/appplatform/generated/api/Support/ActionType.cs b/swaggerci/appplatform/generated/api/Support/ActionType.cs new file mode 100644 index 000000000000..855ae32b088e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ActionType.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.AppPlatform.Support +{ + + /// + /// Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. + /// + public partial struct ActionType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType Internal = @"Internal"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ActionType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ActionType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ActionType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ActionType + /// 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.AppPlatform.Support.ActionType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ActionType (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 ActionType && Equals((ActionType)obj); + } + + /// Returns hashCode for enum ActionType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ActionType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ActionType + /// the value to convert to an instance of . + + public static implicit operator ActionType(string value) + { + return new ActionType(value); + } + + /// Implicit operator to convert ActionType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType e) + { + return e._value; + } + + /// Overriding != operator for enum ActionType + /// 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.AppPlatform.Support.ActionType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ActionType + /// 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.AppPlatform.Support.ActionType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ActionType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.Completer.cs new file mode 100644 index 000000000000..2ef531072e4d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.Completer.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.AppPlatform.Support +{ + + /// State of the API portal. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningStateTypeConverter))] + public partial struct ApiPortalProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..f71eef4764d4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.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.AppPlatform.Support +{ + + /// State of the API portal. + public partial class ApiPortalProvisioningStateTypeConverter : + 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) => ApiPortalProvisioningState.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/appplatform/generated/api/Support/ApiPortalProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.cs new file mode 100644 index 000000000000..3c38bc1ed8c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApiPortalProvisioningState.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.AppPlatform.Support +{ + + /// State of the API portal. + public partial struct ApiPortalProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ApiPortalProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ApiPortalProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ApiPortalProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ApiPortalProvisioningState + /// 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.AppPlatform.Support.ApiPortalProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ApiPortalProvisioningState (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 ApiPortalProvisioningState && Equals((ApiPortalProvisioningState)obj); + } + + /// Returns hashCode for enum ApiPortalProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ApiPortalProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ApiPortalProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ApiPortalProvisioningState(string value) + { + return new ApiPortalProvisioningState(value); + } + + /// Implicit operator to convert ApiPortalProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ApiPortalProvisioningState + /// 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.AppPlatform.Support.ApiPortalProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ApiPortalProvisioningState + /// 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.AppPlatform.Support.ApiPortalProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApiPortalProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ApmType.Completer.cs b/swaggerci/appplatform/generated/api/Support/ApmType.Completer.cs new file mode 100644 index 000000000000..1e0732b36713 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApmType.Completer.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.AppPlatform.Support +{ + + /// Type of application performance monitoring + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmTypeTypeConverter))] + public partial struct ApmType : + 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) || "ApplicationInsights".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ApplicationInsights'", "ApplicationInsights", global::System.Management.Automation.CompletionResultType.ParameterValue, "ApplicationInsights"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AppDynamics".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AppDynamics'", "AppDynamics", global::System.Management.Automation.CompletionResultType.ParameterValue, "AppDynamics"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Dynatrace".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Dynatrace'", "Dynatrace", global::System.Management.Automation.CompletionResultType.ParameterValue, "Dynatrace"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NewRelic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NewRelic'", "NewRelic", global::System.Management.Automation.CompletionResultType.ParameterValue, "NewRelic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ElasticAPM".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ElasticAPM'", "ElasticAPM", global::System.Management.Automation.CompletionResultType.ParameterValue, "ElasticAPM"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ApmType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ApmType.TypeConverter.cs new file mode 100644 index 000000000000..a4c92c8397dc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApmType.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.AppPlatform.Support +{ + + /// Type of application performance monitoring + public partial class ApmTypeTypeConverter : + 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) => ApmType.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/appplatform/generated/api/Support/ApmType.cs b/swaggerci/appplatform/generated/api/Support/ApmType.cs new file mode 100644 index 000000000000..5c228a08e7cd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApmType.cs @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// Type of application performance monitoring + public partial struct ApmType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType AppDynamics = @"AppDynamics"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType ApplicationInsights = @"ApplicationInsights"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType Dynatrace = @"Dynatrace"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType ElasticApm = @"ElasticAPM"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType NewRelic = @"NewRelic"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ApmType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ApmType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ApmType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ApmType + /// 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.AppPlatform.Support.ApmType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ApmType (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 ApmType && Equals((ApmType)obj); + } + + /// Returns hashCode for enum ApmType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ApmType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ApmType + /// the value to convert to an instance of . + + public static implicit operator ApmType(string value) + { + return new ApmType(value); + } + + /// Implicit operator to convert ApmType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType e) + { + return e._value; + } + + /// Overriding != operator for enum ApmType + /// 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.AppPlatform.Support.ApmType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ApmType + /// 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.AppPlatform.Support.ApmType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.Completer.cs new file mode 100644 index 000000000000..a958f655caca --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.Completer.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.AppPlatform.Support +{ + + /// Provisioning state of the App + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningStateTypeConverter))] + public partial struct AppResourceProvisioningState : + 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) || "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) || "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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..9475225ee23d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the App + public partial class AppResourceProvisioningStateTypeConverter : + 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) => AppResourceProvisioningState.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/appplatform/generated/api/Support/AppResourceProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.cs new file mode 100644 index 000000000000..55ed0ba18574 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the App + public partial struct AppResourceProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private AppResourceProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to AppResourceProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new AppResourceProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type AppResourceProvisioningState + /// 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.AppPlatform.Support.AppResourceProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type AppResourceProvisioningState (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 AppResourceProvisioningState && Equals((AppResourceProvisioningState)obj); + } + + /// Returns hashCode for enum AppResourceProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for AppResourceProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to AppResourceProvisioningState + /// the value to convert to an instance of . + + public static implicit operator AppResourceProvisioningState(string value) + { + return new AppResourceProvisioningState(value); + } + + /// Implicit operator to convert AppResourceProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum AppResourceProvisioningState + /// 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.AppPlatform.Support.AppResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum AppResourceProvisioningState + /// 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.AppPlatform.Support.AppResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.Completer.cs new file mode 100644 index 000000000000..49df13064023 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.Completer.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.AppPlatform.Support +{ + + /// State of the application accelerator. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningStateTypeConverter))] + public partial struct ApplicationAcceleratorProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..0d8cb8a1b801 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.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.AppPlatform.Support +{ + + /// State of the application accelerator. + public partial class ApplicationAcceleratorProvisioningStateTypeConverter : + 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) => ApplicationAcceleratorProvisioningState.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/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.cs new file mode 100644 index 000000000000..9d49d3444219 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApplicationAcceleratorProvisioningState.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.AppPlatform.Support +{ + + /// State of the application accelerator. + public partial struct ApplicationAcceleratorProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ApplicationAcceleratorProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ApplicationAcceleratorProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ApplicationAcceleratorProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ApplicationAcceleratorProvisioningState + /// 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.AppPlatform.Support.ApplicationAcceleratorProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ApplicationAcceleratorProvisioningState (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 ApplicationAcceleratorProvisioningState && Equals((ApplicationAcceleratorProvisioningState)obj); + } + + /// Returns hashCode for enum ApplicationAcceleratorProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ApplicationAcceleratorProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ApplicationAcceleratorProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ApplicationAcceleratorProvisioningState(string value) + { + return new ApplicationAcceleratorProvisioningState(value); + } + + /// Implicit operator to convert ApplicationAcceleratorProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ApplicationAcceleratorProvisioningState + /// 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.AppPlatform.Support.ApplicationAcceleratorProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ApplicationAcceleratorProvisioningState + /// 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.AppPlatform.Support.ApplicationAcceleratorProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationAcceleratorProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.Completer.cs new file mode 100644 index 000000000000..f46d015b1d32 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.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.AppPlatform.Support +{ + + /// State of the Application Live View. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningStateTypeConverter))] + public partial struct ApplicationLiveViewProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "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) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..4296f8849478 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.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.AppPlatform.Support +{ + + /// State of the Application Live View. + public partial class ApplicationLiveViewProvisioningStateTypeConverter : + 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) => ApplicationLiveViewProvisioningState.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/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.cs new file mode 100644 index 000000000000..8ca5606cc65f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ApplicationLiveViewProvisioningState.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.AppPlatform.Support +{ + + /// State of the Application Live View. + public partial struct ApplicationLiveViewProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ApplicationLiveViewProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ApplicationLiveViewProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ApplicationLiveViewProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ApplicationLiveViewProvisioningState + /// 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.AppPlatform.Support.ApplicationLiveViewProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ApplicationLiveViewProvisioningState (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 ApplicationLiveViewProvisioningState && Equals((ApplicationLiveViewProvisioningState)obj); + } + + /// Returns hashCode for enum ApplicationLiveViewProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ApplicationLiveViewProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ApplicationLiveViewProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ApplicationLiveViewProvisioningState(string value) + { + return new ApplicationLiveViewProvisioningState(value); + } + + /// Implicit operator to convert ApplicationLiveViewProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ApplicationLiveViewProvisioningState + /// 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.AppPlatform.Support.ApplicationLiveViewProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ApplicationLiveViewProvisioningState + /// 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.AppPlatform.Support.ApplicationLiveViewProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApplicationLiveViewProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BackendProtocol.Completer.cs b/swaggerci/appplatform/generated/api/Support/BackendProtocol.Completer.cs new file mode 100644 index 000000000000..3beee589eaff --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BackendProtocol.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.AppPlatform.Support +{ + + /// How ingress should communicate with this app backend service. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocolTypeConverter))] + public partial struct BackendProtocol : + 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) || "GRPC".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'GRPC'", "GRPC", global::System.Management.Automation.CompletionResultType.ParameterValue, "GRPC"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Default".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Default'", "Default", global::System.Management.Automation.CompletionResultType.ParameterValue, "Default"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BackendProtocol.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/BackendProtocol.TypeConverter.cs new file mode 100644 index 000000000000..116763669116 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BackendProtocol.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.AppPlatform.Support +{ + + /// How ingress should communicate with this app backend service. + public partial class BackendProtocolTypeConverter : + 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) => BackendProtocol.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/appplatform/generated/api/Support/BackendProtocol.cs b/swaggerci/appplatform/generated/api/Support/BackendProtocol.cs new file mode 100644 index 000000000000..7c6cec8d3880 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BackendProtocol.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.AppPlatform.Support +{ + + /// How ingress should communicate with this app backend service. + public partial struct BackendProtocol : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol Default = @"Default"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol Grpc = @"GRPC"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private BackendProtocol(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BackendProtocol + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BackendProtocol(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BackendProtocol + /// 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.AppPlatform.Support.BackendProtocol e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type BackendProtocol (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 BackendProtocol && Equals((BackendProtocol)obj); + } + + /// Returns hashCode for enum BackendProtocol + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BackendProtocol + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BackendProtocol + /// the value to convert to an instance of . + + public static implicit operator BackendProtocol(string value) + { + return new BackendProtocol(value); + } + + /// Implicit operator to convert BackendProtocol to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol e) + { + return e._value; + } + + /// Overriding != operator for enum BackendProtocol + /// 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.AppPlatform.Support.BackendProtocol e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BackendProtocol + /// 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.AppPlatform.Support.BackendProtocol e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BindingType.Completer.cs b/swaggerci/appplatform/generated/api/Support/BindingType.Completer.cs new file mode 100644 index 000000000000..e9fd9f02bc55 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BindingType.Completer.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.AppPlatform.Support +{ + + /// Buildpack Binding Type + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingTypeTypeConverter))] + public partial struct BindingType : + 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) || "ApplicationInsights".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ApplicationInsights'", "ApplicationInsights", global::System.Management.Automation.CompletionResultType.ParameterValue, "ApplicationInsights"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ApacheSkyWalking".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ApacheSkyWalking'", "ApacheSkyWalking", global::System.Management.Automation.CompletionResultType.ParameterValue, "ApacheSkyWalking"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AppDynamics".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AppDynamics'", "AppDynamics", global::System.Management.Automation.CompletionResultType.ParameterValue, "AppDynamics"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Dynatrace".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Dynatrace'", "Dynatrace", global::System.Management.Automation.CompletionResultType.ParameterValue, "Dynatrace"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NewRelic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NewRelic'", "NewRelic", global::System.Management.Automation.CompletionResultType.ParameterValue, "NewRelic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ElasticAPM".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ElasticAPM'", "ElasticAPM", global::System.Management.Automation.CompletionResultType.ParameterValue, "ElasticAPM"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CACertificates".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CACertificates'", "CACertificates", global::System.Management.Automation.CompletionResultType.ParameterValue, "CACertificates"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BindingType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/BindingType.TypeConverter.cs new file mode 100644 index 000000000000..ca3b964cb0e8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BindingType.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.AppPlatform.Support +{ + + /// Buildpack Binding Type + public partial class BindingTypeTypeConverter : + 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) => BindingType.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/appplatform/generated/api/Support/BindingType.cs b/swaggerci/appplatform/generated/api/Support/BindingType.cs new file mode 100644 index 000000000000..805569c12abf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BindingType.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.AppPlatform.Support +{ + + /// Buildpack Binding Type + public partial struct BindingType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType ApacheSkyWalking = @"ApacheSkyWalking"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType AppDynamics = @"AppDynamics"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType ApplicationInsights = @"ApplicationInsights"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType CaCertificates = @"CACertificates"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType Dynatrace = @"Dynatrace"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType ElasticApm = @"ElasticAPM"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType NewRelic = @"NewRelic"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private BindingType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BindingType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BindingType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BindingType + /// 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.AppPlatform.Support.BindingType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type BindingType (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 BindingType && Equals((BindingType)obj); + } + + /// Returns hashCode for enum BindingType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BindingType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BindingType + /// the value to convert to an instance of . + + public static implicit operator BindingType(string value) + { + return new BindingType(value); + } + + /// Implicit operator to convert BindingType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType e) + { + return e._value; + } + + /// Overriding != operator for enum BindingType + /// 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.AppPlatform.Support.BindingType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BindingType + /// 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.AppPlatform.Support.BindingType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuildProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/BuildProvisioningState.Completer.cs new file mode 100644 index 000000000000..30d25ea8eb8e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildProvisioningState.Completer.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.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningStateTypeConverter))] + public partial struct BuildProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuildProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/BuildProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..73720cec2837 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + public partial class BuildProvisioningStateTypeConverter : + 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) => BuildProvisioningState.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/appplatform/generated/api/Support/BuildProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/BuildProvisioningState.cs new file mode 100644 index 000000000000..5da9e7b32caf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildProvisioningState.cs @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + public partial struct BuildProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private BuildProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BuildProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BuildProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BuildProvisioningState + /// 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.AppPlatform.Support.BuildProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type BuildProvisioningState (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 BuildProvisioningState && Equals((BuildProvisioningState)obj); + } + + /// Returns hashCode for enum BuildProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BuildProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BuildProvisioningState + /// the value to convert to an instance of . + + public static implicit operator BuildProvisioningState(string value) + { + return new BuildProvisioningState(value); + } + + /// Implicit operator to convert BuildProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum BuildProvisioningState + /// 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.AppPlatform.Support.BuildProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BuildProvisioningState + /// 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.AppPlatform.Support.BuildProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.Completer.cs new file mode 100644 index 000000000000..5292a27dd7d9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.Completer.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.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningStateTypeConverter))] + public partial struct BuildResultProvisioningState : + 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) || "Queuing".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Queuing'", "Queuing", global::System.Management.Automation.CompletionResultType.ParameterValue, "Queuing"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Building".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Building'", "Building", global::System.Management.Automation.CompletionResultType.ParameterValue, "Building"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..d7f3b76436e0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + public partial class BuildResultProvisioningStateTypeConverter : + 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) => BuildResultProvisioningState.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/appplatform/generated/api/Support/BuildResultProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.cs new file mode 100644 index 000000000000..282a03efaa4c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildResultProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + public partial struct BuildResultProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState Building = @"Building"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState Queuing = @"Queuing"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState Succeeded = @"Succeeded"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private BuildResultProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BuildResultProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BuildResultProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BuildResultProvisioningState + /// 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.AppPlatform.Support.BuildResultProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type BuildResultProvisioningState (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 BuildResultProvisioningState && Equals((BuildResultProvisioningState)obj); + } + + /// Returns hashCode for enum BuildResultProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BuildResultProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BuildResultProvisioningState + /// the value to convert to an instance of . + + public static implicit operator BuildResultProvisioningState(string value) + { + return new BuildResultProvisioningState(value); + } + + /// Implicit operator to convert BuildResultProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum BuildResultProvisioningState + /// 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.AppPlatform.Support.BuildResultProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BuildResultProvisioningState + /// 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.AppPlatform.Support.BuildResultProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildResultProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.Completer.cs new file mode 100644 index 000000000000..fa1065d6e184 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.Completer.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.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningStateTypeConverter))] + public partial struct BuildServiceProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..c0bd212891e6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + public partial class BuildServiceProvisioningStateTypeConverter : + 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) => BuildServiceProvisioningState.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/appplatform/generated/api/Support/BuildServiceProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.cs new file mode 100644 index 000000000000..111871370ece --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildServiceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the KPack build result + public partial struct BuildServiceProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private BuildServiceProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BuildServiceProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BuildServiceProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BuildServiceProvisioningState + /// 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.AppPlatform.Support.BuildServiceProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type BuildServiceProvisioningState (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 BuildServiceProvisioningState && Equals((BuildServiceProvisioningState)obj); + } + + /// Returns hashCode for enum BuildServiceProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BuildServiceProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BuildServiceProvisioningState + /// the value to convert to an instance of . + + public static implicit operator BuildServiceProvisioningState(string value) + { + return new BuildServiceProvisioningState(value); + } + + /// Implicit operator to convert BuildServiceProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum BuildServiceProvisioningState + /// 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.AppPlatform.Support.BuildServiceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BuildServiceProvisioningState + /// 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.AppPlatform.Support.BuildServiceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildServiceProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.Completer.cs new file mode 100644 index 000000000000..f573cff258f4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.Completer.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.AppPlatform.Support +{ + + /// Builder provision status. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningStateTypeConverter))] + public partial struct BuilderProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..b3058d7ef2a0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.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.AppPlatform.Support +{ + + /// Builder provision status. + public partial class BuilderProvisioningStateTypeConverter : + 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) => BuilderProvisioningState.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/appplatform/generated/api/Support/BuilderProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.cs new file mode 100644 index 000000000000..1ca89ff6ff9c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuilderProvisioningState.cs @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// Builder provision status. + public partial struct BuilderProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private BuilderProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BuilderProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BuilderProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BuilderProvisioningState + /// 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.AppPlatform.Support.BuilderProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type BuilderProvisioningState (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 BuilderProvisioningState && Equals((BuilderProvisioningState)obj); + } + + /// Returns hashCode for enum BuilderProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BuilderProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BuilderProvisioningState + /// the value to convert to an instance of . + + public static implicit operator BuilderProvisioningState(string value) + { + return new BuilderProvisioningState(value); + } + + /// Implicit operator to convert BuilderProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum BuilderProvisioningState + /// 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.AppPlatform.Support.BuilderProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BuilderProvisioningState + /// 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.AppPlatform.Support.BuilderProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuilderProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.Completer.cs new file mode 100644 index 000000000000..df305fe9d64b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.Completer.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.AppPlatform.Support +{ + + /// State of the Buildpack Binding. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningStateTypeConverter))] + public partial struct BuildpackBindingProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..b9c2eb25991c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.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.AppPlatform.Support +{ + + /// State of the Buildpack Binding. + public partial class BuildpackBindingProvisioningStateTypeConverter : + 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) => BuildpackBindingProvisioningState.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/appplatform/generated/api/Support/BuildpackBindingProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.cs new file mode 100644 index 000000000000..cf80c4e99e3d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/BuildpackBindingProvisioningState.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.AppPlatform.Support +{ + + /// State of the Buildpack Binding. + public partial struct BuildpackBindingProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private BuildpackBindingProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to BuildpackBindingProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new BuildpackBindingProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type BuildpackBindingProvisioningState + /// 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.AppPlatform.Support.BuildpackBindingProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type BuildpackBindingProvisioningState (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 BuildpackBindingProvisioningState && Equals((BuildpackBindingProvisioningState)obj); + } + + /// Returns hashCode for enum BuildpackBindingProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for BuildpackBindingProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to BuildpackBindingProvisioningState + /// the value to convert to an instance of . + + public static implicit operator BuildpackBindingProvisioningState(string value) + { + return new BuildpackBindingProvisioningState(value); + } + + /// Implicit operator to convert BuildpackBindingProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum BuildpackBindingProvisioningState + /// 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.AppPlatform.Support.BuildpackBindingProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum BuildpackBindingProvisioningState + /// 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.AppPlatform.Support.BuildpackBindingProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BuildpackBindingProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.Completer.cs new file mode 100644 index 000000000000..b59e65dc227d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.Completer.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.AppPlatform.Support +{ + + /// Provisioning state of the Certificate + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningStateTypeConverter))] + public partial struct CertificateResourceProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..90453e43ad60 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the Certificate + public partial class CertificateResourceProvisioningStateTypeConverter : + 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) => CertificateResourceProvisioningState.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/appplatform/generated/api/Support/CertificateResourceProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.cs new file mode 100644 index 000000000000..99320e9d7ba4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CertificateResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the Certificate + public partial struct CertificateResourceProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private CertificateResourceProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to CertificateResourceProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CertificateResourceProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type CertificateResourceProvisioningState + /// 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.AppPlatform.Support.CertificateResourceProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type CertificateResourceProvisioningState (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 CertificateResourceProvisioningState && Equals((CertificateResourceProvisioningState)obj); + } + + /// Returns hashCode for enum CertificateResourceProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CertificateResourceProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CertificateResourceProvisioningState + /// the value to convert to an instance of . + + public static implicit operator CertificateResourceProvisioningState(string value) + { + return new CertificateResourceProvisioningState(value); + } + + /// Implicit operator to convert CertificateResourceProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum CertificateResourceProvisioningState + /// 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.AppPlatform.Support.CertificateResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CertificateResourceProvisioningState + /// 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.AppPlatform.Support.CertificateResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CertificateResourceProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ConfigServerState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ConfigServerState.Completer.cs new file mode 100644 index 000000000000..1c376ca63399 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ConfigServerState.Completer.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.AppPlatform.Support +{ + + /// State of the config server. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerStateTypeConverter))] + public partial struct ConfigServerState : + 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) || "NotAvailable".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NotAvailable'", "NotAvailable", global::System.Management.Automation.CompletionResultType.ParameterValue, "NotAvailable"); + } + 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) || "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) || "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) || "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/appplatform/generated/api/Support/ConfigServerState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ConfigServerState.TypeConverter.cs new file mode 100644 index 000000000000..bab8ebafb0ac --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ConfigServerState.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.AppPlatform.Support +{ + + /// State of the config server. + public partial class ConfigServerStateTypeConverter : + 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) => ConfigServerState.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/appplatform/generated/api/Support/ConfigServerState.cs b/swaggerci/appplatform/generated/api/Support/ConfigServerState.cs new file mode 100644 index 000000000000..4ec7e3cb2ce8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ConfigServerState.cs @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// State of the config server. + public partial struct ConfigServerState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState Deleted = @"Deleted"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState NotAvailable = @"NotAvailable"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ConfigServerState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ConfigServerState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ConfigServerState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ConfigServerState + /// 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.AppPlatform.Support.ConfigServerState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ConfigServerState (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 ConfigServerState && Equals((ConfigServerState)obj); + } + + /// Returns hashCode for enum ConfigServerState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ConfigServerState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ConfigServerState + /// the value to convert to an instance of . + + public static implicit operator ConfigServerState(string value) + { + return new ConfigServerState(value); + } + + /// Implicit operator to convert ConfigServerState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState e) + { + return e._value; + } + + /// Overriding != operator for enum ConfigServerState + /// 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.AppPlatform.Support.ConfigServerState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ConfigServerState + /// 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.AppPlatform.Support.ConfigServerState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.Completer.cs new file mode 100644 index 000000000000..22822ac05c24 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.Completer.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.AppPlatform.Support +{ + + /// State of the Application Configuration Service. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningStateTypeConverter))] + public partial struct ConfigurationServiceProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..90a8a02aad25 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.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.AppPlatform.Support +{ + + /// State of the Application Configuration Service. + public partial class ConfigurationServiceProvisioningStateTypeConverter : + 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) => ConfigurationServiceProvisioningState.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/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.cs new file mode 100644 index 000000000000..ab8d93685659 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ConfigurationServiceProvisioningState.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.AppPlatform.Support +{ + + /// State of the Application Configuration Service. + public partial struct ConfigurationServiceProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ConfigurationServiceProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ConfigurationServiceProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ConfigurationServiceProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ConfigurationServiceProvisioningState + /// 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.AppPlatform.Support.ConfigurationServiceProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ConfigurationServiceProvisioningState (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 ConfigurationServiceProvisioningState && Equals((ConfigurationServiceProvisioningState)obj); + } + + /// Returns hashCode for enum ConfigurationServiceProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ConfigurationServiceProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ConfigurationServiceProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ConfigurationServiceProvisioningState(string value) + { + return new ConfigurationServiceProvisioningState(value); + } + + /// Implicit operator to convert ConfigurationServiceProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ConfigurationServiceProvisioningState + /// 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.AppPlatform.Support.ConfigurationServiceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ConfigurationServiceProvisioningState + /// 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.AppPlatform.Support.ConfigurationServiceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigurationServiceProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CreatedByType.Completer.cs b/swaggerci/appplatform/generated/api/Support/CreatedByType.Completer.cs new file mode 100644 index 000000000000..10dec0ed9f75 --- /dev/null +++ b/swaggerci/appplatform/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.AppPlatform.Support +{ + + /// The type of identity that created the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/api/Support/CreatedByType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/CreatedByType.TypeConverter.cs new file mode 100644 index 000000000000..f7cac4e95a58 --- /dev/null +++ b/swaggerci/appplatform/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.AppPlatform.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/appplatform/generated/api/Support/CreatedByType.cs b/swaggerci/appplatform/generated/api/Support/CreatedByType.cs new file mode 100644 index 000000000000..7cfbc995b1e5 --- /dev/null +++ b/swaggerci/appplatform/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.AppPlatform.Support +{ + + /// The type of identity that created the resource. + public partial struct CreatedByType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType Application = @"Application"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType Key = @"Key"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType ManagedIdentity = @"ManagedIdentity"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Enum class. + /// 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.AppPlatform.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.AppPlatform.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.AppPlatform.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CreatedByType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.Completer.cs new file mode 100644 index 000000000000..872339f3d7c8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.Completer.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.AppPlatform.Support +{ + + /// Provisioning state of the Domain + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningStateTypeConverter))] + public partial struct CustomDomainResourceProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..ed04248ba715 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the Domain + public partial class CustomDomainResourceProvisioningStateTypeConverter : + 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) => CustomDomainResourceProvisioningState.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/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.cs new file mode 100644 index 000000000000..d60829c55f17 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomDomainResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the Domain + public partial struct CustomDomainResourceProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to CustomDomainResourceProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CustomDomainResourceProvisioningState(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private CustomDomainResourceProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type CustomDomainResourceProvisioningState + /// 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.AppPlatform.Support.CustomDomainResourceProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type CustomDomainResourceProvisioningState (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 CustomDomainResourceProvisioningState && Equals((CustomDomainResourceProvisioningState)obj); + } + + /// Returns hashCode for enum CustomDomainResourceProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CustomDomainResourceProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CustomDomainResourceProvisioningState + /// the value to convert to an instance of . + + public static implicit operator CustomDomainResourceProvisioningState(string value) + { + return new CustomDomainResourceProvisioningState(value); + } + + /// Implicit operator to convert CustomDomainResourceProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum CustomDomainResourceProvisioningState + /// 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.AppPlatform.Support.CustomDomainResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CustomDomainResourceProvisioningState + /// 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.AppPlatform.Support.CustomDomainResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomDomainResourceProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.Completer.cs new file mode 100644 index 000000000000..26df09f27299 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.Completer.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.AppPlatform.Support +{ + + /// State of the customized accelerator. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningStateTypeConverter))] + public partial struct CustomizedAcceleratorProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..d9a5f24df9f9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.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.AppPlatform.Support +{ + + /// State of the customized accelerator. + public partial class CustomizedAcceleratorProvisioningStateTypeConverter : + 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) => CustomizedAcceleratorProvisioningState.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/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.cs new file mode 100644 index 000000000000..7691a1331756 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorProvisioningState.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.AppPlatform.Support +{ + + /// State of the customized accelerator. + public partial struct CustomizedAcceleratorProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to CustomizedAcceleratorProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CustomizedAcceleratorProvisioningState(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private CustomizedAcceleratorProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type CustomizedAcceleratorProvisioningState + /// 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.AppPlatform.Support.CustomizedAcceleratorProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type CustomizedAcceleratorProvisioningState (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 CustomizedAcceleratorProvisioningState && Equals((CustomizedAcceleratorProvisioningState)obj); + } + + /// Returns hashCode for enum CustomizedAcceleratorProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CustomizedAcceleratorProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CustomizedAcceleratorProvisioningState + /// the value to convert to an instance of . + + public static implicit operator CustomizedAcceleratorProvisioningState(string value) + { + return new CustomizedAcceleratorProvisioningState(value); + } + + /// Implicit operator to convert CustomizedAcceleratorProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum CustomizedAcceleratorProvisioningState + /// 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.AppPlatform.Support.CustomizedAcceleratorProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CustomizedAcceleratorProvisioningState + /// 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.AppPlatform.Support.CustomizedAcceleratorProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.Completer.cs b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.Completer.cs new file mode 100644 index 000000000000..14be5e25eea3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.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.AppPlatform.Support +{ + + /// State of the customized accelerator validation result + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultStateTypeConverter))] + public partial struct CustomizedAcceleratorValidateResultState : + 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) || "Valid".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Valid'", "Valid", global::System.Management.Automation.CompletionResultType.ParameterValue, "Valid"); + } + 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"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.TypeConverter.cs new file mode 100644 index 000000000000..6c760a30c15f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.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.AppPlatform.Support +{ + + /// State of the customized accelerator validation result + public partial class CustomizedAcceleratorValidateResultStateTypeConverter : + 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) => CustomizedAcceleratorValidateResultState.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/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.cs b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.cs new file mode 100644 index 000000000000..e3bb8663d7e6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/CustomizedAcceleratorValidateResultState.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.AppPlatform.Support +{ + + /// State of the customized accelerator validation result + public partial struct CustomizedAcceleratorValidateResultState : + System.IEquatable + { + /// Customized accelerator properties are invalid. + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState Invalid = @"Invalid"; + + /// Customized accelerator properties are valid. + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState Valid = @"Valid"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to CustomizedAcceleratorValidateResultState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new CustomizedAcceleratorValidateResultState(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private CustomizedAcceleratorValidateResultState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type CustomizedAcceleratorValidateResultState + /// 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.AppPlatform.Support.CustomizedAcceleratorValidateResultState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type CustomizedAcceleratorValidateResultState (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 CustomizedAcceleratorValidateResultState && Equals((CustomizedAcceleratorValidateResultState)obj); + } + + /// Returns hashCode for enum CustomizedAcceleratorValidateResultState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for CustomizedAcceleratorValidateResultState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to CustomizedAcceleratorValidateResultState + /// the value to convert to an instance of . + + public static implicit operator CustomizedAcceleratorValidateResultState(string value) + { + return new CustomizedAcceleratorValidateResultState(value); + } + + /// Implicit operator to convert CustomizedAcceleratorValidateResultState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState e) + { + return e._value; + } + + /// Overriding != operator for enum CustomizedAcceleratorValidateResultState + /// 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.AppPlatform.Support.CustomizedAcceleratorValidateResultState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum CustomizedAcceleratorValidateResultState + /// 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.AppPlatform.Support.CustomizedAcceleratorValidateResultState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.CustomizedAcceleratorValidateResultState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.Completer.cs new file mode 100644 index 000000000000..a0751e13aedf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the Deployment + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningStateTypeConverter))] + public partial struct DeploymentResourceProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..3f1d7b703dd9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the Deployment + public partial class DeploymentResourceProvisioningStateTypeConverter : + 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) => DeploymentResourceProvisioningState.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/appplatform/generated/api/Support/DeploymentResourceProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.cs new file mode 100644 index 000000000000..b63c5d63d5f0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the Deployment + public partial struct DeploymentResourceProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to DeploymentResourceProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DeploymentResourceProvisioningState(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private DeploymentResourceProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DeploymentResourceProvisioningState + /// 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.AppPlatform.Support.DeploymentResourceProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type DeploymentResourceProvisioningState (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 DeploymentResourceProvisioningState && Equals((DeploymentResourceProvisioningState)obj); + } + + /// Returns hashCode for enum DeploymentResourceProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DeploymentResourceProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DeploymentResourceProvisioningState + /// the value to convert to an instance of . + + public static implicit operator DeploymentResourceProvisioningState(string value) + { + return new DeploymentResourceProvisioningState(value); + } + + /// Implicit operator to convert DeploymentResourceProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum DeploymentResourceProvisioningState + /// 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.AppPlatform.Support.DeploymentResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DeploymentResourceProvisioningState + /// 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.AppPlatform.Support.DeploymentResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.Completer.cs b/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.Completer.cs new file mode 100644 index 000000000000..ff2c478cbcf6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.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.AppPlatform.Support +{ + + /// Status of the Deployment + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatusTypeConverter))] + public partial struct DeploymentResourceStatus : + 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) || "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) || "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/appplatform/generated/api/Support/DeploymentResourceStatus.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.TypeConverter.cs new file mode 100644 index 000000000000..2f618b51d9e9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.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.AppPlatform.Support +{ + + /// Status of the Deployment + public partial class DeploymentResourceStatusTypeConverter : + 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) => DeploymentResourceStatus.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/appplatform/generated/api/Support/DeploymentResourceStatus.cs b/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.cs new file mode 100644 index 000000000000..6b228f1d7235 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.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.AppPlatform.Support +{ + + /// Status of the Deployment + public partial struct DeploymentResourceStatus : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Running = @"Running"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Stopped = @"Stopped"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DeploymentResourceStatus + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DeploymentResourceStatus(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private DeploymentResourceStatus(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DeploymentResourceStatus + /// 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.AppPlatform.Support.DeploymentResourceStatus e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DeploymentResourceStatus (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 DeploymentResourceStatus && Equals((DeploymentResourceStatus)obj); + } + + /// Returns hashCode for enum DeploymentResourceStatus + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DeploymentResourceStatus + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DeploymentResourceStatus + /// the value to convert to an instance of . + + public static implicit operator DeploymentResourceStatus(string value) + { + return new DeploymentResourceStatus(value); + } + + /// Implicit operator to convert DeploymentResourceStatus to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus e) + { + return e._value; + } + + /// Overriding != operator for enum DeploymentResourceStatus + /// 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.AppPlatform.Support.DeploymentResourceStatus e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DeploymentResourceStatus + /// 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.AppPlatform.Support.DeploymentResourceStatus e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.Completer.cs b/swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.Completer.cs new file mode 100644 index 000000000000..db5fc067c112 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.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.AppPlatform.Support +{ + + /// State of the plugin + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureStateTypeConverter))] + public partial struct DevToolPortalFeatureState : + 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/appplatform/generated/api/Support/DevToolPortalFeatureState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.TypeConverter.cs new file mode 100644 index 000000000000..735f6ffec788 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.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.AppPlatform.Support +{ + + /// State of the plugin + public partial class DevToolPortalFeatureStateTypeConverter : + 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) => DevToolPortalFeatureState.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/appplatform/generated/api/Support/DevToolPortalFeatureState.cs b/swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.cs new file mode 100644 index 000000000000..49ffe2c029a1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DevToolPortalFeatureState.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.AppPlatform.Support +{ + + /// State of the plugin + public partial struct DevToolPortalFeatureState : + System.IEquatable + { + /// Disable the plugin in Dev Tool Portal. + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState Disabled = @"Disabled"; + + /// Enable the plugin in Dev Tool Portal. + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState Enabled = @"Enabled"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DevToolPortalFeatureState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DevToolPortalFeatureState(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private DevToolPortalFeatureState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DevToolPortalFeatureState + /// 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.AppPlatform.Support.DevToolPortalFeatureState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DevToolPortalFeatureState (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 DevToolPortalFeatureState && Equals((DevToolPortalFeatureState)obj); + } + + /// Returns hashCode for enum DevToolPortalFeatureState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DevToolPortalFeatureState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DevToolPortalFeatureState + /// the value to convert to an instance of . + + public static implicit operator DevToolPortalFeatureState(string value) + { + return new DevToolPortalFeatureState(value); + } + + /// Implicit operator to convert DevToolPortalFeatureState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState e) + { + return e._value; + } + + /// Overriding != operator for enum DevToolPortalFeatureState + /// 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.AppPlatform.Support.DevToolPortalFeatureState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DevToolPortalFeatureState + /// 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.AppPlatform.Support.DevToolPortalFeatureState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.Completer.cs new file mode 100644 index 000000000000..2f266b2b6d0d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.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.AppPlatform.Support +{ + + /// State of the Dev Tool Portal. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningStateTypeConverter))] + public partial struct DevToolPortalProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "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) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..368cf58d57dd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.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.AppPlatform.Support +{ + + /// State of the Dev Tool Portal. + public partial class DevToolPortalProvisioningStateTypeConverter : + 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) => DevToolPortalProvisioningState.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/appplatform/generated/api/Support/DevToolPortalProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.cs new file mode 100644 index 000000000000..ff30d8c07dbe --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DevToolPortalProvisioningState.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.AppPlatform.Support +{ + + /// State of the Dev Tool Portal. + public partial struct DevToolPortalProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to DevToolPortalProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DevToolPortalProvisioningState(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private DevToolPortalProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DevToolPortalProvisioningState + /// 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.AppPlatform.Support.DevToolPortalProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type DevToolPortalProvisioningState (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 DevToolPortalProvisioningState && Equals((DevToolPortalProvisioningState)obj); + } + + /// Returns hashCode for enum DevToolPortalProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DevToolPortalProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DevToolPortalProvisioningState + /// the value to convert to an instance of . + + public static implicit operator DevToolPortalProvisioningState(string value) + { + return new DevToolPortalProvisioningState(value); + } + + /// Implicit operator to convert DevToolPortalProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum DevToolPortalProvisioningState + /// 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.AppPlatform.Support.DevToolPortalProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DevToolPortalProvisioningState + /// 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.AppPlatform.Support.DevToolPortalProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.Completer.cs new file mode 100644 index 000000000000..5fc32dc31c9c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.Completer.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.AppPlatform.Support +{ + + /// State of the Spring Cloud Gateway. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningStateTypeConverter))] + public partial struct GatewayProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..f19209e57835 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.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.AppPlatform.Support +{ + + /// State of the Spring Cloud Gateway. + public partial class GatewayProvisioningStateTypeConverter : + 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) => GatewayProvisioningState.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/appplatform/generated/api/Support/GatewayProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.cs new file mode 100644 index 000000000000..c470deae8a33 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/GatewayProvisioningState.cs @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// State of the Spring Cloud Gateway. + public partial struct GatewayProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to GatewayProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new GatewayProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type GatewayProvisioningState + /// 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.AppPlatform.Support.GatewayProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type GatewayProvisioningState (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 GatewayProvisioningState && Equals((GatewayProvisioningState)obj); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private GatewayProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum GatewayProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for GatewayProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to GatewayProvisioningState + /// the value to convert to an instance of . + + public static implicit operator GatewayProvisioningState(string value) + { + return new GatewayProvisioningState(value); + } + + /// Implicit operator to convert GatewayProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum GatewayProvisioningState + /// 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.AppPlatform.Support.GatewayProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum GatewayProvisioningState + /// 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.AppPlatform.Support.GatewayProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.Completer.cs b/swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.Completer.cs new file mode 100644 index 000000000000..32daeb908178 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.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.AppPlatform.Support +{ + + /// Protocol of routed Azure Spring Apps applications. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocolTypeConverter))] + public partial struct GatewayRouteConfigProtocol : + 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) || "HTTP".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HTTP'", "HTTP", global::System.Management.Automation.CompletionResultType.ParameterValue, "HTTP"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "HTTPS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HTTPS'", "HTTPS", global::System.Management.Automation.CompletionResultType.ParameterValue, "HTTPS"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.TypeConverter.cs new file mode 100644 index 000000000000..e4a48ffd89c4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.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.AppPlatform.Support +{ + + /// Protocol of routed Azure Spring Apps applications. + public partial class GatewayRouteConfigProtocolTypeConverter : + 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) => GatewayRouteConfigProtocol.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/appplatform/generated/api/Support/GatewayRouteConfigProtocol.cs b/swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.cs new file mode 100644 index 000000000000..3759178de6ac --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/GatewayRouteConfigProtocol.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.AppPlatform.Support +{ + + /// Protocol of routed Azure Spring Apps applications. + public partial struct GatewayRouteConfigProtocol : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol Http = @"HTTP"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol Https = @"HTTPS"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to GatewayRouteConfigProtocol + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new GatewayRouteConfigProtocol(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type GatewayRouteConfigProtocol + /// 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.AppPlatform.Support.GatewayRouteConfigProtocol e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type GatewayRouteConfigProtocol (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 GatewayRouteConfigProtocol && Equals((GatewayRouteConfigProtocol)obj); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private GatewayRouteConfigProtocol(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum GatewayRouteConfigProtocol + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for GatewayRouteConfigProtocol + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to GatewayRouteConfigProtocol + /// the value to convert to an instance of . + + public static implicit operator GatewayRouteConfigProtocol(string value) + { + return new GatewayRouteConfigProtocol(value); + } + + /// Implicit operator to convert GatewayRouteConfigProtocol to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol e) + { + return e._value; + } + + /// Overriding != operator for enum GatewayRouteConfigProtocol + /// 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.AppPlatform.Support.GatewayRouteConfigProtocol e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum GatewayRouteConfigProtocol + /// 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.AppPlatform.Support.GatewayRouteConfigProtocol e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/HttpSchemeType.Completer.cs b/swaggerci/appplatform/generated/api/Support/HttpSchemeType.Completer.cs new file mode 100644 index 000000000000..fc43e1e20821 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/HttpSchemeType.Completer.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// + /// Scheme to use for connecting to the host. Defaults to HTTP. + /// Possible enum values: + /// - `"HTTP"` means that the scheme used will be http:// + /// - `"HTTPS"` means that the scheme used will be https:// + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeTypeTypeConverter))] + public partial struct HttpSchemeType : + 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) || "HTTP".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HTTP'", "HTTP", global::System.Management.Automation.CompletionResultType.ParameterValue, "HTTP"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "HTTPS".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HTTPS'", "HTTPS", global::System.Management.Automation.CompletionResultType.ParameterValue, "HTTPS"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/HttpSchemeType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/HttpSchemeType.TypeConverter.cs new file mode 100644 index 000000000000..2b3b10f57910 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/HttpSchemeType.TypeConverter.cs @@ -0,0 +1,64 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// + /// Scheme to use for connecting to the host. Defaults to HTTP. + /// Possible enum values: + /// - `"HTTP"` means that the scheme used will be http:// + /// - `"HTTPS"` means that the scheme used will be https:// + /// + public partial class HttpSchemeTypeTypeConverter : + 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) => HttpSchemeType.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/appplatform/generated/api/Support/HttpSchemeType.cs b/swaggerci/appplatform/generated/api/Support/HttpSchemeType.cs new file mode 100644 index 000000000000..f7dc97d98e85 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/HttpSchemeType.cs @@ -0,0 +1,103 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support +{ + + /// + /// Scheme to use for connecting to the host. Defaults to HTTP. + /// Possible enum values: + /// - `"HTTP"` means that the scheme used will be http:// + /// - `"HTTPS"` means that the scheme used will be https:// + /// + public partial struct HttpSchemeType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType Http = @"HTTP"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType Https = @"HTTPS"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to HttpSchemeType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new HttpSchemeType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type HttpSchemeType + /// 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.AppPlatform.Support.HttpSchemeType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type HttpSchemeType (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 HttpSchemeType && Equals((HttpSchemeType)obj); + } + + /// Returns hashCode for enum HttpSchemeType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private HttpSchemeType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for HttpSchemeType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to HttpSchemeType + /// the value to convert to an instance of . + + public static implicit operator HttpSchemeType(string value) + { + return new HttpSchemeType(value); + } + + /// Implicit operator to convert HttpSchemeType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType e) + { + return e._value; + } + + /// Overriding != operator for enum HttpSchemeType + /// 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.AppPlatform.Support.HttpSchemeType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum HttpSchemeType + /// 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.AppPlatform.Support.HttpSchemeType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.HttpSchemeType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.Completer.cs new file mode 100644 index 000000000000..2a2d50f70590 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.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.AppPlatform.Support +{ + + /// The provisioning state of this build stage resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningStateTypeConverter))] + public partial struct KPackBuildStageProvisioningState : + 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) || "NotStarted".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NotStarted'", "NotStarted", global::System.Management.Automation.CompletionResultType.ParameterValue, "NotStarted"); + } + 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) || "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"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..dde963e3bb4d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.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.AppPlatform.Support +{ + + /// The provisioning state of this build stage resource. + public partial class KPackBuildStageProvisioningStateTypeConverter : + 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) => KPackBuildStageProvisioningState.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/appplatform/generated/api/Support/KPackBuildStageProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.cs new file mode 100644 index 000000000000..6c36bf96649b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/KPackBuildStageProvisioningState.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.AppPlatform.Support +{ + + /// The provisioning state of this build stage resource. + public partial struct KPackBuildStageProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState NotStarted = @"NotStarted"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState Running = @"Running"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState Succeeded = @"Succeeded"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to KPackBuildStageProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new KPackBuildStageProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type KPackBuildStageProvisioningState + /// 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.AppPlatform.Support.KPackBuildStageProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type KPackBuildStageProvisioningState (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 KPackBuildStageProvisioningState && Equals((KPackBuildStageProvisioningState)obj); + } + + /// Returns hashCode for enum KPackBuildStageProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private KPackBuildStageProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for KPackBuildStageProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to KPackBuildStageProvisioningState + /// the value to convert to an instance of . + + public static implicit operator KPackBuildStageProvisioningState(string value) + { + return new KPackBuildStageProvisioningState(value); + } + + /// Implicit operator to convert KPackBuildStageProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum KPackBuildStageProvisioningState + /// 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.AppPlatform.Support.KPackBuildStageProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum KPackBuildStageProvisioningState + /// 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.AppPlatform.Support.KPackBuildStageProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.KPackBuildStageProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/LastModifiedByType.Completer.cs b/swaggerci/appplatform/generated/api/Support/LastModifiedByType.Completer.cs new file mode 100644 index 000000000000..78e7c3debabf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/LastModifiedByType.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.AppPlatform.Support +{ + + /// The type of identity that last modified the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByTypeTypeConverter))] + public partial struct LastModifiedByType : + 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/appplatform/generated/api/Support/LastModifiedByType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/LastModifiedByType.TypeConverter.cs new file mode 100644 index 000000000000..dbad26966c3f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/LastModifiedByType.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.AppPlatform.Support +{ + + /// The type of identity that last modified the resource. + public partial class LastModifiedByTypeTypeConverter : + 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) => LastModifiedByType.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/appplatform/generated/api/Support/LastModifiedByType.cs b/swaggerci/appplatform/generated/api/Support/LastModifiedByType.cs new file mode 100644 index 000000000000..6be8cd195db8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/LastModifiedByType.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.AppPlatform.Support +{ + + /// The type of identity that last modified the resource. + public partial struct LastModifiedByType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType Application = @"Application"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType Key = @"Key"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType ManagedIdentity = @"ManagedIdentity"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType User = @"User"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to LastModifiedByType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new LastModifiedByType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type LastModifiedByType + /// 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.AppPlatform.Support.LastModifiedByType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type LastModifiedByType (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 LastModifiedByType && Equals((LastModifiedByType)obj); + } + + /// Returns hashCode for enum LastModifiedByType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private LastModifiedByType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for LastModifiedByType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to LastModifiedByType + /// the value to convert to an instance of . + + public static implicit operator LastModifiedByType(string value) + { + return new LastModifiedByType(value); + } + + /// Implicit operator to convert LastModifiedByType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType e) + { + return e._value; + } + + /// Overriding != operator for enum LastModifiedByType + /// 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.AppPlatform.Support.LastModifiedByType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum LastModifiedByType + /// 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.AppPlatform.Support.LastModifiedByType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.LastModifiedByType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ManagedIdentityType.Completer.cs b/swaggerci/appplatform/generated/api/Support/ManagedIdentityType.Completer.cs new file mode 100644 index 000000000000..4a8387283c26 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ManagedIdentityType.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.AppPlatform.Support +{ + + /// Type of the managed identity + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityTypeTypeConverter))] + public partial struct ManagedIdentityType : + 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/appplatform/generated/api/Support/ManagedIdentityType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ManagedIdentityType.TypeConverter.cs new file mode 100644 index 000000000000..5ff27d936237 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ManagedIdentityType.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.AppPlatform.Support +{ + + /// Type of the managed identity + public partial class ManagedIdentityTypeTypeConverter : + 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) => ManagedIdentityType.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/appplatform/generated/api/Support/ManagedIdentityType.cs b/swaggerci/appplatform/generated/api/Support/ManagedIdentityType.cs new file mode 100644 index 000000000000..edd305380161 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ManagedIdentityType.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.AppPlatform.Support +{ + + /// Type of the managed identity + public partial struct ManagedIdentityType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType SystemAssigned = @"SystemAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType SystemAssignedUserAssigned = @"SystemAssigned,UserAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType UserAssigned = @"UserAssigned"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ManagedIdentityType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ManagedIdentityType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ManagedIdentityType + /// 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.AppPlatform.Support.ManagedIdentityType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ManagedIdentityType (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 ManagedIdentityType && Equals((ManagedIdentityType)obj); + } + + /// Returns hashCode for enum ManagedIdentityType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ManagedIdentityType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ManagedIdentityType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ManagedIdentityType + /// the value to convert to an instance of . + + public static implicit operator ManagedIdentityType(string value) + { + return new ManagedIdentityType(value); + } + + /// Implicit operator to convert ManagedIdentityType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType e) + { + return e._value; + } + + /// Overriding != operator for enum ManagedIdentityType + /// 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.AppPlatform.Support.ManagedIdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ManagedIdentityType + /// 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.AppPlatform.Support.ManagedIdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/MonitoringSettingState.Completer.cs b/swaggerci/appplatform/generated/api/Support/MonitoringSettingState.Completer.cs new file mode 100644 index 000000000000..13ef892d7050 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/MonitoringSettingState.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.AppPlatform.Support +{ + + /// State of the Monitoring Setting. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingStateTypeConverter))] + public partial struct MonitoringSettingState : + 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) || "NotAvailable".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NotAvailable'", "NotAvailable", global::System.Management.Automation.CompletionResultType.ParameterValue, "NotAvailable"); + } + 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) || "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) || "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/appplatform/generated/api/Support/MonitoringSettingState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/MonitoringSettingState.TypeConverter.cs new file mode 100644 index 000000000000..6750126b5c10 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/MonitoringSettingState.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.AppPlatform.Support +{ + + /// State of the Monitoring Setting. + public partial class MonitoringSettingStateTypeConverter : + 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) => MonitoringSettingState.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/appplatform/generated/api/Support/MonitoringSettingState.cs b/swaggerci/appplatform/generated/api/Support/MonitoringSettingState.cs new file mode 100644 index 000000000000..e0ffe6794f83 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/MonitoringSettingState.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.AppPlatform.Support +{ + + /// State of the Monitoring Setting. + public partial struct MonitoringSettingState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState NotAvailable = @"NotAvailable"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to MonitoringSettingState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new MonitoringSettingState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type MonitoringSettingState + /// 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.AppPlatform.Support.MonitoringSettingState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type MonitoringSettingState (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 MonitoringSettingState && Equals((MonitoringSettingState)obj); + } + + /// Returns hashCode for enum MonitoringSettingState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private MonitoringSettingState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for MonitoringSettingState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to MonitoringSettingState + /// the value to convert to an instance of . + + public static implicit operator MonitoringSettingState(string value) + { + return new MonitoringSettingState(value); + } + + /// Implicit operator to convert MonitoringSettingState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState e) + { + return e._value; + } + + /// Overriding != operator for enum MonitoringSettingState + /// 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.AppPlatform.Support.MonitoringSettingState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum MonitoringSettingState + /// 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.AppPlatform.Support.MonitoringSettingState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/PowerState.Completer.cs b/swaggerci/appplatform/generated/api/Support/PowerState.Completer.cs new file mode 100644 index 000000000000..802d020c4228 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PowerState.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.AppPlatform.Support +{ + + /// Power state of the Service + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerStateTypeConverter))] + public partial struct PowerState : + 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) || "Stopped".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Stopped'", "Stopped", global::System.Management.Automation.CompletionResultType.ParameterValue, "Stopped"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/PowerState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/PowerState.TypeConverter.cs new file mode 100644 index 000000000000..102a142e76d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PowerState.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.AppPlatform.Support +{ + + /// Power state of the Service + public partial class PowerStateTypeConverter : + 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) => PowerState.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/appplatform/generated/api/Support/PowerState.cs b/swaggerci/appplatform/generated/api/Support/PowerState.cs new file mode 100644 index 000000000000..9a45c66fac69 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PowerState.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.AppPlatform.Support +{ + + /// Power state of the Service + public partial struct PowerState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState Running = @"Running"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState Stopped = @"Stopped"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to PowerState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PowerState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PowerState + /// 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.AppPlatform.Support.PowerState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PowerState (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 PowerState && Equals((PowerState)obj); + } + + /// Returns hashCode for enum PowerState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private PowerState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PowerState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PowerState + /// the value to convert to an instance of . + + public static implicit operator PowerState(string value) + { + return new PowerState(value); + } + + /// Implicit operator to convert PowerState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState e) + { + return e._value; + } + + /// Overriding != operator for enum PowerState + /// 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.AppPlatform.Support.PowerState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PowerState + /// 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.AppPlatform.Support.PowerState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PowerState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.Completer.cs new file mode 100644 index 000000000000..15f9c720b1a4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the predefined accelerator. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningStateTypeConverter))] + public partial struct PredefinedAcceleratorProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..43b61773253f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the predefined accelerator. + public partial class PredefinedAcceleratorProvisioningStateTypeConverter : + 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) => PredefinedAcceleratorProvisioningState.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/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.cs new file mode 100644 index 000000000000..f0fc1296ae2d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the predefined accelerator. + public partial struct PredefinedAcceleratorProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PredefinedAcceleratorProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PredefinedAcceleratorProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PredefinedAcceleratorProvisioningState + /// 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.AppPlatform.Support.PredefinedAcceleratorProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PredefinedAcceleratorProvisioningState (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 PredefinedAcceleratorProvisioningState && Equals((PredefinedAcceleratorProvisioningState)obj); + } + + /// Returns hashCode for enum PredefinedAcceleratorProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private PredefinedAcceleratorProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PredefinedAcceleratorProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PredefinedAcceleratorProvisioningState + /// the value to convert to an instance of . + + public static implicit operator PredefinedAcceleratorProvisioningState(string value) + { + return new PredefinedAcceleratorProvisioningState(value); + } + + /// Implicit operator to convert PredefinedAcceleratorProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum PredefinedAcceleratorProvisioningState + /// 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.AppPlatform.Support.PredefinedAcceleratorProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PredefinedAcceleratorProvisioningState + /// 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.AppPlatform.Support.PredefinedAcceleratorProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.Completer.cs b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.Completer.cs new file mode 100644 index 000000000000..b47b126ac553 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.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.AppPlatform.Support +{ + + /// State of the predefined accelerator. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorStateTypeConverter))] + public partial struct PredefinedAcceleratorState : + 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/appplatform/generated/api/Support/PredefinedAcceleratorState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.TypeConverter.cs new file mode 100644 index 000000000000..1ac3b42aa459 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.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.AppPlatform.Support +{ + + /// State of the predefined accelerator. + public partial class PredefinedAcceleratorStateTypeConverter : + 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) => PredefinedAcceleratorState.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/appplatform/generated/api/Support/PredefinedAcceleratorState.cs b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.cs new file mode 100644 index 000000000000..361c10791086 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/PredefinedAcceleratorState.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.AppPlatform.Support +{ + + /// State of the predefined accelerator. + public partial struct PredefinedAcceleratorState : + System.IEquatable + { + /// Disable the predefined accelerator. + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState Disabled = @"Disabled"; + + /// Enable the predefined accelerator. + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState Enabled = @"Enabled"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PredefinedAcceleratorState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PredefinedAcceleratorState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PredefinedAcceleratorState + /// 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.AppPlatform.Support.PredefinedAcceleratorState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PredefinedAcceleratorState (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 PredefinedAcceleratorState && Equals((PredefinedAcceleratorState)obj); + } + + /// Returns hashCode for enum PredefinedAcceleratorState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private PredefinedAcceleratorState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PredefinedAcceleratorState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PredefinedAcceleratorState + /// the value to convert to an instance of . + + public static implicit operator PredefinedAcceleratorState(string value) + { + return new PredefinedAcceleratorState(value); + } + + /// Implicit operator to convert PredefinedAcceleratorState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState e) + { + return e._value; + } + + /// Overriding != operator for enum PredefinedAcceleratorState + /// 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.AppPlatform.Support.PredefinedAcceleratorState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PredefinedAcceleratorState + /// 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.AppPlatform.Support.PredefinedAcceleratorState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.PredefinedAcceleratorState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ProbeActionType.Completer.cs b/swaggerci/appplatform/generated/api/Support/ProbeActionType.Completer.cs new file mode 100644 index 000000000000..28660e13c2df --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ProbeActionType.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.AppPlatform.Support +{ + + /// The type of the action to take to perform the health check. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionTypeTypeConverter))] + public partial struct ProbeActionType : + 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) || "HTTPGetAction".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HTTPGetAction'", "HTTPGetAction", global::System.Management.Automation.CompletionResultType.ParameterValue, "HTTPGetAction"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "TCPSocketAction".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'TCPSocketAction'", "TCPSocketAction", global::System.Management.Automation.CompletionResultType.ParameterValue, "TCPSocketAction"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ExecAction".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ExecAction'", "ExecAction", global::System.Management.Automation.CompletionResultType.ParameterValue, "ExecAction"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ProbeActionType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ProbeActionType.TypeConverter.cs new file mode 100644 index 000000000000..d9eecc74b6e1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ProbeActionType.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.AppPlatform.Support +{ + + /// The type of the action to take to perform the health check. + public partial class ProbeActionTypeTypeConverter : + 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) => ProbeActionType.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/appplatform/generated/api/Support/ProbeActionType.cs b/swaggerci/appplatform/generated/api/Support/ProbeActionType.cs new file mode 100644 index 000000000000..5ba0bc766e5a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ProbeActionType.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.AppPlatform.Support +{ + + /// The type of the action to take to perform the health check. + public partial struct ProbeActionType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType ExecAction = @"ExecAction"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType HttpGetAction = @"HTTPGetAction"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType TcpSocketAction = @"TCPSocketAction"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ProbeActionType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ProbeActionType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ProbeActionType + /// 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.AppPlatform.Support.ProbeActionType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ProbeActionType (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 ProbeActionType && Equals((ProbeActionType)obj); + } + + /// Returns hashCode for enum ProbeActionType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private ProbeActionType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ProbeActionType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ProbeActionType + /// the value to convert to an instance of . + + public static implicit operator ProbeActionType(string value) + { + return new ProbeActionType(value); + } + + /// Implicit operator to convert ProbeActionType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType e) + { + return e._value; + } + + /// Overriding != operator for enum ProbeActionType + /// 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.AppPlatform.Support.ProbeActionType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ProbeActionType + /// 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.AppPlatform.Support.ProbeActionType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProbeActionType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ProvisioningState.Completer.cs new file mode 100644 index 000000000000..43687e415ad9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ProvisioningState.Completer.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.AppPlatform.Support +{ + + /// Provisioning state of the Service + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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) || "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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "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) || "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) || "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"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Moved".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Moved'", "Moved", global::System.Management.Automation.CompletionResultType.ParameterValue, "Moved"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "MoveFailed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'MoveFailed'", "MoveFailed", global::System.Management.Automation.CompletionResultType.ParameterValue, "MoveFailed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..62da8f00ae31 --- /dev/null +++ b/swaggerci/appplatform/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.AppPlatform.Support +{ + + /// Provisioning state of the Service + 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/appplatform/generated/api/Support/ProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/ProvisioningState.cs new file mode 100644 index 000000000000..f82e688d23f6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ProvisioningState.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.AppPlatform.Support +{ + + /// Provisioning state of the Service + public partial struct ProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Deleted = @"Deleted"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState MoveFailed = @"MoveFailed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Moved = @"Moved"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Moving = @"Moving"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Starting = @"Starting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Stopping = @"Stopping"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState Updating = @"Updating"; + + /// 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.AppPlatform.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 Enum class. + /// 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.AppPlatform.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.AppPlatform.Support.ProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Support.ProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.Completer.cs b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.Completer.cs new file mode 100644 index 000000000000..6fdcf5f45db6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.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.AppPlatform.Support +{ + + /// + /// Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription' + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCodeTypeConverter))] + public partial struct ResourceSkuRestrictionsReasonCode : + 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) || "QuotaId".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'QuotaId'", "QuotaId", global::System.Management.Automation.CompletionResultType.ParameterValue, "QuotaId"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NotAvailableForSubscription".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NotAvailableForSubscription'", "NotAvailableForSubscription", global::System.Management.Automation.CompletionResultType.ParameterValue, "NotAvailableForSubscription"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.TypeConverter.cs new file mode 100644 index 000000000000..ff56c10bada2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.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.AppPlatform.Support +{ + + /// + /// Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription' + /// + public partial class ResourceSkuRestrictionsReasonCodeTypeConverter : + 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) => ResourceSkuRestrictionsReasonCode.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/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.cs b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.cs new file mode 100644 index 000000000000..90a33521f9d5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsReasonCode.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.AppPlatform.Support +{ + + /// + /// Gets the reason for restriction. Possible values include: 'QuotaId', 'NotAvailableForSubscription' + /// + public partial struct ResourceSkuRestrictionsReasonCode : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode NotAvailableForSubscription = @"NotAvailableForSubscription"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode QuotaId = @"QuotaId"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to ResourceSkuRestrictionsReasonCode + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ResourceSkuRestrictionsReasonCode(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ResourceSkuRestrictionsReasonCode + /// 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.AppPlatform.Support.ResourceSkuRestrictionsReasonCode e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ResourceSkuRestrictionsReasonCode (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 ResourceSkuRestrictionsReasonCode && Equals((ResourceSkuRestrictionsReasonCode)obj); + } + + /// Returns hashCode for enum ResourceSkuRestrictionsReasonCode + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ResourceSkuRestrictionsReasonCode(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ResourceSkuRestrictionsReasonCode + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ResourceSkuRestrictionsReasonCode + /// the value to convert to an instance of . + + public static implicit operator ResourceSkuRestrictionsReasonCode(string value) + { + return new ResourceSkuRestrictionsReasonCode(value); + } + + /// Implicit operator to convert ResourceSkuRestrictionsReasonCode to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode e) + { + return e._value; + } + + /// Overriding != operator for enum ResourceSkuRestrictionsReasonCode + /// 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.AppPlatform.Support.ResourceSkuRestrictionsReasonCode e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ResourceSkuRestrictionsReasonCode + /// 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.AppPlatform.Support.ResourceSkuRestrictionsReasonCode e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.Completer.cs b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.Completer.cs new file mode 100644 index 000000000000..5e2d0c89eb96 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.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.AppPlatform.Support +{ + + /// Gets the type of restrictions. Possible values include: 'Location', 'Zone' + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsTypeTypeConverter))] + public partial struct ResourceSkuRestrictionsType : + 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) || "Location".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Location'", "Location", global::System.Management.Automation.CompletionResultType.ParameterValue, "Location"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Zone".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Zone'", "Zone", global::System.Management.Automation.CompletionResultType.ParameterValue, "Zone"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.TypeConverter.cs new file mode 100644 index 000000000000..27e15360d1a1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.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.AppPlatform.Support +{ + + /// Gets the type of restrictions. Possible values include: 'Location', 'Zone' + public partial class ResourceSkuRestrictionsTypeTypeConverter : + 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) => ResourceSkuRestrictionsType.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/appplatform/generated/api/Support/ResourceSkuRestrictionsType.cs b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.cs new file mode 100644 index 000000000000..39789783f434 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ResourceSkuRestrictionsType.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.AppPlatform.Support +{ + + /// Gets the type of restrictions. Possible values include: 'Location', 'Zone' + public partial struct ResourceSkuRestrictionsType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType Location = @"Location"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType Zone = @"Zone"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to ResourceSkuRestrictionsType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ResourceSkuRestrictionsType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ResourceSkuRestrictionsType + /// 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.AppPlatform.Support.ResourceSkuRestrictionsType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ResourceSkuRestrictionsType (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 ResourceSkuRestrictionsType && Equals((ResourceSkuRestrictionsType)obj); + } + + /// Returns hashCode for enum ResourceSkuRestrictionsType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ResourceSkuRestrictionsType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ResourceSkuRestrictionsType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ResourceSkuRestrictionsType + /// the value to convert to an instance of . + + public static implicit operator ResourceSkuRestrictionsType(string value) + { + return new ResourceSkuRestrictionsType(value); + } + + /// Implicit operator to convert ResourceSkuRestrictionsType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType e) + { + return e._value; + } + + /// Overriding != operator for enum ResourceSkuRestrictionsType + /// 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.AppPlatform.Support.ResourceSkuRestrictionsType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ResourceSkuRestrictionsType + /// 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.AppPlatform.Support.ResourceSkuRestrictionsType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.Completer.cs new file mode 100644 index 000000000000..56f24b9e670d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.Completer.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.AppPlatform.Support +{ + + /// State of the Service Registry. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningStateTypeConverter))] + public partial struct ServiceRegistryProvisioningState : + 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) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + 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) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..43176c91e7f8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.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.AppPlatform.Support +{ + + /// State of the Service Registry. + public partial class ServiceRegistryProvisioningStateTypeConverter : + 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) => ServiceRegistryProvisioningState.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/appplatform/generated/api/Support/ServiceRegistryProvisioningState.cs b/swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.cs new file mode 100644 index 000000000000..caa8b3640316 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ServiceRegistryProvisioningState.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.AppPlatform.Support +{ + + /// State of the Service Registry. + public partial struct ServiceRegistryProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to ServiceRegistryProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ServiceRegistryProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ServiceRegistryProvisioningState + /// 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.AppPlatform.Support.ServiceRegistryProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type ServiceRegistryProvisioningState (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 ServiceRegistryProvisioningState && Equals((ServiceRegistryProvisioningState)obj); + } + + /// Returns hashCode for enum ServiceRegistryProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// + /// Creates an instance of the Enum class. + /// + /// the value to create an instance for. + private ServiceRegistryProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ServiceRegistryProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ServiceRegistryProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ServiceRegistryProvisioningState(string value) + { + return new ServiceRegistryProvisioningState(value); + } + + /// Implicit operator to convert ServiceRegistryProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ServiceRegistryProvisioningState + /// 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.AppPlatform.Support.ServiceRegistryProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ServiceRegistryProvisioningState + /// 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.AppPlatform.Support.ServiceRegistryProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ServiceRegistryProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/SessionAffinity.Completer.cs b/swaggerci/appplatform/generated/api/Support/SessionAffinity.Completer.cs new file mode 100644 index 000000000000..c8389b6254ec --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SessionAffinity.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.AppPlatform.Support +{ + + /// Type of the affinity, set this to Cookie to enable session affinity. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinityTypeConverter))] + public partial struct SessionAffinity : + 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) || "Cookie".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Cookie'", "Cookie", global::System.Management.Automation.CompletionResultType.ParameterValue, "Cookie"); + } + 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/appplatform/generated/api/Support/SessionAffinity.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/SessionAffinity.TypeConverter.cs new file mode 100644 index 000000000000..10a333492061 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SessionAffinity.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.AppPlatform.Support +{ + + /// Type of the affinity, set this to Cookie to enable session affinity. + public partial class SessionAffinityTypeConverter : + 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) => SessionAffinity.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/appplatform/generated/api/Support/SessionAffinity.cs b/swaggerci/appplatform/generated/api/Support/SessionAffinity.cs new file mode 100644 index 000000000000..1941dacaa904 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SessionAffinity.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.AppPlatform.Support +{ + + /// Type of the affinity, set this to Cookie to enable session affinity. + public partial struct SessionAffinity : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity Cookie = @"Cookie"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity None = @"None"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SessionAffinity + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SessionAffinity(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SessionAffinity + /// 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.AppPlatform.Support.SessionAffinity e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SessionAffinity (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 SessionAffinity && Equals((SessionAffinity)obj); + } + + /// Returns hashCode for enum SessionAffinity + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private SessionAffinity(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SessionAffinity + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SessionAffinity + /// the value to convert to an instance of . + + public static implicit operator SessionAffinity(string value) + { + return new SessionAffinity(value); + } + + /// Implicit operator to convert SessionAffinity to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity e) + { + return e._value; + } + + /// Overriding != operator for enum SessionAffinity + /// 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.AppPlatform.Support.SessionAffinity e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SessionAffinity + /// 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.AppPlatform.Support.SessionAffinity e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/SkuScaleType.Completer.cs b/swaggerci/appplatform/generated/api/Support/SkuScaleType.Completer.cs new file mode 100644 index 000000000000..573e08463187 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SkuScaleType.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.AppPlatform.Support +{ + + /// Gets or sets the type of the scale. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleTypeTypeConverter))] + public partial struct SkuScaleType : + 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) || "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) || "Automatic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Automatic'", "Automatic", global::System.Management.Automation.CompletionResultType.ParameterValue, "Automatic"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/SkuScaleType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/SkuScaleType.TypeConverter.cs new file mode 100644 index 000000000000..526df0fd7c2f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SkuScaleType.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.AppPlatform.Support +{ + + /// Gets or sets the type of the scale. + public partial class SkuScaleTypeTypeConverter : + 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) => SkuScaleType.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/appplatform/generated/api/Support/SkuScaleType.cs b/swaggerci/appplatform/generated/api/Support/SkuScaleType.cs new file mode 100644 index 000000000000..71786f6a903f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SkuScaleType.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.AppPlatform.Support +{ + + /// Gets or sets the type of the scale. + public partial struct SkuScaleType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType Automatic = @"Automatic"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType Manual = @"Manual"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType None = @"None"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SkuScaleType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SkuScaleType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SkuScaleType + /// 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.AppPlatform.Support.SkuScaleType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SkuScaleType (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 SkuScaleType && Equals((SkuScaleType)obj); + } + + /// Returns hashCode for enum SkuScaleType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private SkuScaleType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SkuScaleType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SkuScaleType + /// the value to convert to an instance of . + + public static implicit operator SkuScaleType(string value) + { + return new SkuScaleType(value); + } + + /// Implicit operator to convert SkuScaleType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType e) + { + return e._value; + } + + /// Overriding != operator for enum SkuScaleType + /// 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.AppPlatform.Support.SkuScaleType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SkuScaleType + /// 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.AppPlatform.Support.SkuScaleType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.Completer.cs b/swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.Completer.cs new file mode 100644 index 000000000000..d45c604a463f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.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.AppPlatform.Support +{ + + /// The platform of this runtime version (possible values: "Java" or ".NET"). + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatformTypeConverter))] + public partial struct SupportedRuntimePlatform : + 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) || "Java".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Java'", "Java", global::System.Management.Automation.CompletionResultType.ParameterValue, "Java"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || ".NET Core".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'.NET Core'", ".NET Core", global::System.Management.Automation.CompletionResultType.ParameterValue, ".NET Core"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.TypeConverter.cs new file mode 100644 index 000000000000..a87821c09b89 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.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.AppPlatform.Support +{ + + /// The platform of this runtime version (possible values: "Java" or ".NET"). + public partial class SupportedRuntimePlatformTypeConverter : + 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) => SupportedRuntimePlatform.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/appplatform/generated/api/Support/SupportedRuntimePlatform.cs b/swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.cs new file mode 100644 index 000000000000..343af2818eda --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SupportedRuntimePlatform.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.AppPlatform.Support +{ + + /// The platform of this runtime version (possible values: "Java" or ".NET"). + public partial struct SupportedRuntimePlatform : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform Java = @"Java"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform NetCore = @".NET Core"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SupportedRuntimePlatform + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SupportedRuntimePlatform(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SupportedRuntimePlatform + /// 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.AppPlatform.Support.SupportedRuntimePlatform e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SupportedRuntimePlatform (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 SupportedRuntimePlatform && Equals((SupportedRuntimePlatform)obj); + } + + /// Returns hashCode for enum SupportedRuntimePlatform + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private SupportedRuntimePlatform(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SupportedRuntimePlatform + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SupportedRuntimePlatform + /// the value to convert to an instance of . + + public static implicit operator SupportedRuntimePlatform(string value) + { + return new SupportedRuntimePlatform(value); + } + + /// Implicit operator to convert SupportedRuntimePlatform to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform e) + { + return e._value; + } + + /// Overriding != operator for enum SupportedRuntimePlatform + /// 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.AppPlatform.Support.SupportedRuntimePlatform e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SupportedRuntimePlatform + /// 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.AppPlatform.Support.SupportedRuntimePlatform e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.Completer.cs b/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.Completer.cs new file mode 100644 index 000000000000..9ea530f3fec0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.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.AppPlatform.Support +{ + + /// The raw value which could be passed to deployment CRUD operations. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValueTypeConverter))] + public partial struct SupportedRuntimeValue : + 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) || "Java_8".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Java_8'", "Java_8", global::System.Management.Automation.CompletionResultType.ParameterValue, "Java_8"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Java_11".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Java_11'", "Java_11", global::System.Management.Automation.CompletionResultType.ParameterValue, "Java_11"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Java_17".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Java_17'", "Java_17", global::System.Management.Automation.CompletionResultType.ParameterValue, "Java_17"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NetCore_31".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NetCore_31'", "NetCore_31", global::System.Management.Automation.CompletionResultType.ParameterValue, "NetCore_31"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.TypeConverter.cs new file mode 100644 index 000000000000..b9ad8c1681f3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.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.AppPlatform.Support +{ + + /// The raw value which could be passed to deployment CRUD operations. + public partial class SupportedRuntimeValueTypeConverter : + 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) => SupportedRuntimeValue.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/appplatform/generated/api/Support/SupportedRuntimeValue.cs b/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.cs new file mode 100644 index 000000000000..5242b444d137 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.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.AppPlatform.Support +{ + + /// The raw value which could be passed to deployment CRUD operations. + public partial struct SupportedRuntimeValue : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue Java11 = @"Java_11"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue Java17 = @"Java_17"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue Java8 = @"Java_8"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue NetCore31 = @"NetCore_31"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to SupportedRuntimeValue + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new SupportedRuntimeValue(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type SupportedRuntimeValue + /// 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.AppPlatform.Support.SupportedRuntimeValue e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type SupportedRuntimeValue (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 SupportedRuntimeValue && Equals((SupportedRuntimeValue)obj); + } + + /// Returns hashCode for enum SupportedRuntimeValue + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private SupportedRuntimeValue(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for SupportedRuntimeValue + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to SupportedRuntimeValue + /// the value to convert to an instance of . + + public static implicit operator SupportedRuntimeValue(string value) + { + return new SupportedRuntimeValue(value); + } + + /// Implicit operator to convert SupportedRuntimeValue to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue e) + { + return e._value; + } + + /// Overriding != operator for enum SupportedRuntimeValue + /// 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.AppPlatform.Support.SupportedRuntimeValue e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum SupportedRuntimeValue + /// 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.AppPlatform.Support.SupportedRuntimeValue e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/TestKeyType.Completer.cs b/swaggerci/appplatform/generated/api/Support/TestKeyType.Completer.cs new file mode 100644 index 000000000000..13b686dc588b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/TestKeyType.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.AppPlatform.Support +{ + + /// Type of the test key + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyTypeTypeConverter))] + public partial struct TestKeyType : + 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) || "Primary".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Primary'", "Primary", global::System.Management.Automation.CompletionResultType.ParameterValue, "Primary"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Secondary".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Secondary'", "Secondary", global::System.Management.Automation.CompletionResultType.ParameterValue, "Secondary"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/TestKeyType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/TestKeyType.TypeConverter.cs new file mode 100644 index 000000000000..3e3d20e40400 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/TestKeyType.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.AppPlatform.Support +{ + + /// Type of the test key + public partial class TestKeyTypeTypeConverter : + 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) => TestKeyType.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/appplatform/generated/api/Support/TestKeyType.cs b/swaggerci/appplatform/generated/api/Support/TestKeyType.cs new file mode 100644 index 000000000000..b6cca05f28f8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/TestKeyType.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.AppPlatform.Support +{ + + /// Type of the test key + public partial struct TestKeyType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType Primary = @"Primary"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType Secondary = @"Secondary"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to TestKeyType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new TestKeyType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type TestKeyType + /// 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.AppPlatform.Support.TestKeyType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type TestKeyType (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 TestKeyType && Equals((TestKeyType)obj); + } + + /// Returns hashCode for enum TestKeyType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private TestKeyType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for TestKeyType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to TestKeyType + /// the value to convert to an instance of . + + public static implicit operator TestKeyType(string value) + { + return new TestKeyType(value); + } + + /// Implicit operator to convert TestKeyType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType e) + { + return e._value; + } + + /// Overriding != operator for enum TestKeyType + /// 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.AppPlatform.Support.TestKeyType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum TestKeyType + /// 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.AppPlatform.Support.TestKeyType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/TrafficDirection.Completer.cs b/swaggerci/appplatform/generated/api/Support/TrafficDirection.Completer.cs new file mode 100644 index 000000000000..42019d387f0d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/TrafficDirection.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.AppPlatform.Support +{ + + /// The direction of required traffic + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirectionTypeConverter))] + public partial struct TrafficDirection : + 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) || "Inbound".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Inbound'", "Inbound", global::System.Management.Automation.CompletionResultType.ParameterValue, "Inbound"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Outbound".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Outbound'", "Outbound", global::System.Management.Automation.CompletionResultType.ParameterValue, "Outbound"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/TrafficDirection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/TrafficDirection.TypeConverter.cs new file mode 100644 index 000000000000..4495bd860f1b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/TrafficDirection.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.AppPlatform.Support +{ + + /// The direction of required traffic + public partial class TrafficDirectionTypeConverter : + 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) => TrafficDirection.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/appplatform/generated/api/Support/TrafficDirection.cs b/swaggerci/appplatform/generated/api/Support/TrafficDirection.cs new file mode 100644 index 000000000000..3b5d6765b0a4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/TrafficDirection.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.AppPlatform.Support +{ + + /// The direction of required traffic + public partial struct TrafficDirection : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection Inbound = @"Inbound"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection Outbound = @"Outbound"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to TrafficDirection + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new TrafficDirection(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type TrafficDirection + /// 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.AppPlatform.Support.TrafficDirection e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type TrafficDirection (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 TrafficDirection && Equals((TrafficDirection)obj); + } + + /// Returns hashCode for enum TrafficDirection + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for TrafficDirection + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Creates an instance of the Enum class. + /// the value to create an instance for. + private TrafficDirection(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to TrafficDirection + /// the value to convert to an instance of . + + public static implicit operator TrafficDirection(string value) + { + return new TrafficDirection(value); + } + + /// Implicit operator to convert TrafficDirection to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection e) + { + return e._value; + } + + /// Overriding != operator for enum TrafficDirection + /// 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.AppPlatform.Support.TrafficDirection e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum TrafficDirection + /// 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.AppPlatform.Support.TrafficDirection e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformDeploymentRemoteDebugging_Disable.cs b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformDeploymentRemoteDebugging_Disable.cs new file mode 100644 index 000000000000..52add9638369 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformDeploymentRemoteDebugging_Disable.cs @@ -0,0 +1,505 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable remote debugging. + /// + /// [OpenAPI] DisableRemoteDebugging=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/disableRemoteDebugging" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Disable, @"AzAppPlatformDeploymentRemoteDebugging_Disable", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable remote debugging.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class DisableAzAppPlatformDeploymentRemoteDebugging_Disable : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of DisableAzAppPlatformDeploymentRemoteDebugging_Disable + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.DisableAzAppPlatformDeploymentRemoteDebugging_Disable Clone() + { + var clone = new DisableAzAppPlatformDeploymentRemoteDebugging_Disable(); + 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.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + return clone; + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public DisableAzAppPlatformDeploymentRemoteDebugging_Disable() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsDisableRemoteDebugging' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsDisableRemoteDebugging(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity.cs new file mode 100644 index 000000000000..92d0c29bac95 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity.cs @@ -0,0 +1,459 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable remote debugging. + /// + /// [OpenAPI] DisableRemoteDebugging=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/disableRemoteDebugging" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Disable, @"AzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable remote debugging.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity Clone() + { + var clone = new DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity(); + 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; + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public DisableAzAppPlatformDeploymentRemoteDebugging_DisableViaIdentity() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsDisableRemoteDebugging' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsDisableRemoteDebuggingViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsDisableRemoteDebugging(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformPredefinedAccelerator_Disable.cs b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformPredefinedAccelerator_Disable.cs new file mode 100644 index 000000000000..9a08dd90edac --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformPredefinedAccelerator_Disable.cs @@ -0,0 +1,511 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable predefined accelerator. + /// + /// [OpenAPI] Disable=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}/disable" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Disable, @"AzAppPlatformPredefinedAccelerator_Disable", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable predefined accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class DisableAzAppPlatformPredefinedAccelerator_Disable : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the predefined accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the predefined accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the predefined accelerator.", + SerializedName = @"predefinedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PredefinedAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of DisableAzAppPlatformPredefinedAccelerator_Disable + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.DisableAzAppPlatformPredefinedAccelerator_Disable Clone() + { + var clone = new DisableAzAppPlatformPredefinedAccelerator_Disable(); + 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.ServiceName = this.ServiceName; + clone.ApplicationAcceleratorName = this.ApplicationAcceleratorName; + clone.Name = this.Name; + return clone; + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public DisableAzAppPlatformPredefinedAccelerator_Disable() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PredefinedAcceleratorsDisable' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PredefinedAcceleratorsDisable(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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. + /// + /// 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/appplatform/generated/cmdlets/DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity.cs new file mode 100644 index 000000000000..d571ff552106 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable predefined accelerator. + /// + /// [OpenAPI] Disable=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}/disable" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Disable, @"AzAppPlatformPredefinedAccelerator_DisableViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable predefined accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity Clone() + { + var clone = new DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity(); + 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; + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public DisableAzAppPlatformPredefinedAccelerator_DisableViaIdentity() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PredefinedAcceleratorsDisable' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PredefinedAcceleratorsDisableViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PredefinedAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PredefinedAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PredefinedAcceleratorsDisable(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, InputObject.PredefinedAcceleratorName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_Disable.cs b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_Disable.cs new file mode 100644 index 000000000000..34a0f6ab3ef1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_Disable.cs @@ -0,0 +1,414 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable test endpoint functionality for a Service. + /// + /// [OpenAPI] DisableTestEndpoint=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/disableTestEndpoint" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Disable, @"AzAppPlatformServiceTestEndpoint_Disable", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable test endpoint functionality for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class DisableAzAppPlatformServiceTestEndpoint_Disable : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public DisableAzAppPlatformServiceTestEndpoint_Disable() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesDisableTestEndpoint' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesDisableTestEndpoint(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_DisableViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_DisableViaIdentity.cs new file mode 100644 index 000000000000..f18213f64ec0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_DisableViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable test endpoint functionality for a Service. + /// + /// [OpenAPI] DisableTestEndpoint=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/disableTestEndpoint" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Disable, @"AzAppPlatformServiceTestEndpoint_DisableViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable test endpoint functionality for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class DisableAzAppPlatformServiceTestEndpoint_DisableViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public DisableAzAppPlatformServiceTestEndpoint_DisableViaIdentity() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesDisableTestEndpoint' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesDisableTestEndpointViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesDisableTestEndpoint(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_Enable.cs b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_Enable.cs new file mode 100644 index 000000000000..43f77d5d46d6 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_Enable.cs @@ -0,0 +1,519 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Enable remote debugging. + /// + /// [OpenAPI] EnableRemoteDebugging=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/enableRemoteDebugging" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Enable, @"AzAppPlatformDeploymentRemoteDebugging_Enable", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Enable remote debugging.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class EnableAzAppPlatformDeploymentRemoteDebugging_Enable : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload _remoteDebuggingPayload; + + /// Remote debugging payload. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Remote debugging payload.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Remote debugging payload.", + SerializedName = @"remoteDebuggingPayload", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload RemoteDebuggingPayload { get => this._remoteDebuggingPayload; set => this._remoteDebuggingPayload = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of EnableAzAppPlatformDeploymentRemoteDebugging_Enable + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.EnableAzAppPlatformDeploymentRemoteDebugging_Enable Clone() + { + var clone = new EnableAzAppPlatformDeploymentRemoteDebugging_Enable(); + 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.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + clone.RemoteDebuggingPayload = this.RemoteDebuggingPayload; + return clone; + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public EnableAzAppPlatformDeploymentRemoteDebugging_Enable() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsEnableRemoteDebugging' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsEnableRemoteDebugging(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, RemoteDebuggingPayload, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName,body=RemoteDebuggingPayload}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=RemoteDebuggingPayload }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=RemoteDebuggingPayload }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded.cs b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded.cs new file mode 100644 index 000000000000..33ef847f9d94 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Enable remote debugging. + /// + /// [OpenAPI] EnableRemoteDebugging=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/enableRemoteDebugging" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Enable, @"AzAppPlatformDeploymentRemoteDebugging_EnableExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Enable remote debugging.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Remote debugging payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload _remoteDebuggingPayloadBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebuggingPayload(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.HttpPipeline Pipeline { get; set; } + + /// Application debugging port. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application debugging port.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application debugging port.", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + public int Port { get => _remoteDebuggingPayloadBody.Port ?? default(int); set => _remoteDebuggingPayloadBody.Port = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded Clone() + { + var clone = new EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded(); + 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._remoteDebuggingPayloadBody = this._remoteDebuggingPayloadBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + return clone; + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public EnableAzAppPlatformDeploymentRemoteDebugging_EnableExpanded() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsEnableRemoteDebugging' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsEnableRemoteDebugging(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, _remoteDebuggingPayloadBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName,body=_remoteDebuggingPayloadBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=_remoteDebuggingPayloadBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=_remoteDebuggingPayloadBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity.cs new file mode 100644 index 000000000000..6defc02788ce --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity.cs @@ -0,0 +1,473 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Enable remote debugging. + /// + /// [OpenAPI] EnableRemoteDebugging=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/enableRemoteDebugging" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Enable, @"AzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Enable remote debugging.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload _remoteDebuggingPayload; + + /// Remote debugging payload. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Remote debugging payload.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Remote debugging payload.", + SerializedName = @"remoteDebuggingPayload", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload RemoteDebuggingPayload { get => this._remoteDebuggingPayload; set => this._remoteDebuggingPayload = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity Clone() + { + var clone = new EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity(); + 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.RemoteDebuggingPayload = this.RemoteDebuggingPayload; + return clone; + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentity() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsEnableRemoteDebugging' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsEnableRemoteDebuggingViaIdentity(InputObject.Id, RemoteDebuggingPayload, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsEnableRemoteDebugging(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, RemoteDebuggingPayload, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RemoteDebuggingPayload}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RemoteDebuggingPayload }) + { + 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=RemoteDebuggingPayload }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded.cs new file mode 100644 index 000000000000..89a9a2d41b80 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Enable remote debugging. + /// + /// [OpenAPI] EnableRemoteDebugging=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/enableRemoteDebugging" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Enable, @"AzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Enable remote debugging.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Remote debugging payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebuggingPayload _remoteDebuggingPayloadBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RemoteDebuggingPayload(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.HttpPipeline Pipeline { get; set; } + + /// Application debugging port. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Application debugging port.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Application debugging port.", + SerializedName = @"port", + PossibleTypes = new [] { typeof(int) })] + public int Port { get => _remoteDebuggingPayloadBody.Port ?? default(int); set => _remoteDebuggingPayloadBody.Port = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded Clone() + { + var clone = new EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded(); + 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._remoteDebuggingPayloadBody = this._remoteDebuggingPayloadBody; + return clone; + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public EnableAzAppPlatformDeploymentRemoteDebugging_EnableViaIdentityExpanded() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsEnableRemoteDebugging' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsEnableRemoteDebuggingViaIdentity(InputObject.Id, _remoteDebuggingPayloadBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsEnableRemoteDebugging(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, _remoteDebuggingPayloadBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_remoteDebuggingPayloadBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_remoteDebuggingPayloadBody }) + { + 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=_remoteDebuggingPayloadBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformPredefinedAccelerator_Enable.cs b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformPredefinedAccelerator_Enable.cs new file mode 100644 index 000000000000..cc8b65bf5e54 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformPredefinedAccelerator_Enable.cs @@ -0,0 +1,511 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Enable predefined accelerator. + /// + /// [OpenAPI] Enable=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}/enable" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Enable, @"AzAppPlatformPredefinedAccelerator_Enable", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Enable predefined accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class EnableAzAppPlatformPredefinedAccelerator_Enable : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the predefined accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the predefined accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the predefined accelerator.", + SerializedName = @"predefinedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PredefinedAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of EnableAzAppPlatformPredefinedAccelerator_Enable + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.EnableAzAppPlatformPredefinedAccelerator_Enable Clone() + { + var clone = new EnableAzAppPlatformPredefinedAccelerator_Enable(); + 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.ServiceName = this.ServiceName; + clone.ApplicationAcceleratorName = this.ApplicationAcceleratorName; + clone.Name = this.Name; + return clone; + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public EnableAzAppPlatformPredefinedAccelerator_Enable() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PredefinedAcceleratorsEnable' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PredefinedAcceleratorsEnable(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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. + /// + /// 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/appplatform/generated/cmdlets/EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity.cs new file mode 100644 index 000000000000..f97f51dadaed --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Enable predefined accelerator. + /// + /// [OpenAPI] Enable=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}/enable" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Enable, @"AzAppPlatformPredefinedAccelerator_EnableViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Enable predefined accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity Clone() + { + var clone = new EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity(); + 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; + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public EnableAzAppPlatformPredefinedAccelerator_EnableViaIdentity() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PredefinedAcceleratorsEnable' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PredefinedAcceleratorsEnableViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PredefinedAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PredefinedAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PredefinedAcceleratorsEnable(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, InputObject.PredefinedAcceleratorName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_Enable.cs b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_Enable.cs new file mode 100644 index 000000000000..05e101128b35 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_Enable.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Enable test endpoint functionality for a Service. + /// + /// [OpenAPI] EnableTestEndpoint=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/enableTestEndpoint" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Enable, @"AzAppPlatformServiceTestEndpoint_Enable", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Enable test endpoint functionality for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class EnableAzAppPlatformServiceTestEndpoint_Enable : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public EnableAzAppPlatformServiceTestEndpoint_Enable() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesEnableTestEndpoint' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesEnableTestEndpoint(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_EnableViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_EnableViaIdentity.cs new file mode 100644 index 000000000000..b15c46fb5724 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_EnableViaIdentity.cs @@ -0,0 +1,385 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Enable test endpoint functionality for a Service. + /// + /// [OpenAPI] EnableTestEndpoint=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/enableTestEndpoint" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Enable, @"AzAppPlatformServiceTestEndpoint_EnableViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Enable test endpoint functionality for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class EnableAzAppPlatformServiceTestEndpoint_EnableViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public EnableAzAppPlatformServiceTestEndpoint_EnableViaIdentity() + { + + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesEnableTestEndpoint' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesEnableTestEndpointViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesEnableTestEndpoint(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_Get.cs new file mode 100644 index 000000000000..d7c7c5c65587 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the API portal custom domain. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApiPortalCustomDomain_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the API portal custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApiPortalCustomDomain_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _apiPortalName; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApiPortalName { get => this._apiPortalName; set => this._apiPortalName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the API portal custom domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the API portal custom domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the API portal custom domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApiPortalCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalCustomDomainsGet(SubscriptionId, ResourceGroupName, ServiceName, ApiPortalName, DomainName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApiPortalName=ApiPortalName,DomainName=DomainName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, DomainName=DomainName }) + { + 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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, DomainName=DomainName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_GetViaIdentity.cs new file mode 100644 index 000000000000..ffb4cc4c58ba --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the API portal custom domain. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApiPortalCustomDomain_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the API portal custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApiPortalCustomDomain_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApiPortalCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApiPortalCustomDomainsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApiPortalName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApiPortalName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApiPortalCustomDomainsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApiPortalName ?? null, InputObject.DomainName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_List.cs new file mode 100644 index 000000000000..524ed7a5907f --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortalCustomDomain_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handle requests to list all API portal custom domains. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApiPortalCustomDomain_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handle requests to list all API portal custom domains.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApiPortalCustomDomain_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Backing field for property. + private string _apiPortalName; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApiPortalName { get => this._apiPortalName; set => this._apiPortalName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApiPortalCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalCustomDomainsList(SubscriptionId, ResourceGroupName, ServiceName, ApiPortalName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApiPortalName=ApiPortalName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApiPortalName=ApiPortalName }) + { + 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, ServiceName=ServiceName, ApiPortalName=ApiPortalName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalCustomDomainsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_Get.cs new file mode 100644 index 000000000000..1a102fc5ce2a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the API portal and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApiPortal_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the API portal and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApiPortal_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApiPortalName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApiPortal_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalsGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_GetViaIdentity.cs new file mode 100644 index 000000000000..f575c95543f9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the API portal and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApiPortal_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the API portal and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApiPortal_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApiPortal_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApiPortalsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApiPortalName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApiPortalName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApiPortalsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApiPortalName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_List.cs new file mode 100644 index 000000000000..53e6541909c0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApiPortal_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a Service. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApiPortal_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApiPortal_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApiPortal_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalsList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_Get.cs new file mode 100644 index 000000000000..bb9f550bbdeb --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_Get.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Get an resource upload URL for an App, which may be artifacts or source archive. + /// + /// + /// [OpenAPI] GetResourceUploadUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/getResourceUploadUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformAppResourceUploadUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get an resource upload URL for an App, which may be artifacts or source archive.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformAppResourceUploadUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformAppResourceUploadUrl_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsGetResourceUploadUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsGetResourceUploadUrl(SubscriptionId, ResourceGroupName, ServiceName, AppName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName }) + { + 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, ServiceName=ServiceName, AppName=AppName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + /// 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.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..cd424d2fd53a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_GetViaIdentity.cs @@ -0,0 +1,391 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Get an resource upload URL for an App, which may be artifacts or source archive. + /// + /// + /// [OpenAPI] GetResourceUploadUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/getResourceUploadUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformAppResourceUploadUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get an resource upload URL for an App, which may be artifacts or source archive.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformAppResourceUploadUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformAppResourceUploadUrl_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsGetResourceUploadUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AppsGetResourceUploadUrlViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AppsGetResourceUploadUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + /// 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.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_Get.cs new file mode 100644 index 000000000000..0939a99d948a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_Get.cs @@ -0,0 +1,438 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get an App and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApp_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get an App and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApp_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("AppName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _syncStatus; + + /// Indicates whether sync status + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether sync status")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether sync status", + SerializedName = @"syncStatus", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Query)] + public string SyncStatus { get => this._syncStatus; set => this._syncStatus = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApp_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsGet(SubscriptionId, ResourceGroupName, ServiceName, Name, this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,SyncStatus=this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, SyncStatus=this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null }) + { + 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, ServiceName=ServiceName, Name=Name, SyncStatus=this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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.AppPlatform.Models.Api20221101Preview.IAppResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_GetViaIdentity.cs new file mode 100644 index 000000000000..66659a3ef1f8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_GetViaIdentity.cs @@ -0,0 +1,400 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get an App and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApp_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get an App and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApp_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _syncStatus; + + /// Indicates whether sync status + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether sync status")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether sync status", + SerializedName = @"syncStatus", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Query)] + public string SyncStatus { get => this._syncStatus; set => this._syncStatus = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApp_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AppsGetViaIdentity(InputObject.Id, this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AppsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SyncStatus=this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SyncStatus=this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null }) + { + 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 { SyncStatus=this.InvocationInformation.BoundParameters.ContainsKey("SyncStatus") ? SyncStatus : null }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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.AppPlatform.Models.Api20221101Preview.IAppResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_List.cs new file mode 100644 index 000000000000..0a5ade830cbd --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a Service. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApp_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApp_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApp_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_Get.cs new file mode 100644 index 000000000000..ffdf5f2e0097 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the application accelerator. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApplicationAccelerator_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the application accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApplicationAccelerator_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApplicationAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationAcceleratorsGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_GetViaIdentity.cs new file mode 100644 index 000000000000..26d0e09a31ad --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the application accelerator. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApplicationAccelerator_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the application accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApplicationAccelerator_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApplicationAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationAcceleratorsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationAcceleratorsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_List.cs new file mode 100644 index 000000000000..e01a20f48682 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationAccelerator_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handle requests to list all application accelerator. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApplicationAccelerator_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handle requests to list all application accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApplicationAccelerator_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApplicationAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationAcceleratorsList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationAcceleratorsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_Get.cs new file mode 100644 index 000000000000..6cde19d900a9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Application Live and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationLiveViews/{applicationLiveViewName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApplicationLiveView_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Application Live and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApplicationLiveView_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Application Live View. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Application Live View.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Application Live View.", + SerializedName = @"applicationLiveViewName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationLiveViewName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApplicationLiveView_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationLiveViewsGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_GetViaIdentity.cs new file mode 100644 index 000000000000..e4370d7132b4 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Application Live and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationLiveViews/{applicationLiveViewName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApplicationLiveView_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Application Live and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApplicationLiveView_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApplicationLiveView_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationLiveViewsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationLiveViewName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationLiveViewName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationLiveViewsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationLiveViewName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_List.cs new file mode 100644 index 000000000000..2eeb6bc1ab65 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApplicationLiveView_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a Service. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationLiveViews" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformApplicationLiveView_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformApplicationLiveView_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformApplicationLiveView_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationLiveViewsList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationLiveViewsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_Get.cs new file mode 100644 index 000000000000..ece3ddefc92b --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_Get.cs @@ -0,0 +1,438 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a Binding and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBinding_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a Binding and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBinding_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Binding resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Binding resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Binding resource.", + SerializedName = @"bindingName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("BindingName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBinding_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BindingsGet(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, 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, ServiceName=ServiceName, AppName=AppName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_GetViaIdentity.cs new file mode 100644 index 000000000000..270137ccdd27 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a Binding and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBinding_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a Binding and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBinding_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBinding_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BindingsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BindingName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BindingName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BindingsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.BindingName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_List.cs new file mode 100644 index 000000000000..f33ce5a36757 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in an App. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBinding_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in an App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBinding_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBinding_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BindingsList(SubscriptionId, ResourceGroupName, ServiceName, AppName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName }) + { + 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, ServiceName=ServiceName, AppName=AppName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BindingsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_Get.cs new file mode 100644 index 000000000000..9a18992ca5ae --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get build service agent pool. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/agentPools/{agentPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceAgentPool_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get build service agent pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceAgentPool_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _agentPoolName; + + /// The name of the build service agent pool resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service agent pool resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service agent pool resource.", + SerializedName = @"agentPoolName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AgentPoolName { get => this._agentPoolName; set => this._agentPoolName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceAgentPool_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceAgentPoolGet(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, AgentPoolName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,AgentPoolName=AgentPoolName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, AgentPoolName=AgentPoolName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, AgentPoolName=AgentPoolName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_GetViaIdentity.cs new file mode 100644 index 000000000000..bb756efcb892 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get build service agent pool. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/agentPools/{agentPoolName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceAgentPool_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get build service agent pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceAgentPool_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceAgentPool_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceAgentPoolGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AgentPoolName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AgentPoolName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceAgentPoolGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.AgentPoolName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource + /// 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.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_List.cs new file mode 100644 index 000000000000..68e7c680bb2e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceAgentPool_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List build service agent pool. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/agentPools" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceAgentPool_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List build service agent pool.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceAgentPool_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceAgentPool_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceAgentPoolList(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceAgentPoolResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceAgentPoolList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResultLog_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResultLog_Get.cs new file mode 100644 index 000000000000..8486f5d5a9a1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResultLog_Get.cs @@ -0,0 +1,454 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a KPack build result log download URL. + /// + /// [OpenAPI] GetBuildResultLog=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}/results/{buildResultName}/getLogFileUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuildResultLog_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a KPack build result log download URL.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuildResultLog_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildName; + + /// The name of the build resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build resource.", + SerializedName = @"buildName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildName { get => this._buildName; set => this._buildName = value; } + + /// Backing field for property. + private string _buildResultName; + + /// The name of the build result resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build result resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build result resource.", + SerializedName = @"buildResultName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildResultName { get => this._buildResultName; set => this._buildResultName = value; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuildResultLog_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceGetBuildResultLog' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceGetBuildResultLog(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuildName, BuildResultName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuildName=BuildName,BuildResultName=BuildResultName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName, BuildResultName=BuildResultName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName, BuildResultName=BuildResultName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResultLog + WriteObject((await response).BlobUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResultLog_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResultLog_GetViaIdentity.cs new file mode 100644 index 000000000000..05fb0ee48065 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResultLog_GetViaIdentity.cs @@ -0,0 +1,397 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a KPack build result log download URL. + /// + /// [OpenAPI] GetBuildResultLog=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}/results/{buildResultName}/getLogFileUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuildResultLog_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a KPack build result log download URL.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuildResultLog_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuildResultLog_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceGetBuildResultLog' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceGetBuildResultLogViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildResultName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildResultName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceGetBuildResultLog(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.BuildName ?? null, InputObject.BuildResultName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultLog + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResultLog + WriteObject((await response).BlobUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_Get.cs new file mode 100644 index 000000000000..28fe8c4e80ac --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_Get.cs @@ -0,0 +1,451 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a KPack build result. + /// + /// [OpenAPI] GetBuildResult=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}/results/{buildResultName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuildResult_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a KPack build result.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuildResult_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildName; + + /// The name of the build resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build resource.", + SerializedName = @"buildName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildName { get => this._buildName; set => this._buildName = value; } + + /// Backing field for property. + private string _buildResultName; + + /// The name of the build result resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build result resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build result resource.", + SerializedName = @"buildResultName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildResultName { get => this._buildResultName; set => this._buildResultName = value; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuildResult_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceGetBuildResult(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuildName, BuildResultName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuildName=BuildName,BuildResultName=BuildResultName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName, BuildResultName=BuildResultName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName, BuildResultName=BuildResultName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_GetViaIdentity.cs new file mode 100644 index 000000000000..62a4285bbb8e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a KPack build result. + /// + /// [OpenAPI] GetBuildResult=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}/results/{buildResultName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuildResult_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a KPack build result.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuildResult_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuildResult_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceGetBuildResultViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildResultName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildResultName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceGetBuildResult(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.BuildName ?? null, InputObject.BuildResultName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult + /// 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.AppPlatform.Models.Api20221101Preview.IBuildResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_List.cs new file mode 100644 index 000000000000..4e4c38e74141 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuildResult_List.cs @@ -0,0 +1,459 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List KPack build results. + /// + /// [OpenAPI] ListBuildResults=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}/results" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuildResult_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List KPack build results.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuildResult_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildName; + + /// The name of the build resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build resource.", + SerializedName = @"buildName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildName { get => this._buildName; set => this._buildName = value; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuildResult_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListBuildResults(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuildName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuildName=BuildName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildResultCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListBuildResults_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_Get.cs new file mode 100644 index 000000000000..36d13fa70490 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a KPack build. + /// + /// [OpenAPI] GetBuild=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuild_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a KPack build.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuild_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildName; + + /// The name of the build resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build resource.", + SerializedName = @"buildName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildName { get => this._buildName; set => this._buildName = value; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuild_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceGetBuild(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuildName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuildName=BuildName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + /// 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.AppPlatform.Models.Api20221101Preview.IBuild + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_GetViaIdentity.cs new file mode 100644 index 000000000000..03ffc2d73e22 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a KPack build. + /// + /// [OpenAPI] GetBuild=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuild_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a KPack build.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuild_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuild_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceGetBuildViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceGetBuild(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.BuildName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + /// 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.AppPlatform.Models.Api20221101Preview.IBuild + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_List.cs new file mode 100644 index 000000000000..2b4c789287e8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuild_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List KPack builds. + /// + /// [OpenAPI] ListBuilds=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuild_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List KPack builds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuild_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuild_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListBuilds(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListBuilds_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilderDeployment_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilderDeployment_List.cs new file mode 100644 index 000000000000..87e2521f8d2f --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilderDeployment_List.cs @@ -0,0 +1,441 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List deployments that are using the builder. + /// + /// [OpenAPI] ListDeployments=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/listUsingDeployments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuilderDeployment_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List deployments that are using the builder.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuilderDeployment_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the builder resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentList + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuilderDeployment_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceBuilderListDeployments' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceBuilderListDeployments(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuilderName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuilderName=BuilderName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentList + /// 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 / deployments / + WriteObject((await response).Deployment, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_Get.cs new file mode 100644 index 000000000000..0bd60b065492 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a KPack builder. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuilder_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a KPack builder.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuilder_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the builder resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuilder_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceBuilderGet(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuilderName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuilderName=BuilderName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource + /// 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.AppPlatform.Models.Api20221101Preview.IBuilderResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_GetViaIdentity.cs new file mode 100644 index 000000000000..2deb6f9b961e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a KPack builder. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuilder_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a KPack builder.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuilder_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuilder_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceBuilderGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuilderName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuilderName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceBuilderGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.BuilderName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource + /// 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.AppPlatform.Models.Api20221101Preview.IBuilderResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_List.cs new file mode 100644 index 000000000000..0de69451ab54 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceBuilder_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List KPack builders result. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceBuilder_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List KPack builders result.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceBuilder_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceBuilder_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceBuilderList(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceBuilderList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceResourceUploadUrl_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceResourceUploadUrl_Get.cs new file mode 100644 index 000000000000..2fa647591729 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceResourceUploadUrl_Get.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Get an resource upload URL for build service, which may be artifacts or source archive. + /// + /// + /// [OpenAPI] GetResourceUploadUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/getResourceUploadUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceResourceUploadUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get an resource upload URL for build service, which may be artifacts or source archive.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceResourceUploadUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceResourceUploadUrl_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceGetResourceUploadUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceGetResourceUploadUrl(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + /// 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.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceResourceUploadUrl_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceResourceUploadUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..fb06f5392ed6 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceResourceUploadUrl_GetViaIdentity.cs @@ -0,0 +1,391 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Get an resource upload URL for build service, which may be artifacts or source archive. + /// + /// + /// [OpenAPI] GetResourceUploadUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/getResourceUploadUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceResourceUploadUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get an resource upload URL for build service, which may be artifacts or source archive.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceResourceUploadUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceResourceUploadUrl_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceGetResourceUploadUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceGetResourceUploadUrlViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceGetResourceUploadUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + /// 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.AppPlatform.Models.Api20221101Preview.IResourceUploadDefinition + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_Get.cs new file mode 100644 index 000000000000..9d9fba79e6de --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the supported buildpack resource. + /// + /// [OpenAPI] GetSupportedBuildpack=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedBuildpacks/{buildpackName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceSupportedBuildpack_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the supported buildpack resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceSupportedBuildpack_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _buildpackName; + + /// The name of the buildpack resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the buildpack resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the buildpack resource.", + SerializedName = @"buildpackName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildpackName { get => this._buildpackName; set => this._buildpackName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceSupportedBuildpack_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceGetSupportedBuildpack(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuildpackName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuildpackName=BuildpackName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildpackName=BuildpackName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildpackName=BuildpackName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_GetViaIdentity.cs new file mode 100644 index 000000000000..fe194a30d0a3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the supported buildpack resource. + /// + /// [OpenAPI] GetSupportedBuildpack=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedBuildpacks/{buildpackName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceSupportedBuildpack_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the supported buildpack resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceSupportedBuildpack_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceSupportedBuildpack_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceGetSupportedBuildpackViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildpackName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildpackName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceGetSupportedBuildpack(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.BuildpackName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedBuildpackResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_List.cs new file mode 100644 index 000000000000..221a04878dee --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedBuildpack_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get all supported buildpacks. + /// + /// [OpenAPI] ListSupportedBuildpacks=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedBuildpacks" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceSupportedBuildpack_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get all supported buildpacks.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceSupportedBuildpack_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceSupportedBuildpack_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListSupportedBuildpacks(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedBuildpacksCollection + /// 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 / 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListSupportedBuildpacks_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_Get.cs new file mode 100644 index 000000000000..1f1dd00e2e6c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the supported stack resource. + /// + /// [OpenAPI] GetSupportedStack=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedStacks/{stackName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceSupportedStack_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the supported stack resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceSupportedStack_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _stackName; + + /// The name of the stack resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the stack resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the stack resource.", + SerializedName = @"stackName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string StackName { get => this._stackName; set => this._stackName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceSupportedStack_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceGetSupportedStack(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, StackName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,StackName=StackName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, StackName=StackName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, StackName=StackName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedStackResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_GetViaIdentity.cs new file mode 100644 index 000000000000..01418d40dce3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the supported stack resource. + /// + /// [OpenAPI] GetSupportedStack=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedStacks/{stackName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceSupportedStack_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the supported stack resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceSupportedStack_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceSupportedStack_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceGetSupportedStackViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.StackName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.StackName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceGetSupportedStack(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.StackName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStackResource + /// 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.AppPlatform.Models.Api20221101Preview.ISupportedStackResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_List.cs new file mode 100644 index 000000000000..47e269e3ba5e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildServiceSupportedStack_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get all supported stacks. + /// + /// [OpenAPI] ListSupportedStacks=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/supportedStacks" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildServiceSupportedStack_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get all supported stacks.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildServiceSupportedStack_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildServiceSupportedStack_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListSupportedStacks(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedStacksCollection + /// 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 / 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListSupportedStacks_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_Get.cs new file mode 100644 index 000000000000..4dc1cf78a9e4 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a build service resource. + /// + /// [OpenAPI] GetBuildService=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildService_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a build service resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildService_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("BuildServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceGetBuildService(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService + /// 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.AppPlatform.Models.Api20221101Preview.IBuildService + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_GetViaIdentity.cs new file mode 100644 index 000000000000..6f2243924670 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a build service resource. + /// + /// [OpenAPI] GetBuildService=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildService_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a build service resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildService_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceGetBuildServiceViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceGetBuildService(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService + /// 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.AppPlatform.Models.Api20221101Preview.IBuildService + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_List.cs new file mode 100644 index 000000000000..41c845ebef94 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildService_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List build services resource. + /// + /// [OpenAPI] ListBuildServices=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildService_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildService))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List build services resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildService_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListBuildServices(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildServiceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceListBuildServices_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_Get.cs new file mode 100644 index 000000000000..f5d7b38d4652 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_Get.cs @@ -0,0 +1,452 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a buildpack binding by name. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings/{buildpackBindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildpackBinding_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a buildpack binding by name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildpackBinding_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the builder resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Buildpack Binding Name + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Buildpack Binding Name")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Buildpack Binding Name", + SerializedName = @"buildpackBindingName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("BuildpackBindingName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildpackBinding_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildpackBindingGet(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuilderName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuilderName=BuilderName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName, 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_GetViaIdentity.cs new file mode 100644 index 000000000000..9e31bf52447e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a buildpack binding by name. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings/{buildpackBindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildpackBinding_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a buildpack binding by name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildpackBinding_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildpackBinding_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildpackBindingGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuilderName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuilderName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildpackBindingName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildpackBindingName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildpackBindingGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.BuilderName ?? null, InputObject.BuildpackBindingName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_List.cs new file mode 100644 index 000000000000..cbb3f10d7701 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBuildpackBinding_List.cs @@ -0,0 +1,459 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all buildpack bindings in a builder. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformBuildpackBinding_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all buildpack bindings in a builder.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformBuildpackBinding_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the builder resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformBuildpackBinding_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildpackBindingList(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuilderName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuilderName=BuilderName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildpackBindingList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_Get.cs new file mode 100644 index 000000000000..029e5452048a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the certificate resource. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCertificate_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the certificate resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCertificate_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the certificate resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the certificate resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the certificate resource.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCertificate_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource + /// 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.AppPlatform.Models.Api20221101Preview.ICertificateResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_GetViaIdentity.cs new file mode 100644 index 000000000000..326b6faa3d4e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the certificate resource. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCertificate_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the certificate resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCertificate_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCertificate_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CertificatesGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.CertificateName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.CertificateName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CertificatesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.CertificateName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource + /// 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.AppPlatform.Models.Api20221101Preview.ICertificateResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_List.cs new file mode 100644 index 000000000000..f7c6e4818288 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List all the certificates of one user. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/certificates" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCertificate_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List all the certificates of one user.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCertificate_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCertificate_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_Get.cs new file mode 100644 index 000000000000..8d985c6b3f9b --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_Get.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the config server and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformConfigServer_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the config server and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformConfigServer_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformConfigServer_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigServersGet(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_GetViaIdentity.cs new file mode 100644 index 000000000000..665ea55402c7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the config server and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformConfigServer_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the config server and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformConfigServer_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformConfigServer_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConfigServersGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConfigServersGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_Get.cs new file mode 100644 index 000000000000..b0f0ab3fc65a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Application Configuration Service and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformConfigurationService_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Application Configuration Service and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformConfigurationService_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Application Configuration Service. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Application Configuration Service.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Application Configuration Service.", + SerializedName = @"configurationServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ConfigurationServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformConfigurationService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigurationServicesGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_GetViaIdentity.cs new file mode 100644 index 000000000000..a468a161a6bc --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Application Configuration Service and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformConfigurationService_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Application Configuration Service and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformConfigurationService_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformConfigurationService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConfigurationServicesGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ConfigurationServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConfigurationServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConfigurationServicesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ConfigurationServiceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_List.cs new file mode 100644 index 000000000000..8a47845f63f2 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigurationService_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a Service. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformConfigurationService_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformConfigurationService_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformConfigurationService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigurationServicesList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigurationServicesList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_Get.cs new file mode 100644 index 000000000000..389dfdb2f54c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the custom domain of one lifecycle application. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCustomDomain_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the custom domain of one lifecycle application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCustomDomain_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the custom domain resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the custom domain resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the custom domain resource.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomDomainsGet(SubscriptionId, ResourceGroupName, ServiceName, AppName, DomainName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DomainName=DomainName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DomainName=DomainName }) + { + 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, ServiceName=ServiceName, AppName=AppName, DomainName=DomainName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_GetViaIdentity.cs new file mode 100644 index 000000000000..c36912e64c35 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the custom domain of one lifecycle application. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCustomDomain_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the custom domain of one lifecycle application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCustomDomain_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CustomDomainsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CustomDomainsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DomainName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_List.cs new file mode 100644 index 000000000000..bfad077b70b7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List the custom domains of one lifecycle application. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCustomDomain_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List the custom domains of one lifecycle application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCustomDomain_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomDomainsList(SubscriptionId, ResourceGroupName, ServiceName, AppName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName }) + { + 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, ServiceName=ServiceName, AppName=AppName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomDomainsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_Get.cs new file mode 100644 index 000000000000..567bba87c039 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_Get.cs @@ -0,0 +1,438 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the customized accelerator. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCustomizedAccelerator_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the customized accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCustomizedAccelerator_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the customized accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the customized accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the customized accelerator.", + SerializedName = @"customizedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CustomizedAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCustomizedAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomizedAcceleratorsGet(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_GetViaIdentity.cs new file mode 100644 index 000000000000..4d1c2501717a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the customized accelerator. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCustomizedAccelerator_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the customized accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCustomizedAccelerator_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCustomizedAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CustomizedAcceleratorsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.CustomizedAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.CustomizedAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CustomizedAcceleratorsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, InputObject.CustomizedAcceleratorName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_List.cs new file mode 100644 index 000000000000..19ad66e5a8c7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomizedAccelerator_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handle requests to list all customized accelerators. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformCustomizedAccelerator_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handle requests to list all customized accelerators.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformCustomizedAccelerator_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformCustomizedAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomizedAcceleratorsList(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName }) + { + 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomizedAcceleratorsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_Get.cs new file mode 100644 index 000000000000..30287b8d82f1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get deployment log file URL + /// + /// [OpenAPI] GetLogFileUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/getLogFileUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDeploymentLogFileUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get deployment log file URL")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDeploymentLogFileUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDeploymentLogFileUrl_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGetLogFileUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsGetLogFileUrl(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName }) + { + 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse + /// 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.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse + WriteObject((await response).Url); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..b3a49a91c696 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_GetViaIdentity.cs @@ -0,0 +1,434 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get deployment log file URL + /// + /// [OpenAPI] GetLogFileUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/getLogFileUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDeploymentLogFileUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get deployment log file URL")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDeploymentLogFileUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDeploymentLogFileUrl_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGetLogFileUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsGetLogFileUrlViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsGetLogFileUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse + /// 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.AppPlatform.Models.Api20221101Preview.ILogFileUrlResponse + WriteObject((await response).Url); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentRemoteDebuggingConfig_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentRemoteDebuggingConfig_Get.cs new file mode 100644 index 000000000000..8ac673f560e5 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentRemoteDebuggingConfig_Get.cs @@ -0,0 +1,440 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get remote debugging config. + /// + /// [OpenAPI] GetRemoteDebuggingConfig=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/getRemoteDebuggingConfig" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDeploymentRemoteDebuggingConfig_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get remote debugging config.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDeploymentRemoteDebuggingConfig_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDeploymentRemoteDebuggingConfig_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGetRemoteDebuggingConfig' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsGetRemoteDebuggingConfig(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentRemoteDebuggingConfig_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentRemoteDebuggingConfig_GetViaIdentity.cs new file mode 100644 index 000000000000..c25f2912ca66 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentRemoteDebuggingConfig_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get remote debugging config. + /// + /// [OpenAPI] GetRemoteDebuggingConfig=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/getRemoteDebuggingConfig" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDeploymentRemoteDebuggingConfig_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get remote debugging config.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDeploymentRemoteDebuggingConfig_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzAppPlatformDeploymentRemoteDebuggingConfig_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGetRemoteDebuggingConfig' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsGetRemoteDebuggingConfigViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsGetRemoteDebuggingConfig(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + /// 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.AppPlatform.Models.Api20221101Preview.IRemoteDebugging + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_Get.cs new file mode 100644 index 000000000000..1520b46df5e8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_Get.cs @@ -0,0 +1,438 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a Deployment and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDeployment_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a Deployment and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDeployment_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DeploymentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDeployment_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsGet(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, 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, ServiceName=ServiceName, AppName=AppName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_GetViaIdentity.cs new file mode 100644 index 000000000000..df13e4d6c7be --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a Deployment and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDeployment_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a Deployment and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDeployment_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDeployment_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List.cs new file mode 100644 index 000000000000..e7fc9fadacf3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List.cs @@ -0,0 +1,460 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in an App. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDeployment_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in an App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDeployment_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string[] _version; + + /// Version of the deployments to be listed + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Version of the deployments to be listed")] + [global::System.Management.Automation.AllowEmptyCollection] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the deployments to be listed", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Query)] + public string[] Version { get => this._version; set => this._version = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDeployment_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsList(SubscriptionId, ResourceGroupName, ServiceName, AppName, this.InvocationInformation.BoundParameters.ContainsKey("Version") ? Version : null /* arrayOf */, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Version=this.InvocationInformation.BoundParameters.ContainsKey("Version") ? Version : null /* arrayOf */}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, Version=this.InvocationInformation.BoundParameters.ContainsKey("Version") ? Version : null /* arrayOf */ }) + { + 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, ServiceName=ServiceName, AppName=AppName, Version=this.InvocationInformation.BoundParameters.ContainsKey("Version") ? Version : null /* arrayOf */ }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List1.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List1.cs new file mode 100644 index 000000000000..e4ffc64c06f9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List1.cs @@ -0,0 +1,446 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List deployments for a certain service + /// + /// [OpenAPI] ListForCluster=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/deployments" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDeployment_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List deployments for a certain service")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDeployment_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string[] _version; + + /// Version of the deployments to be listed + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Version of the deployments to be listed")] + [global::System.Management.Automation.AllowEmptyCollection] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the deployments to be listed", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Query)] + public string[] Version { get => this._version; set => this._version = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDeployment_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsListForCluster(SubscriptionId, ResourceGroupName, ServiceName, this.InvocationInformation.BoundParameters.ContainsKey("Version") ? Version : null /* arrayOf */, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Version=this.InvocationInformation.BoundParameters.ContainsKey("Version") ? Version : null /* arrayOf */}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Version=this.InvocationInformation.BoundParameters.ContainsKey("Version") ? Version : null /* arrayOf */ }) + { + 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, ServiceName=ServiceName, Version=this.InvocationInformation.BoundParameters.ContainsKey("Version") ? Version : null /* arrayOf */ }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsListForCluster_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_Get.cs new file mode 100644 index 000000000000..81db0777ae0c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Application Live and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/DevToolPortals/{devToolPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDevToolPortal_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Application Live and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDevToolPortal_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Dev Tool Portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Dev Tool Portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Dev Tool Portal.", + SerializedName = @"devToolPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DevToolPortalName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDevToolPortal_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DevToolPortalsGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_GetViaIdentity.cs new file mode 100644 index 000000000000..9185502ee8b4 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Application Live and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/DevToolPortals/{devToolPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDevToolPortal_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Application Live and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDevToolPortal_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDevToolPortal_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DevToolPortalsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DevToolPortalName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DevToolPortalName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DevToolPortalsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.DevToolPortalName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_List.cs new file mode 100644 index 000000000000..6710dca22bad --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDevToolPortal_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a Service. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/DevToolPortals" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformDevToolPortal_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformDevToolPortal_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformDevToolPortal_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DevToolPortalsList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DevToolPortalsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_Get.cs new file mode 100644 index 000000000000..95d72e7fd3e8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Spring Cloud Gateway custom domain. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGatewayCustomDomain_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Spring Cloud Gateway custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGatewayCustomDomain_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the Spring Cloud Gateway custom domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Spring Cloud Gateway custom domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Spring Cloud Gateway custom domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGatewayCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayCustomDomainsGet(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, DomainName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName,DomainName=DomainName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName, DomainName=DomainName }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName, DomainName=DomainName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_GetViaIdentity.cs new file mode 100644 index 000000000000..a9991b25a78c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Spring Cloud Gateway custom domain. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGatewayCustomDomain_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Spring Cloud Gateway custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGatewayCustomDomain_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGatewayCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.GatewayCustomDomainsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.GatewayName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.GatewayName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.GatewayCustomDomainsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.GatewayName ?? null, InputObject.DomainName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_List.cs new file mode 100644 index 000000000000..f71b352383f9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayCustomDomain_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handle requests to list all Spring Cloud Gateway custom domains. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGatewayCustomDomain_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handle requests to list all Spring Cloud Gateway custom domains.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGatewayCustomDomain_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGatewayCustomDomain_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayCustomDomainsList(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayCustomDomainsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayEnvSecret_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayEnvSecret_List.cs new file mode 100644 index 000000000000..4f032dcc94cc --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayEnvSecret_List.cs @@ -0,0 +1,426 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List sensitive environment variables of Spring Cloud Gateway. + /// + /// [OpenAPI] ListEnvSecrets=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/listEnvSecrets" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGatewayEnvSecret_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List sensitive environment variables of Spring Cloud Gateway.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGatewayEnvSecret_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGatewayEnvSecret_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewaysListEnvSecrets' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewaysListEnvSecrets(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayEnvSecrets + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_Get.cs new file mode 100644 index 000000000000..d2e3aaaa946e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_Get.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Spring Cloud Gateway route configs. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs/{routeConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGatewayRouteConfig_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Spring Cloud Gateway route configs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGatewayRouteConfig_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _routeConfigName; + + /// The name of the Spring Cloud Gateway route config. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Spring Cloud Gateway route config.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Spring Cloud Gateway route config.", + SerializedName = @"routeConfigName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string RouteConfigName { get => this._routeConfigName; set => this._routeConfigName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGatewayRouteConfig_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayRouteConfigsGet(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, RouteConfigName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName,RouteConfigName=RouteConfigName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName, RouteConfigName=RouteConfigName }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName, RouteConfigName=RouteConfigName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_GetViaIdentity.cs new file mode 100644 index 000000000000..2ef016ccf49a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Spring Cloud Gateway route configs. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs/{routeConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGatewayRouteConfig_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Spring Cloud Gateway route configs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGatewayRouteConfig_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGatewayRouteConfig_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.GatewayRouteConfigsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.GatewayName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.GatewayName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.RouteConfigName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.RouteConfigName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.GatewayRouteConfigsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.GatewayName ?? null, InputObject.RouteConfigName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_List.cs new file mode 100644 index 000000000000..d3e85f3f57cf --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGatewayRouteConfig_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handle requests to list all Spring Cloud Gateway route configs. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGatewayRouteConfig_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handle requests to list all Spring Cloud Gateway route configs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGatewayRouteConfig_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGatewayRouteConfig_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayRouteConfigsList(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayRouteConfigsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_Get.cs new file mode 100644 index 000000000000..6b5f0521b653 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Spring Cloud Gateway and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGateway_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Spring Cloud Gateway and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGateway_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("GatewayName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGateway_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewaysGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_GetViaIdentity.cs new file mode 100644 index 000000000000..70dfb7767db8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Spring Cloud Gateway and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGateway_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Spring Cloud Gateway and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGateway_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGateway_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.GatewaysGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.GatewayName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.GatewayName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.GatewaysGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.GatewayName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_List.cs new file mode 100644 index 000000000000..7147dc249a5b --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformGateway_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a Service. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformGateway_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformGateway_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformGateway_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewaysList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewaysList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_Get.cs new file mode 100644 index 000000000000..5c653156e1bb --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_Get.cs @@ -0,0 +1,409 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Monitoring Setting and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/monitoringSettings/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformMonitoringSetting_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Monitoring Setting and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformMonitoringSetting_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformMonitoringSetting_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MonitoringSettingsGet(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + /// 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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_GetViaIdentity.cs new file mode 100644 index 000000000000..c51b4e01e066 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Monitoring Setting and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/monitoringSettings/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformMonitoringSetting_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Monitoring Setting and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformMonitoringSetting_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformMonitoringSetting_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.MonitoringSettingsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.MonitoringSettingsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + /// 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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformOperation_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformOperation_List.cs new file mode 100644 index 000000000000..b4e0a01d9ab3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformOperation_List.cs @@ -0,0 +1,379 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Lists all of the available REST API operations of the Microsoft.AppPlatform provider. + /// + /// + /// [OpenAPI] List=>GET:"/providers/Microsoft.AppPlatform/operations" + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.InternalExport] + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformOperation_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Lists all of the available REST API operations of the Microsoft.AppPlatform provider.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformOperation_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperations + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformOperation_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsList(onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableOperations + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_Get.cs new file mode 100644 index 000000000000..9f6c54759526 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_Get.cs @@ -0,0 +1,438 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the predefined accelerator. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformPredefinedAccelerator_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the predefined accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformPredefinedAccelerator_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the predefined accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the predefined accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the predefined accelerator.", + SerializedName = @"predefinedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PredefinedAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformPredefinedAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PredefinedAcceleratorsGet(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource + /// 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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_GetViaIdentity.cs new file mode 100644 index 000000000000..92dfa127b0de --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_GetViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the predefined accelerator. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators/{predefinedAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformPredefinedAccelerator_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the predefined accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformPredefinedAccelerator_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformPredefinedAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PredefinedAcceleratorsGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PredefinedAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PredefinedAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PredefinedAcceleratorsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, InputObject.PredefinedAcceleratorName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource + /// 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.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_List.cs new file mode 100644 index 000000000000..98d940e04e6e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformPredefinedAccelerator_List.cs @@ -0,0 +1,445 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handle requests to list all predefined accelerators. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/predefinedAccelerators" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformPredefinedAccelerator_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handle requests to list all predefined accelerators.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformPredefinedAccelerator_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformPredefinedAccelerator_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PredefinedAcceleratorsList(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName }) + { + 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IPredefinedAcceleratorResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PredefinedAcceleratorsList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformRuntimeVersion_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformRuntimeVersion_List.cs new file mode 100644 index 000000000000..374da8b01001 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformRuntimeVersion_List.cs @@ -0,0 +1,357 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Lists all of the available runtime versions supported by Microsoft.AppPlatform provider. + /// + /// + /// [OpenAPI] ListRuntimeVersions=>GET:"/providers/Microsoft.AppPlatform/runtimeVersions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformRuntimeVersion_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ISupportedRuntimeVersion))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Lists all of the available runtime versions supported by Microsoft.AppPlatform provider.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformRuntimeVersion_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformRuntimeVersion_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.RuntimeVersionsListRuntimeVersions(onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAvailableRuntimeVersions + /// 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/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_Get.cs new file mode 100644 index 000000000000..3ea1d4796f71 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Service Registry and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/serviceRegistries/{serviceRegistryName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformServiceRegistry_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Service Registry and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformServiceRegistry_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Service Registry. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Service Registry.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Service Registry.", + SerializedName = @"serviceRegistryName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ServiceRegistryName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformServiceRegistry_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServiceRegistriesGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_GetViaIdentity.cs new file mode 100644 index 000000000000..602cb1e1cf44 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the Service Registry and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/serviceRegistries/{serviceRegistryName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformServiceRegistry_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the Service Registry and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformServiceRegistry_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformServiceRegistry_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServiceRegistriesGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ServiceRegistryName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceRegistryName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServiceRegistriesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ServiceRegistryName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource + /// 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.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_List.cs new file mode 100644 index 000000000000..4921040d7889 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceRegistry_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a Service. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/serviceRegistries" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformServiceRegistry_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformServiceRegistry_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformServiceRegistry_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServiceRegistriesList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceRegistryResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServiceRegistriesList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceTestKey_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceTestKey_List.cs new file mode 100644 index 000000000000..d0a6f4ea17a3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceTestKey_List.cs @@ -0,0 +1,412 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List test keys for a Service. + /// + /// [OpenAPI] ListTestKeys=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/listTestKeys" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformServiceTestKey_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List test keys for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformServiceTestKey_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformServiceTestKey_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesListTestKeys' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesListTestKeys(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_Get.cs new file mode 100644 index 000000000000..3f29f28462fd --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a Service and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformService_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a Service and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformService_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, 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, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_GetViaIdentity.cs new file mode 100644 index 000000000000..38ad2210f535 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get a Service and its properties. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformService_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get a Service and its properties.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformService_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List.cs new file mode 100644 index 000000000000..09a6281387cb --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List.cs @@ -0,0 +1,400 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/Spring" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformService_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformService_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesListBySubscription(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List1.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List1.cs new file mode 100644 index 000000000000..373ab340a2f7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List1.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Handles requests to list all resources in a resource group. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformService_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Handles requests to list all resources in a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformService_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformService_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesList(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 }) + { + 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 }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResourceList + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformSku_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformSku_List.cs new file mode 100644 index 000000000000..6426ba1312cc --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformSku_List.cs @@ -0,0 +1,400 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Lists all of the available skus of the Microsoft.AppPlatform provider. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/skus" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformSku_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSku))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Lists all of the available skus of the Microsoft.AppPlatform provider.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformSku_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformSku_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SkusList(SubscriptionId, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IResourceSkuCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SkusList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_Get.cs new file mode 100644 index 000000000000..7761170baaf7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_Get.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the storage resource. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformStorage_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the storage resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformStorage_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the storage resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the storage resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the storage resource.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("StorageName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformStorage_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.StoragesGet(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource + /// 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.AppPlatform.Models.Api20221101Preview.IStorageResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_GetViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_GetViaIdentity.cs new file mode 100644 index 000000000000..001da3266997 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Get the storage resource. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformStorage_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Get the storage resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformStorage_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformStorage_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.StoragesGetViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.StorageName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.StorageName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.StoragesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.StorageName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource + /// 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.AppPlatform.Models.Api20221101Preview.IStorageResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_List.cs new file mode 100644 index 000000000000..07d42aa62e6c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformStorage_List.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// List all the storages of one Azure Spring Apps resource. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/storages" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzAppPlatformStorage_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"List all the storages of one Azure Spring Apps resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class GetAzAppPlatformStorage_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzAppPlatformStorage_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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.StoragesList(SubscriptionId, ResourceGroupName, ServiceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName }) + { + 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, ServiceName=ServiceName }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResourceCollection + /// 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.AppPlatform.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.StoragesList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApiPortalCustomDomain_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApiPortalCustomDomain_CreateExpanded.cs new file mode 100644 index 000000000000..b3e5d1de7ca1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApiPortalCustomDomain_CreateExpanded.cs @@ -0,0 +1,520 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update the API portal custom domain. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformApiPortalCustomDomain_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update the API portal custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformApiPortalCustomDomain_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Custom domain of the API portal + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource _apiPortalCustomDomainResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalCustomDomainResource(); + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private string _apiPortalName; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApiPortalName { get => this._apiPortalName; set => this._apiPortalName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the API portal custom domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the API portal custom domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the API portal custom domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The thumbprint of bound certificate. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The thumbprint of bound certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + public string Thumbprint { get => _apiPortalCustomDomainResourceBody.Thumbprint ?? null; set => _apiPortalCustomDomainResourceBody.Thumbprint = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformApiPortalCustomDomain_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformApiPortalCustomDomain_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformApiPortalCustomDomain_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._apiPortalCustomDomainResourceBody = this._apiPortalCustomDomainResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.ApiPortalName = this.ApiPortalName; + clone.DomainName = this.DomainName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformApiPortalCustomDomain_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalCustomDomainsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalCustomDomainsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, ApiPortalName, DomainName, _apiPortalCustomDomainResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApiPortalName=ApiPortalName,DomainName=DomainName,body=_apiPortalCustomDomainResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, DomainName=DomainName, body=_apiPortalCustomDomainResourceBody }) + { + 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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, DomainName=DomainName, body=_apiPortalCustomDomainResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalCustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApiPortal_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApiPortal_CreateExpanded.cs new file mode 100644 index 000000000000..ec9ad74793c5 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApiPortal_CreateExpanded.cs @@ -0,0 +1,621 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create the default API portal or update the existing API portal. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformApiPortal_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create the default API portal or update the existing API portal.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformApiPortal_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// API portal resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource _apiPortalResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApiPortalResource(); + + /// + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// The array of resource Ids of gateway to integrate with API portal. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The array of resource Ids of gateway to integrate with API portal.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The array of resource Ids of gateway to integrate with API portal.", + SerializedName = @"gatewayIds", + PossibleTypes = new [] { typeof(string) })] + public string[] GatewayId { get => _apiPortalResourceBody.GatewayId ?? null /* arrayOf */; set => _apiPortalResourceBody.GatewayId = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Indicate if only https is allowed. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicate if only https is allowed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter HttpsOnly { get => _apiPortalResourceBody.HttpsOnly ?? default(global::System.Management.Automation.SwitchParameter); set => _apiPortalResourceBody.HttpsOnly = 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApiPortalName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Indicates whether the API portal exposes endpoint. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the API portal exposes endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the API portal exposes endpoint.", + SerializedName = @"public", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Public { get => _apiPortalResourceBody.Public ?? default(global::System.Management.Automation.SwitchParameter); set => _apiPortalResourceBody.Public = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _apiPortalResourceBody.SkuCapacity ?? default(int); set => _apiPortalResourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _apiPortalResourceBody.SkuName ?? null; set => _apiPortalResourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _apiPortalResourceBody.SkuTier ?? null; set => _apiPortalResourceBody.SkuTier = value; } + + /// Collection of OpenAPI source URL locations. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of OpenAPI source URL locations.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of OpenAPI source URL locations.", + SerializedName = @"sourceUrls", + PossibleTypes = new [] { typeof(string) })] + public string[] SourceUrl { get => _apiPortalResourceBody.SourceUrl ?? null /* arrayOf */; set => _apiPortalResourceBody.SourceUrl = value; } + + /// The public identifier for the application + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The public identifier for the application")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyClientId { get => _apiPortalResourceBody.SsoPropertyClientId ?? null; set => _apiPortalResourceBody.SsoPropertyClientId = value; } + + /// The secret known only to the application and the authorization server + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The secret known only to the application and the authorization server")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyClientSecret { get => _apiPortalResourceBody.SsoPropertyClientSecret ?? null; set => _apiPortalResourceBody.SsoPropertyClientSecret = value; } + + /// The URI of Issuer Identifier + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The URI of Issuer Identifier")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of Issuer Identifier", + SerializedName = @"issuerUri", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyIssuerUri { get => _apiPortalResourceBody.SsoPropertyIssuerUri ?? null; set => _apiPortalResourceBody.SsoPropertyIssuerUri = value; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "It defines the specific actions applications can be allowed to do on a user's behalf")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + public string[] SsoPropertyScope { get => _apiPortalResourceBody.SsoPropertyScope ?? null /* arrayOf */; set => _apiPortalResourceBody.SsoPropertyScope = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformApiPortal_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformApiPortal_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformApiPortal_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._apiPortalResourceBody = this._apiPortalResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformApiPortal_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _apiPortalResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_apiPortalResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_apiPortalResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_apiPortalResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApiPortalResource + /// 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.AppPlatform.Models.Api20221101Preview.IApiPortalResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApp_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApp_CreateExpanded.cs new file mode 100644 index 000000000000..d1f9398c4779 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApp_CreateExpanded.cs @@ -0,0 +1,747 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create a new App or update an exiting App. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformApp_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create a new App or update an exiting App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformApp_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// App resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource _appResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource(); + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Collection of addons + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of addons")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of addons", + SerializedName = @"addonConfigs", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get => _appResourceBody.AddonConfig ?? null /* object */; set => _appResourceBody.AddonConfig = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// Collection of certificate resource id. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of certificate resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of certificate resource id.", + SerializedName = @"certificates", + PossibleTypes = new [] { typeof(string) })] + public string[] ClientAuthCertificate { get => _appResourceBody.ClientAuthCertificate ?? null /* arrayOf */; set => _appResourceBody.ClientAuthCertificate = value; } + + /// List of custom persistent disks + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of custom persistent disks")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of custom persistent disks", + SerializedName = @"customPersistentDisks", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get => _appResourceBody.CustomPersistentDisk ?? null /* arrayOf */; set => _appResourceBody.CustomPersistentDisk = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Indicate if end to end TLS is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicate if end to end TLS is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if end to end TLS is enabled.", + SerializedName = @"enableEndToEndTLS", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableEndToEndTl { get => _appResourceBody.EnableEndToEndTl ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.EnableEndToEndTl = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Indicate if only https is allowed. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicate if only https is allowed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter HttpsOnly { get => _appResourceBody.HttpsOnly ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.HttpsOnly = value; } + + /// Principal Id of system-assigned managed identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Principal Id of system-assigned managed identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal Id of system-assigned managed identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _appResourceBody.IdentityPrincipalId ?? null; set => _appResourceBody.IdentityPrincipalId = value; } + + /// Tenant Id of system-assigned managed identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tenant Id of system-assigned managed identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id of system-assigned managed identity.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _appResourceBody.IdentityTenantId ?? null; set => _appResourceBody.IdentityTenantId = value; } + + /// Type of the managed identity + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the managed identity")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the managed identity", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType IdentityType { get => _appResourceBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType)""); set => _appResourceBody.IdentityType = value; } + + /// Properties of user-assigned managed identities + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Properties of user-assigned managed identities")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Properties of user-assigned managed identities", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities IdentityUserAssignedIdentity { get => _appResourceBody.IdentityUserAssignedIdentity ?? null /* object */; set => _appResourceBody.IdentityUserAssignedIdentity = value; } + + /// How ingress should communicate with this app backend service. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "How ingress should communicate with this app backend service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How ingress should communicate with this app backend service.", + SerializedName = @"backendProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol IngressSettingBackendProtocol { get => _appResourceBody.IngressSettingBackendProtocol ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol)""); set => _appResourceBody.IngressSettingBackendProtocol = value; } + + /// Ingress read time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress read time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingReadTimeoutInSecond { get => _appResourceBody.IngressSettingReadTimeoutInSecond ?? default(int); set => _appResourceBody.IngressSettingReadTimeoutInSecond = value; } + + /// Ingress send time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress send time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress send time out in seconds.", + SerializedName = @"sendTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingSendTimeoutInSecond { get => _appResourceBody.IngressSettingSendTimeoutInSecond ?? default(int); set => _appResourceBody.IngressSettingSendTimeoutInSecond = value; } + + /// Type of the affinity, set this to Cookie to enable session affinity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the affinity, set this to Cookie to enable session affinity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the affinity, set this to Cookie to enable session affinity.", + SerializedName = @"sessionAffinity", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity IngressSettingSessionAffinity { get => _appResourceBody.IngressSettingSessionAffinity ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity)""); set => _appResourceBody.IngressSettingSessionAffinity = value; } + + /// Time in seconds until the cookie expires. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time in seconds until the cookie expires.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time in seconds until the cookie expires.", + SerializedName = @"sessionCookieMaxAge", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingSessionCookieMaxAge { get => _appResourceBody.IngressSettingSessionCookieMaxAge ?? default(int); set => _appResourceBody.IngressSettingSessionCookieMaxAge = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Collection of loaded certificates + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of loaded certificates")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of loaded certificates", + SerializedName = @"loadedCertificates", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get => _appResourceBody.LoadedCertificate ?? null /* arrayOf */; set => _appResourceBody.LoadedCertificate = value; } + + /// The GEO location of the application, always the same with its parent resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The GEO location of the application, always the same with its parent resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The GEO location of the application, always the same with its parent resource", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _appResourceBody.Location ?? null; set => _appResourceBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("AppName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Mount path of the persistent disk + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Mount path of the persistent disk")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the persistent disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + public string PersistentDiskMountPath { get => _appResourceBody.PersistentDiskMountPath ?? null; set => _appResourceBody.PersistentDiskMountPath = value; } + + /// Size of the persistent disk in GB + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Size of the persistent disk in GB")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the persistent disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + public int PersistentDiskSizeInGb { get => _appResourceBody.PersistentDiskSizeInGb ?? default(int); set => _appResourceBody.PersistentDiskSizeInGb = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Indicates whether the App exposes public endpoint + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the App exposes public endpoint")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App exposes public endpoint", + SerializedName = @"public", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Public { get => _appResourceBody.Public ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.Public = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Mount path of the temporary disk + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Mount path of the temporary disk")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the temporary disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + public string TemporaryDiskMountPath { get => _appResourceBody.TemporaryDiskMountPath ?? null; set => _appResourceBody.TemporaryDiskMountPath = value; } + + /// Size of the temporary disk in GB + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Size of the temporary disk in GB")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the temporary disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + public int TemporaryDiskSizeInGb { get => _appResourceBody.TemporaryDiskSizeInGb ?? default(int); set => _appResourceBody.TemporaryDiskSizeInGb = value; } + + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.", + SerializedName = @"publicEndpoint", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetAddonPublicEndpoint { get => _appResourceBody.VnetAddonPublicEndpoint ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.VnetAddonPublicEndpoint = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformApp_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformApp_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformApp_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._appResourceBody = this._appResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformApp_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _appResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_appResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_appResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_appResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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.AppPlatform.Models.Api20221101Preview.IAppResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApplicationAccelerator_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApplicationAccelerator_CreateExpanded.cs new file mode 100644 index 000000000000..56fe8a19f05a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApplicationAccelerator_CreateExpanded.cs @@ -0,0 +1,528 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update the application accelerator. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformApplicationAccelerator_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update the application accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformApplicationAccelerator_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Application accelerator resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource _applicationAcceleratorResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationAcceleratorResource(); + + /// + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _applicationAcceleratorResourceBody.SkuCapacity ?? default(int); set => _applicationAcceleratorResourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _applicationAcceleratorResourceBody.SkuName ?? null; set => _applicationAcceleratorResourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _applicationAcceleratorResourceBody.SkuTier ?? null; set => _applicationAcceleratorResourceBody.SkuTier = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformApplicationAccelerator_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformApplicationAccelerator_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformApplicationAccelerator_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._applicationAcceleratorResourceBody = this._applicationAcceleratorResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformApplicationAccelerator_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationAcceleratorsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationAcceleratorsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _applicationAcceleratorResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_applicationAcceleratorResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_applicationAcceleratorResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_applicationAcceleratorResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationAcceleratorResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApplicationLiveView_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApplicationLiveView_CreateExpanded.cs new file mode 100644 index 000000000000..39a6c44361ff --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApplicationLiveView_CreateExpanded.cs @@ -0,0 +1,497 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Create the default Application Live View or update the existing Application Live View. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationLiveViews/{applicationLiveViewName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformApplicationLiveView_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create the default Application Live View or update the existing Application Live View.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformApplicationLiveView_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Application Live View resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource _applicationLiveViewResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ApplicationLiveViewResource(); + + /// + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Application Live View. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Application Live View.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Application Live View.", + SerializedName = @"applicationLiveViewName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationLiveViewName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformApplicationLiveView_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformApplicationLiveView_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformApplicationLiveView_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._applicationLiveViewResourceBody = this._applicationLiveViewResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformApplicationLiveView_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationLiveViewsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationLiveViewsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _applicationLiveViewResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_applicationLiveViewResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_applicationLiveViewResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_applicationLiveViewResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + /// 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.AppPlatform.Models.Api20221101Preview.IApplicationLiveViewResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBinding_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBinding_CreateExpanded.cs new file mode 100644 index 000000000000..7ab374b619bc --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBinding_CreateExpanded.cs @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create a new Binding or update an exiting Binding. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformBinding_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create a new Binding or update an exiting Binding.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformBinding_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Binding resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource _bindingResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource(); + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Binding parameters of the Binding resource + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Binding parameters of the Binding resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Binding parameters of the Binding resource", + SerializedName = @"bindingParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => _bindingResourceBody.BindingParameter ?? null /* object */; set => _bindingResourceBody.BindingParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; } } + + /// The key of the bound resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The key of the bound resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The key of the bound resource", + SerializedName = @"key", + PossibleTypes = new [] { typeof(string) })] + public string Key { get => _bindingResourceBody.Key ?? null; set => _bindingResourceBody.Key = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Binding resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Binding resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Binding resource.", + SerializedName = @"bindingName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("BindingName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The Azure resource id of the bound resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Azure resource id of the bound resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure resource id of the bound resource", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + public string ResourceId { get => _bindingResourceBody.ResourceId ?? null; set => _bindingResourceBody.ResourceId = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformBinding_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformBinding_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformBinding_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._bindingResourceBody = this._bindingResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformBinding_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BindingsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BindingsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, _bindingResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name,body=_bindingResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, Name=Name, body=_bindingResourceBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, Name=Name, body=_bindingResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildServiceBuild_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildServiceBuild_CreateExpanded.cs new file mode 100644 index 000000000000..7b3670662677 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildServiceBuild_CreateExpanded.cs @@ -0,0 +1,549 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update a KPack build. + /// + /// [OpenAPI] CreateOrUpdateBuild=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builds/{buildName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformBuildServiceBuild_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update a KPack build.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformBuildServiceBuild_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Build resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild _buildBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.Build(); + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// The resource id of agent pool + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The resource id of agent pool")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of agent pool", + SerializedName = @"agentPool", + PossibleTypes = new [] { typeof(string) })] + public string AgentPool { get => _buildBody.AgentPool ?? null; set => _buildBody.AgentPool = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildName; + + /// The name of the build resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build resource.", + SerializedName = @"buildName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildName { get => this._buildName; set => this._buildName = value; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// The resource id of builder to build the source code + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The resource id of builder to build the source code")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource id of builder to build the source code", + SerializedName = @"builder", + PossibleTypes = new [] { typeof(string) })] + public string Builder { get => _buildBody.Er ?? null; set => _buildBody.Er = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// The environment variables for this build + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The environment variables for this build")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The environment variables for this build", + SerializedName = @"env", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildPropertiesEnv Env { get => _buildBody.Env ?? null /* object */; set => _buildBody.Env = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The relative path of source code + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The relative path of source code")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The relative path of source code", + SerializedName = @"relativePath", + PossibleTypes = new [] { typeof(string) })] + public string RelativePath { get => _buildBody.RelativePath ?? null; set => _buildBody.RelativePath = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. The default value is 1, this should + /// not exceed build service agent pool cpu size. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. The default value is 1, this should not exceed build service agent pool cpu size.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional Cpu allocated to the build resource. 1 core can be represented by 1 or 1000m. The default value is 1, this should not exceed build service agent pool cpu size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + public string ResourceRequestCpu { get => _buildBody.ResourceRequestCpu ?? null; set => _buildBody.ResourceRequestCpu = value; } + + /// + /// Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. The default value is 2Gi, this + /// should not exceed build service agent pool memory size. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. The default value is 2Gi, this should not exceed build service agent pool memory size.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Optional Memory allocated to the build resource. 1 GB can be represented by 1Gi or 1024Mi. The default value is 2Gi, this should not exceed build service agent pool memory size.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + public string ResourceRequestMemory { get => _buildBody.ResourceRequestMemory ?? null; set => _buildBody.ResourceRequestMemory = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnCreated will be called before the regular onCreated has been processed, allowing customization of what + /// happens on 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + /// from the remote call + /// /// Determines if the rest of the onCreated method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformBuildServiceBuild_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceCreateOrUpdateBuild' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceCreateOrUpdateBuild(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuildName, _buildBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuildName=BuildName,body=_buildBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 201 (Created). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + /// from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onCreated(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnCreated(responseMessage, response, ref _returnNow); + // if overrideOnCreated has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onCreated - response for 201 / application/json + // (await response) // should be Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + WriteObject((await response)); + } + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName, body=_buildBody }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuildName=BuildName, body=_buildBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuild + /// 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.AppPlatform.Models.Api20221101Preview.IBuild + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildServiceBuilder_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildServiceBuilder_CreateExpanded.cs new file mode 100644 index 000000000000..176b887ecb48 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildServiceBuilder_CreateExpanded.cs @@ -0,0 +1,543 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update a KPack builder. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformBuildServiceBuilder_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update a KPack builder.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformBuildServiceBuilder_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// KPack Builder resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource _builderResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuilderResource(); + + /// + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the builder resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// Builder buildpack groups. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Builder buildpack groups.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Builder buildpack groups.", + SerializedName = @"buildpackGroups", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpacksGroupProperties[] BuildpackGroup { get => _builderResourceBody.BuildpackGroup ?? null /* arrayOf */; set => _builderResourceBody.BuildpackGroup = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Id of the ClusterStack. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Id of the ClusterStack.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Id of the ClusterStack.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + public string StackId { get => _builderResourceBody.StackId ?? null; set => _builderResourceBody.StackId = value; } + + /// Version of the ClusterStack + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Version of the ClusterStack")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the ClusterStack", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string StackVersion { get => _builderResourceBody.StackVersion ?? null; set => _builderResourceBody.StackVersion = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformBuildServiceBuilder_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformBuildServiceBuilder_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformBuildServiceBuilder_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._builderResourceBody = this._builderResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.BuildServiceName = this.BuildServiceName; + clone.BuilderName = this.BuilderName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformBuildServiceBuilder_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceBuilderCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceBuilderCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuilderName, _builderResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuilderName=BuilderName,body=_builderResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName, body=_builderResourceBody }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName, body=_builderResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuilderResource + /// 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.AppPlatform.Models.Api20221101Preview.IBuilderResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildpackBinding_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildpackBinding_CreateExpanded.cs new file mode 100644 index 000000000000..18d7d04e976c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBuildpackBinding_CreateExpanded.cs @@ -0,0 +1,561 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update a buildpack binding. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings/{buildpackBindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformBuildpackBinding_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update a buildpack binding.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformBuildpackBinding_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Buildpack Binding Resource object + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource _buildpackBindingBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BuildpackBindingResource(); + + /// + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Buildpack Binding Type + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Buildpack Binding Type")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Buildpack Binding Type", + SerializedName = @"bindingType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType BindingType { get => _buildpackBindingBody.BindingType ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BindingType)""); set => _buildpackBindingBody.BindingType = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the builder resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; } } + + /// Non-sensitive properties for launchProperties + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Non-sensitive properties for launchProperties")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-sensitive properties for launchProperties", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchProperties LaunchProperty { get => _buildpackBindingBody.PropertiesLaunchPropertiesProperties ?? null /* object */; set => _buildpackBindingBody.PropertiesLaunchPropertiesProperties = value; } + + /// Sensitive properties for launchProperties + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Sensitive properties for launchProperties")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sensitive properties for launchProperties", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingLaunchPropertiesSecrets LaunchPropertySecret { get => _buildpackBindingBody.LaunchPropertySecret ?? null /* object */; set => _buildpackBindingBody.LaunchPropertySecret = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Buildpack Binding Name + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Buildpack Binding Name")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Buildpack Binding Name", + SerializedName = @"buildpackBindingName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("BuildpackBindingName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformBuildpackBinding_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformBuildpackBinding_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformBuildpackBinding_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._buildpackBindingBody = this._buildpackBindingBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.BuildServiceName = this.BuildServiceName; + clone.BuilderName = this.BuilderName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformBuildpackBinding_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildpackBindingCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildpackBindingCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuilderName, Name, _buildpackBindingBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuilderName=BuilderName,Name=Name,body=_buildpackBindingBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName, Name=Name, body=_buildpackBindingBody }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName, Name=Name, body=_buildpackBindingBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + /// 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.AppPlatform.Models.Api20221101Preview.IBuildpackBindingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCertificate_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCertificate_CreateExpanded.cs new file mode 100644 index 000000000000..bd62d21ee16f --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCertificate_CreateExpanded.cs @@ -0,0 +1,506 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update certificate resource. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformCertificate_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update certificate resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformCertificate_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Certificate resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource _certificateResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CertificateResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the certificate resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the certificate resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the certificate resource.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.HttpPipeline Pipeline { get; set; } + + /// The type of the certificate source. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the certificate source.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the certificate source.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string PropertiesType { get => _certificateResourceBody.PropertiesType ?? null; set => _certificateResourceBody.PropertiesType = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformCertificate_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformCertificate_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformCertificate_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._certificateResourceBody = this._certificateResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformCertificate_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CertificatesCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _certificateResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_certificateResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_certificateResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_certificateResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICertificateResource + /// 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.AppPlatform.Models.Api20221101Preview.ICertificateResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformConfigurationService_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformConfigurationService_CreateExpanded.cs new file mode 100644 index 000000000000..a8e03ce93e59 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformConfigurationService_CreateExpanded.cs @@ -0,0 +1,509 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Create the default Application Configuration Service or update the existing Application Configuration Service. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformConfigurationService_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create the default Application Configuration Service or update the existing Application Configuration Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformConfigurationService_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Application Configuration Service resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource _configurationServiceResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Repositories of Application Configuration Service git property. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Repositories of Application Configuration Service git property.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of Application Configuration Service git property.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get => _configurationServiceResourceBody.GitPropertyRepository ?? null /* arrayOf */; set => _configurationServiceResourceBody.GitPropertyRepository = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Application Configuration Service. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Application Configuration Service.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Application Configuration Service.", + SerializedName = @"configurationServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ConfigurationServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformConfigurationService_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformConfigurationService_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformConfigurationService_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._configurationServiceResourceBody = this._configurationServiceResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformConfigurationService_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigurationServicesCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigurationServicesCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _configurationServiceResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_configurationServiceResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_configurationServiceResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_configurationServiceResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomDomain_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomDomain_CreateExpanded.cs new file mode 100644 index 000000000000..10e61212b47f --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomDomain_CreateExpanded.cs @@ -0,0 +1,531 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update custom domain of one lifecycle application. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformCustomDomain_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update custom domain of one lifecycle application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformCustomDomain_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource _domainResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The bound certificate name of domain. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The bound certificate name of domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The bound certificate name of domain.", + SerializedName = @"certName", + PossibleTypes = new [] { typeof(string) })] + public string CertName { get => _domainResourceBody.CertName ?? null; set => _domainResourceBody.CertName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the custom domain resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the custom domain resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the custom domain resource.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The thumbprint of bound certificate. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The thumbprint of bound certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + public string Thumbprint { get => _domainResourceBody.Thumbprint ?? null; set => _domainResourceBody.Thumbprint = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformCustomDomain_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformCustomDomain_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformCustomDomain_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._domainResourceBody = this._domainResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DomainName = this.DomainName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformCustomDomain_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomDomainsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomDomainsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, AppName, DomainName, _domainResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DomainName=DomainName,body=_domainResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DomainName=DomainName, body=_domainResourceBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, DomainName=DomainName, body=_domainResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomizedAccelerator_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomizedAccelerator_CreateExpanded.cs new file mode 100644 index 000000000000..69a6d43481ae --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomizedAccelerator_CreateExpanded.cs @@ -0,0 +1,654 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update the customized accelerator. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformCustomizedAccelerator_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update the customized accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformCustomizedAccelerator_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Customized accelerator resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource _customizedAcceleratorResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorResource(); + + /// . + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"acceleratorTags", + PossibleTypes = new [] { typeof(string) })] + public string[] AcceleratorTag { get => _customizedAcceleratorResourceBody.AcceleratorTag ?? null /* arrayOf */; set => _customizedAcceleratorResourceBody.AcceleratorTag = value; } + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// The type of the auth setting. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the auth setting.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the auth setting.", + SerializedName = @"authType", + PossibleTypes = new [] { typeof(string) })] + public string AuthSettingAuthType { get => _customizedAcceleratorResourceBody.AuthSettingAuthType ?? null; set => _customizedAcceleratorResourceBody.AuthSettingAuthType = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => _customizedAcceleratorResourceBody.Description ?? null; set => _customizedAcceleratorResourceBody.Description = value; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + public string DisplayName { get => _customizedAcceleratorResourceBody.DisplayName ?? null; set => _customizedAcceleratorResourceBody.DisplayName = value; } + + /// Git repository branch to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository branch to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository branch to be used.", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryBranch { get => _customizedAcceleratorResourceBody.GitRepositoryBranch ?? null; set => _customizedAcceleratorResourceBody.GitRepositoryBranch = value; } + + /// Git repository commit to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository commit to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository commit to be used.", + SerializedName = @"commit", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryCommit { get => _customizedAcceleratorResourceBody.GitRepositoryCommit ?? null; set => _customizedAcceleratorResourceBody.GitRepositoryCommit = value; } + + /// Git repository tag to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository tag to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository tag to be used.", + SerializedName = @"gitTag", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryGitTag { get => _customizedAcceleratorResourceBody.GitRepositoryGitTag ?? null; set => _customizedAcceleratorResourceBody.GitRepositoryGitTag = value; } + + /// Interval for checking for updates to Git or image repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Interval for checking for updates to Git or image repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Interval for checking for updates to Git or image repository.", + SerializedName = @"intervalInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int GitRepositoryIntervalInSecond { get => _customizedAcceleratorResourceBody.GitRepositoryIntervalInSecond ?? default(int); set => _customizedAcceleratorResourceBody.GitRepositoryIntervalInSecond = value; } + + /// Git repository URL for the accelerator. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository URL for the accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository URL for the accelerator.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryUrl { get => _customizedAcceleratorResourceBody.GitRepositoryUrl ?? null; set => _customizedAcceleratorResourceBody.GitRepositoryUrl = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"iconUrl", + PossibleTypes = new [] { typeof(string) })] + public string IconUrl { get => _customizedAcceleratorResourceBody.IconUrl ?? null; set => _customizedAcceleratorResourceBody.IconUrl = 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the customized accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the customized accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the customized accelerator.", + SerializedName = @"customizedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CustomizedAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _customizedAcceleratorResourceBody.SkuCapacity ?? default(int); set => _customizedAcceleratorResourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _customizedAcceleratorResourceBody.SkuName ?? null; set => _customizedAcceleratorResourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _customizedAcceleratorResourceBody.SkuTier ?? null; set => _customizedAcceleratorResourceBody.SkuTier = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformCustomizedAccelerator_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformCustomizedAccelerator_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformCustomizedAccelerator_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._customizedAcceleratorResourceBody = this._customizedAcceleratorResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.ApplicationAcceleratorName = this.ApplicationAcceleratorName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformCustomizedAccelerator_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomizedAcceleratorsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomizedAcceleratorsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, Name, _customizedAcceleratorResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName,Name=Name,body=_customizedAcceleratorResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, Name=Name, body=_customizedAcceleratorResourceBody }) + { + 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, Name=Name, body=_customizedAcceleratorResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_Generate.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_Generate.cs new file mode 100644 index 000000000000..2b35659f19e6 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_Generate.cs @@ -0,0 +1,524 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Generate Heap Dump + /// + /// [OpenAPI] GenerateHeapDump=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateHeapDump" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeploymentHeapDump_Generate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Generate Heap Dump")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeploymentHeapDump_Generate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParameter; + + /// Diagnostic parameters of diagnostic operations + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Diagnostic parameters of diagnostic operations", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Diagnostic parameters of diagnostic operations", + SerializedName = @"diagnosticParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters DiagnosticParameter { get => this._diagnosticParameter; set => this._diagnosticParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformDeploymentHeapDump_Generate + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeploymentHeapDump_Generate Clone() + { + var clone = new NewAzAppPlatformDeploymentHeapDump_Generate(); + 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.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + clone.DiagnosticParameter = this.DiagnosticParameter; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeploymentHeapDump_Generate() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGenerateHeapDump' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsGenerateHeapDump(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, DiagnosticParameter, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName,body=DiagnosticParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=DiagnosticParameter }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=DiagnosticParameter }) + { + 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/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateExpanded.cs new file mode 100644 index 000000000000..b5e85795a6b3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateExpanded.cs @@ -0,0 +1,547 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Generate Heap Dump + /// + /// [OpenAPI] GenerateHeapDump=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateHeapDump" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeploymentHeapDump_GenerateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Generate Heap Dump")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeploymentHeapDump_GenerateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Diagnostic parameters of diagnostic operations + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DiagnosticParameters(); + + /// App instance name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "App instance name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"App instance name", + SerializedName = @"appInstance", + PossibleTypes = new [] { typeof(string) })] + public string AppInstance { get => _diagnosticParametersBody.AppInstance ?? null; set => _diagnosticParametersBody.AppInstance = value; } + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = value; } + + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Duration of your JFR. 1 min can be represented by 1m or 60s.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Duration of your JFR. 1 min can be represented by 1m or 60s.", + SerializedName = @"duration", + PossibleTypes = new [] { typeof(string) })] + public string Duration { get => _diagnosticParametersBody.Duration ?? null; set => _diagnosticParametersBody.Duration = value; } + + /// Your target file path in your own BYOS + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Your target file path in your own BYOS")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Your target file path in your own BYOS", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => _diagnosticParametersBody.FilePath ?? null; set => _diagnosticParametersBody.FilePath = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformDeploymentHeapDump_GenerateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeploymentHeapDump_GenerateExpanded Clone() + { + var clone = new NewAzAppPlatformDeploymentHeapDump_GenerateExpanded(); + 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._diagnosticParametersBody = this._diagnosticParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeploymentHeapDump_GenerateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGenerateHeapDump' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsGenerateHeapDump(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, _diagnosticParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName,body=_diagnosticParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=_diagnosticParametersBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=_diagnosticParametersBody }) + { + 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/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity.cs new file mode 100644 index 000000000000..b8e6fc69c08c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity.cs @@ -0,0 +1,475 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Generate Heap Dump + /// + /// [OpenAPI] GenerateHeapDump=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateHeapDump" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeploymentHeapDump_GenerateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Generate Heap Dump")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParameter; + + /// Diagnostic parameters of diagnostic operations + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Diagnostic parameters of diagnostic operations", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Diagnostic parameters of diagnostic operations", + SerializedName = @"diagnosticParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters DiagnosticParameter { get => this._diagnosticParameter; set => this._diagnosticParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity Clone() + { + var clone = new NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity(); + 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.DiagnosticParameter = this.DiagnosticParameter; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentity() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGenerateHeapDump' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsGenerateHeapDumpViaIdentity(InputObject.Id, DiagnosticParameter, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsGenerateHeapDump(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, DiagnosticParameter, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DiagnosticParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DiagnosticParameter }) + { + 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=DiagnosticParameter }) + { + 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/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded.cs new file mode 100644 index 000000000000..660bdcbe494c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded.cs @@ -0,0 +1,501 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Generate Heap Dump + /// + /// [OpenAPI] GenerateHeapDump=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateHeapDump" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Generate Heap Dump")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Diagnostic parameters of diagnostic operations + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DiagnosticParameters(); + + /// App instance name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "App instance name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"App instance name", + SerializedName = @"appInstance", + PossibleTypes = new [] { typeof(string) })] + public string AppInstance { get => _diagnosticParametersBody.AppInstance ?? null; set => _diagnosticParametersBody.AppInstance = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Duration of your JFR. 1 min can be represented by 1m or 60s.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Duration of your JFR. 1 min can be represented by 1m or 60s.", + SerializedName = @"duration", + PossibleTypes = new [] { typeof(string) })] + public string Duration { get => _diagnosticParametersBody.Duration ?? null; set => _diagnosticParametersBody.Duration = value; } + + /// Your target file path in your own BYOS + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Your target file path in your own BYOS")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Your target file path in your own BYOS", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => _diagnosticParametersBody.FilePath ?? null; set => _diagnosticParametersBody.FilePath = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded Clone() + { + var clone = new NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded(); + 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._diagnosticParametersBody = this._diagnosticParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeploymentHeapDump_GenerateViaIdentityExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGenerateHeapDump' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsGenerateHeapDumpViaIdentity(InputObject.Id, _diagnosticParametersBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsGenerateHeapDump(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, _diagnosticParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_diagnosticParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_diagnosticParametersBody }) + { + 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=_diagnosticParametersBody }) + { + 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/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_Generate.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_Generate.cs new file mode 100644 index 000000000000..356600d1fff9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_Generate.cs @@ -0,0 +1,524 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Generate Thread Dump + /// + /// [OpenAPI] GenerateThreadDump=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateThreadDump" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeploymentThreadDump_Generate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Generate Thread Dump")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeploymentThreadDump_Generate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParameter; + + /// Diagnostic parameters of diagnostic operations + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Diagnostic parameters of diagnostic operations", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Diagnostic parameters of diagnostic operations", + SerializedName = @"diagnosticParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters DiagnosticParameter { get => this._diagnosticParameter; set => this._diagnosticParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformDeploymentThreadDump_Generate + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeploymentThreadDump_Generate Clone() + { + var clone = new NewAzAppPlatformDeploymentThreadDump_Generate(); + 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.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + clone.DiagnosticParameter = this.DiagnosticParameter; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeploymentThreadDump_Generate() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGenerateThreadDump' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsGenerateThreadDump(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, DiagnosticParameter, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName,body=DiagnosticParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=DiagnosticParameter }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=DiagnosticParameter }) + { + 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/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateExpanded.cs new file mode 100644 index 000000000000..791e9c73e562 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateExpanded.cs @@ -0,0 +1,547 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Generate Thread Dump + /// + /// [OpenAPI] GenerateThreadDump=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateThreadDump" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeploymentThreadDump_GenerateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Generate Thread Dump")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeploymentThreadDump_GenerateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Diagnostic parameters of diagnostic operations + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DiagnosticParameters(); + + /// App instance name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "App instance name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"App instance name", + SerializedName = @"appInstance", + PossibleTypes = new [] { typeof(string) })] + public string AppInstance { get => _diagnosticParametersBody.AppInstance ?? null; set => _diagnosticParametersBody.AppInstance = value; } + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = value; } + + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Duration of your JFR. 1 min can be represented by 1m or 60s.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Duration of your JFR. 1 min can be represented by 1m or 60s.", + SerializedName = @"duration", + PossibleTypes = new [] { typeof(string) })] + public string Duration { get => _diagnosticParametersBody.Duration ?? null; set => _diagnosticParametersBody.Duration = value; } + + /// Your target file path in your own BYOS + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Your target file path in your own BYOS")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Your target file path in your own BYOS", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => _diagnosticParametersBody.FilePath ?? null; set => _diagnosticParametersBody.FilePath = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformDeploymentThreadDump_GenerateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeploymentThreadDump_GenerateExpanded Clone() + { + var clone = new NewAzAppPlatformDeploymentThreadDump_GenerateExpanded(); + 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._diagnosticParametersBody = this._diagnosticParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeploymentThreadDump_GenerateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGenerateThreadDump' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsGenerateThreadDump(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, _diagnosticParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName,body=_diagnosticParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=_diagnosticParametersBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=_diagnosticParametersBody }) + { + 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/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity.cs new file mode 100644 index 000000000000..99bb8c0eae1c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity.cs @@ -0,0 +1,477 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Generate Thread Dump + /// + /// [OpenAPI] GenerateThreadDump=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateThreadDump" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeploymentThreadDump_GenerateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Generate Thread Dump")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParameter; + + /// Diagnostic parameters of diagnostic operations + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Diagnostic parameters of diagnostic operations", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Diagnostic parameters of diagnostic operations", + SerializedName = @"diagnosticParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters DiagnosticParameter { get => this._diagnosticParameter; set => this._diagnosticParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity Clone() + { + var clone = new NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity(); + 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.DiagnosticParameter = this.DiagnosticParameter; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentity() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGenerateThreadDump' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsGenerateThreadDumpViaIdentity(InputObject.Id, DiagnosticParameter, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsGenerateThreadDump(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, DiagnosticParameter, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DiagnosticParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DiagnosticParameter }) + { + 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=DiagnosticParameter }) + { + 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/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded.cs new file mode 100644 index 000000000000..c47307c1f7ef --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded.cs @@ -0,0 +1,501 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Generate Thread Dump + /// + /// [OpenAPI] GenerateThreadDump=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/generateThreadDump" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Generate Thread Dump")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Diagnostic parameters of diagnostic operations + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DiagnosticParameters(); + + /// App instance name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "App instance name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"App instance name", + SerializedName = @"appInstance", + PossibleTypes = new [] { typeof(string) })] + public string AppInstance { get => _diagnosticParametersBody.AppInstance ?? null; set => _diagnosticParametersBody.AppInstance = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Duration of your JFR. 1 min can be represented by 1m or 60s.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Duration of your JFR. 1 min can be represented by 1m or 60s.", + SerializedName = @"duration", + PossibleTypes = new [] { typeof(string) })] + public string Duration { get => _diagnosticParametersBody.Duration ?? null; set => _diagnosticParametersBody.Duration = value; } + + /// Your target file path in your own BYOS + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Your target file path in your own BYOS")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Your target file path in your own BYOS", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => _diagnosticParametersBody.FilePath ?? null; set => _diagnosticParametersBody.FilePath = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded Clone() + { + var clone = new NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded(); + 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._diagnosticParametersBody = this._diagnosticParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeploymentThreadDump_GenerateViaIdentityExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsGenerateThreadDump' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsGenerateThreadDumpViaIdentity(InputObject.Id, _diagnosticParametersBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsGenerateThreadDump(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, _diagnosticParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_diagnosticParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_diagnosticParametersBody }) + { + 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=_diagnosticParametersBody }) + { + 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/appplatform/generated/cmdlets/NewAzAppPlatformDeployment_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeployment_CreateExpanded.cs new file mode 100644 index 000000000000..80a39b38958b --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeployment_CreateExpanded.cs @@ -0,0 +1,587 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create a new Deployment or update an exiting Deployment. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDeployment_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create a new Deployment or update an exiting Deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDeployment_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Deployment resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource _deploymentResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource(); + + /// Indicates whether the Deployment is active + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the Deployment is active")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the Deployment is active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Active { get => _deploymentResourceBody.Active ?? default(global::System.Management.Automation.SwitchParameter); set => _deploymentResourceBody.Active = value; } + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Deployment settings of the Deployment + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Deployment settings of the Deployment")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deployment settings of the Deployment", + SerializedName = @"deploymentSettings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get => _deploymentResourceBody.DeploymentSetting ?? null /* object */; set => _deploymentResourceBody.DeploymentSetting = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DeploymentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _deploymentResourceBody.SkuCapacity ?? default(int); set => _deploymentResourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _deploymentResourceBody.SkuName ?? null; set => _deploymentResourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _deploymentResourceBody.SkuTier ?? null; set => _deploymentResourceBody.SkuTier = value; } + + /// Type of the source uploaded + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the source uploaded")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the source uploaded", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string SourceType { get => _deploymentResourceBody.SourceType ?? null; set => _deploymentResourceBody.SourceType = value; } + + /// Version of the source + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Version of the source")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the source", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string SourceVersion { get => _deploymentResourceBody.SourceVersion ?? null; set => _deploymentResourceBody.SourceVersion = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformDeployment_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDeployment_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformDeployment_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._deploymentResourceBody = this._deploymentResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDeployment_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, _deploymentResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name,body=_deploymentResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, Name=Name, body=_deploymentResourceBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, Name=Name, body=_deploymentResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDevToolPortal_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDevToolPortal_CreateExpanded.cs new file mode 100644 index 000000000000..ed4a278bcc27 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDevToolPortal_CreateExpanded.cs @@ -0,0 +1,577 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create the default Dev Tool Portal or update the existing Dev Tool Portal. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/DevToolPortals/{devToolPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformDevToolPortal_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create the default Dev Tool Portal or update the existing Dev Tool Portal.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformDevToolPortal_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Dev Tool Portal resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource _devToolPortalResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DevToolPortalResource(); + + /// State of the plugin + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "State of the plugin")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState ApplicationAcceleratorState { get => _devToolPortalResourceBody.ApplicationAcceleratorState ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState)""); set => _devToolPortalResourceBody.ApplicationAcceleratorState = value; } + + /// State of the plugin + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "State of the plugin")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"State of the plugin", + SerializedName = @"state", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState ApplicationLiveViewState { get => _devToolPortalResourceBody.ApplicationLiveViewState ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DevToolPortalFeatureState)""); set => _devToolPortalResourceBody.ApplicationLiveViewState = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Dev Tool Portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Dev Tool Portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Dev Tool Portal.", + SerializedName = @"devToolPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DevToolPortalName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Indicates whether the resource exposes public endpoint + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the resource exposes public endpoint")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the resource exposes public endpoint", + SerializedName = @"public", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Public { get => _devToolPortalResourceBody.Public ?? default(global::System.Management.Automation.SwitchParameter); set => _devToolPortalResourceBody.Public = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// The public identifier for the application + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The public identifier for the application")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyClientId { get => _devToolPortalResourceBody.SsoPropertyClientId ?? null; set => _devToolPortalResourceBody.SsoPropertyClientId = value; } + + /// The secret known only to the application and the authorization server + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The secret known only to the application and the authorization server")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyClientSecret { get => _devToolPortalResourceBody.SsoPropertyClientSecret ?? null; set => _devToolPortalResourceBody.SsoPropertyClientSecret = value; } + + /// The URI of a JSON file with generic OIDC provider configuration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The URI of a JSON file with generic OIDC provider configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of a JSON file with generic OIDC provider configuration.", + SerializedName = @"metadataUrl", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyMetadataUrl { get => _devToolPortalResourceBody.SsoPropertyMetadataUrl ?? null; set => _devToolPortalResourceBody.SsoPropertyMetadataUrl = value; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "It defines the specific actions applications can be allowed to do on a user's behalf")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scopes", + PossibleTypes = new [] { typeof(string) })] + public string[] SsoPropertyScope { get => _devToolPortalResourceBody.SsoPropertyScope ?? null /* arrayOf */; set => _devToolPortalResourceBody.SsoPropertyScope = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformDevToolPortal_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformDevToolPortal_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformDevToolPortal_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._devToolPortalResourceBody = this._devToolPortalResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformDevToolPortal_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DevToolPortalsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DevToolPortalsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _devToolPortalResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_devToolPortalResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_devToolPortalResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_devToolPortalResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + /// 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.AppPlatform.Models.Api20221101Preview.IDevToolPortalResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGatewayCustomDomain_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGatewayCustomDomain_CreateExpanded.cs new file mode 100644 index 000000000000..7792a07fe98e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGatewayCustomDomain_CreateExpanded.cs @@ -0,0 +1,520 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update the Spring Cloud Gateway custom domain. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformGatewayCustomDomain_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update the Spring Cloud Gateway custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformGatewayCustomDomain_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain of the Spring Cloud Gateway + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource _gatewayCustomDomainResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayCustomDomainResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the Spring Cloud Gateway custom domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Spring Cloud Gateway custom domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Spring Cloud Gateway custom domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The thumbprint of bound certificate. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The thumbprint of bound certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + public string Thumbprint { get => _gatewayCustomDomainResourceBody.Thumbprint ?? null; set => _gatewayCustomDomainResourceBody.Thumbprint = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformGatewayCustomDomain_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformGatewayCustomDomain_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformGatewayCustomDomain_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._gatewayCustomDomainResourceBody = this._gatewayCustomDomainResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.GatewayName = this.GatewayName; + clone.DomainName = this.DomainName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformGatewayCustomDomain_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewayCustomDomainsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayCustomDomainsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, DomainName, _gatewayCustomDomainResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName,DomainName=DomainName,body=_gatewayCustomDomainResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName, DomainName=DomainName, body=_gatewayCustomDomainResourceBody }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName, DomainName=DomainName, body=_gatewayCustomDomainResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayCustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGatewayRouteConfig_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGatewayRouteConfig_CreateExpanded.cs new file mode 100644 index 000000000000..ccf4577129be --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGatewayRouteConfig_CreateExpanded.cs @@ -0,0 +1,602 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs/{routeConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformGatewayRouteConfig_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create the default Spring Cloud Gateway route configs or update the existing Spring Cloud Gateway route configs.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformGatewayRouteConfig_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Spring Cloud Gateway route config resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource _gatewayRouteConfigResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayRouteConfigResource(); + + /// + /// The resource Id of the Azure Spring Apps app, required unless route defines `uri`. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The resource Id of the Azure Spring Apps app, required unless route defines `uri`.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The resource Id of the Azure Spring Apps app, required unless route defines `uri`.", + SerializedName = @"appResourceId", + PossibleTypes = new [] { typeof(string) })] + public string AppResourceId { get => _gatewayRouteConfigResourceBody.AppResourceId ?? null; set => _gatewayRouteConfigResourceBody.AppResourceId = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// To modify the request before sending it to the target endpoint, or the received response in app level. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "To modify the request before sending it to the target endpoint, or the received response in app level.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"To modify the request before sending it to the target endpoint, or the received response in app level.", + SerializedName = @"filters", + PossibleTypes = new [] { typeof(string) })] + public string[] Filter { get => _gatewayRouteConfigResourceBody.Filter ?? null /* arrayOf */; set => _gatewayRouteConfigResourceBody.Filter = value; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// The URI of OpenAPI specification. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The URI of OpenAPI specification.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of OpenAPI specification.", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + public string OpenApiUri { get => _gatewayRouteConfigResourceBody.OpenApiUri ?? null; set => _gatewayRouteConfigResourceBody.OpenApiUri = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.HttpPipeline Pipeline { get; set; } + + /// + /// A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request + /// headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be + /// matched to the request. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A number of conditions to evaluate a route for each request in app level. Each predicate may be evaluated against request headers and parameter values. All of the predicates associated with a route must evaluate to true for the route to be matched to the request.", + SerializedName = @"predicates", + PossibleTypes = new [] { typeof(string) })] + public string[] Predicate { get => _gatewayRouteConfigResourceBody.Predicate ?? null /* arrayOf */; set => _gatewayRouteConfigResourceBody.Predicate = value; } + + /// Protocol of routed Azure Spring Apps applications. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Protocol of routed Azure Spring Apps applications.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Protocol of routed Azure Spring Apps applications.", + SerializedName = @"protocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol Protocol { get => _gatewayRouteConfigResourceBody.Protocol ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.GatewayRouteConfigProtocol)""); set => _gatewayRouteConfigResourceBody.Protocol = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Array of API routes, each route contains properties such as `title`, `uri`, `ssoEnabled`, `predicates`, `filters`.", + SerializedName = @"routes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayApiRoute[] Route { get => _gatewayRouteConfigResourceBody.Route ?? null /* arrayOf */; set => _gatewayRouteConfigResourceBody.Route = value; } + + /// Backing field for property. + private string _routeConfigName; + + /// The name of the Spring Cloud Gateway route config. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Spring Cloud Gateway route config.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Spring Cloud Gateway route config.", + SerializedName = @"routeConfigName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string RouteConfigName { get => this._routeConfigName; set => this._routeConfigName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Enable Single Sign-On in app level. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Enable Single Sign-On in app level.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Enable Single Sign-On in app level.", + SerializedName = @"ssoEnabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter SsoEnabled { get => _gatewayRouteConfigResourceBody.SsoEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => _gatewayRouteConfigResourceBody.SsoEnabled = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformGatewayRouteConfig_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformGatewayRouteConfig_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformGatewayRouteConfig_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._gatewayRouteConfigResourceBody = this._gatewayRouteConfigResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.GatewayName = this.GatewayName; + clone.RouteConfigName = this.RouteConfigName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformGatewayRouteConfig_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewayRouteConfigsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayRouteConfigsCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, RouteConfigName, _gatewayRouteConfigResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName,RouteConfigName=RouteConfigName,body=_gatewayRouteConfigResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName, RouteConfigName=RouteConfigName, body=_gatewayRouteConfigResourceBody }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName, RouteConfigName=RouteConfigName, body=_gatewayRouteConfigResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayRouteConfigResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGateway_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGateway_CreateExpanded.cs new file mode 100644 index 000000000000..58493f554bb8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformGateway_CreateExpanded.cs @@ -0,0 +1,801 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// + /// Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformGateway_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create the default Spring Cloud Gateway or update the existing Spring Cloud Gateway.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformGateway_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Spring Cloud Gateway resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource _gatewayResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.GatewayResource(); + + /// + /// Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes + /// the API routes configured.`) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes the API routes configured.`)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Detailed description of the APIs available on the Gateway instance (default: `Generated OpenAPI 3 document that describes the API routes configured.`)", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string ApiMetadataPropertyDescription { get => _gatewayResourceBody.ApiMetadataPropertyDescription ?? null; set => _gatewayResourceBody.ApiMetadataPropertyDescription = value; } + + /// + /// Location of additional documentation for the APIs available on the Gateway instance + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Location of additional documentation for the APIs available on the Gateway instance")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Location of additional documentation for the APIs available on the Gateway instance", + SerializedName = @"documentation", + PossibleTypes = new [] { typeof(string) })] + public string ApiMetadataPropertyDocumentation { get => _gatewayResourceBody.ApiMetadataPropertyDocumentation ?? null; set => _gatewayResourceBody.ApiMetadataPropertyDocumentation = value; } + + /// Base URL that API consumers will use to access APIs on the Gateway instance. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Base URL that API consumers will use to access APIs on the Gateway instance.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Base URL that API consumers will use to access APIs on the Gateway instance.", + SerializedName = @"serverUrl", + PossibleTypes = new [] { typeof(string) })] + public string ApiMetadataPropertyServerUrl { get => _gatewayResourceBody.ApiMetadataPropertyServerUrl ?? null; set => _gatewayResourceBody.ApiMetadataPropertyServerUrl = value; } + + /// + /// Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`) + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`)")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Title describing the context of the APIs available on the Gateway instance (default: `Spring Cloud Gateway for K8S`)", + SerializedName = @"title", + PossibleTypes = new [] { typeof(string) })] + public string ApiMetadataPropertyTitle { get => _gatewayResourceBody.ApiMetadataPropertyTitle ?? null; set => _gatewayResourceBody.ApiMetadataPropertyTitle = value; } + + /// Version of APIs available on this Gateway instance (default: `unspecified`). + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Version of APIs available on this Gateway instance (default: `unspecified`).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of APIs available on this Gateway instance (default: `unspecified`).", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string ApiMetadataPropertyVersion { get => _gatewayResourceBody.ApiMetadataPropertyVersion ?? null; set => _gatewayResourceBody.ApiMetadataPropertyVersion = value; } + + /// Collection of APM type used in Spring Cloud Gateway + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of APM type used in Spring Cloud Gateway")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of APM type used in Spring Cloud Gateway", + SerializedName = @"apmTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ApmType[] ApmType { get => _gatewayResourceBody.ApmType ?? null /* arrayOf */; set => _gatewayResourceBody.ApmType = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// + /// Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Whether user credentials are supported on cross-site requests. Valid values: `true`, `false`.", + SerializedName = @"allowCredentials", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter CorPropertyAllowCredentials { get => _gatewayResourceBody.CorPropertyAllowCredentials ?? default(global::System.Management.Automation.SwitchParameter); set => _gatewayResourceBody.CorPropertyAllowCredentials = value; } + + /// + /// Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed headers in cross-site requests. The special value `*` allows actual requests to send any header.", + SerializedName = @"allowedHeaders", + PossibleTypes = new [] { typeof(string) })] + public string[] CorPropertyAllowedHeader { get => _gatewayResourceBody.CorPropertyAllowedHeader ?? null /* arrayOf */; set => _gatewayResourceBody.CorPropertyAllowedHeader = value; } + + /// + /// Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are + /// allowed by default. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are allowed by default.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed HTTP methods on cross-site requests. The special value `*` allows all methods. If not set, `GET` and `HEAD` are allowed by default.", + SerializedName = @"allowedMethods", + PossibleTypes = new [] { typeof(string) })] + public string[] CorPropertyAllowedMethod { get => _gatewayResourceBody.CorPropertyAllowedMethod ?? null /* arrayOf */; set => _gatewayResourceBody.CorPropertyAllowedMethod = value; } + + /// + /// Allowed origins to make cross-site requests. The special value `*` allows all domains. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allowed origins to make cross-site requests. The special value `*` allows all domains.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allowed origins to make cross-site requests. The special value `*` allows all domains.", + SerializedName = @"allowedOrigins", + PossibleTypes = new [] { typeof(string) })] + public string[] CorPropertyAllowedOrigin { get => _gatewayResourceBody.CorPropertyAllowedOrigin ?? null /* arrayOf */; set => _gatewayResourceBody.CorPropertyAllowedOrigin = value; } + + /// HTTP response headers to expose for cross-site requests. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "HTTP response headers to expose for cross-site requests.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"HTTP response headers to expose for cross-site requests.", + SerializedName = @"exposedHeaders", + PossibleTypes = new [] { typeof(string) })] + public string[] CorPropertyExposedHeader { get => _gatewayResourceBody.CorPropertyExposedHeader ?? null /* arrayOf */; set => _gatewayResourceBody.CorPropertyExposedHeader = value; } + + /// + /// How long, in seconds, the response from a pre-flight request can be cached by clients. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "How long, in seconds, the response from a pre-flight request can be cached by clients.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How long, in seconds, the response from a pre-flight request can be cached by clients.", + SerializedName = @"maxAge", + PossibleTypes = new [] { typeof(int) })] + public int CorPropertyMaxAge { get => _gatewayResourceBody.CorPropertyMaxAge ?? default(int); set => _gatewayResourceBody.CorPropertyMaxAge = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Non-sensitive properties + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Non-sensitive properties")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Non-sensitive properties", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesProperties EnvironmentVariableProperty { get => _gatewayResourceBody.EnvironmentVariableProperty ?? null /* object */; set => _gatewayResourceBody.EnvironmentVariableProperty = value; } + + /// Sensitive properties + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Sensitive properties")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Sensitive properties", + SerializedName = @"secrets", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayPropertiesEnvironmentVariablesSecrets EnvironmentVariableSecret { get => _gatewayResourceBody.EnvironmentVariableSecret ?? null /* object */; set => _gatewayResourceBody.EnvironmentVariableSecret = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Indicate if only https is allowed. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicate if only https is allowed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter HttpsOnly { get => _gatewayResourceBody.HttpsOnly ?? default(global::System.Management.Automation.SwitchParameter); set => _gatewayResourceBody.HttpsOnly = 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("GatewayName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Indicates whether the Spring Cloud Gateway exposes endpoint. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the Spring Cloud Gateway exposes endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the Spring Cloud Gateway exposes endpoint.", + SerializedName = @"public", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Public { get => _gatewayResourceBody.Public ?? default(global::System.Management.Automation.SwitchParameter); set => _gatewayResourceBody.Public = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Cpu allocated to each Spring Cloud Gateway instance. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Cpu allocated to each Spring Cloud Gateway instance.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Cpu allocated to each Spring Cloud Gateway instance.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(string) })] + public string ResourceRequestsCpu { get => _gatewayResourceBody.ResourceRequestsCpu ?? null; set => _gatewayResourceBody.ResourceRequestsCpu = value; } + + /// Memory allocated to each Spring Cloud Gateway instance. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Memory allocated to each Spring Cloud Gateway instance.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Memory allocated to each Spring Cloud Gateway instance.", + SerializedName = @"memory", + PossibleTypes = new [] { typeof(string) })] + public string ResourceRequestsMemory { get => _gatewayResourceBody.ResourceRequestsMemory ?? null; set => _gatewayResourceBody.ResourceRequestsMemory = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _gatewayResourceBody.SkuCapacity ?? default(int); set => _gatewayResourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _gatewayResourceBody.SkuName ?? null; set => _gatewayResourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _gatewayResourceBody.SkuTier ?? null; set => _gatewayResourceBody.SkuTier = value; } + + /// The public identifier for the application + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The public identifier for the application")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The public identifier for the application", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyClientId { get => _gatewayResourceBody.SsoPropertyClientId ?? null; set => _gatewayResourceBody.SsoPropertyClientId = value; } + + /// The secret known only to the application and the authorization server + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The secret known only to the application and the authorization server")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The secret known only to the application and the authorization server", + SerializedName = @"clientSecret", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyClientSecret { get => _gatewayResourceBody.SsoPropertyClientSecret ?? null; set => _gatewayResourceBody.SsoPropertyClientSecret = value; } + + /// The URI of Issuer Identifier + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The URI of Issuer Identifier")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URI of Issuer Identifier", + SerializedName = @"issuerUri", + PossibleTypes = new [] { typeof(string) })] + public string SsoPropertyIssuerUri { get => _gatewayResourceBody.SsoPropertyIssuerUri ?? null; set => _gatewayResourceBody.SsoPropertyIssuerUri = value; } + + /// + /// It defines the specific actions applications can be allowed to do on a user's behalf + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "It defines the specific actions applications can be allowed to do on a user's behalf")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"It defines the specific actions applications can be allowed to do on a user's behalf", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + public string[] SsoPropertyScope { get => _gatewayResourceBody.SsoPropertyScope ?? null /* arrayOf */; set => _gatewayResourceBody.SsoPropertyScope = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformGateway_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformGateway_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformGateway_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._gatewayResourceBody = this._gatewayResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformGateway_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewaysCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewaysCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _gatewayResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_gatewayResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_gatewayResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_gatewayResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGatewayResource + /// 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.AppPlatform.Models.Api20221101Preview.IGatewayResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_Regenerate.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_Regenerate.cs new file mode 100644 index 000000000000..618b1a95ff34 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_Regenerate.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Regenerate a test key for a Service. + /// + /// [OpenAPI] RegenerateTestKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/regenerateTestKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformServiceTestKey_Regenerate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Regenerate a test key for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformServiceTestKey_Regenerate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload _regenerateTestKeyRequest; + + /// Regenerate test key request payload + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Regenerate test key request payload", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Regenerate test key request payload", + SerializedName = @"regenerateTestKeyRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload RegenerateTestKeyRequest { get => this._regenerateTestKeyRequest; set => this._regenerateTestKeyRequest = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformServiceTestKey_Regenerate() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesRegenerateTestKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesRegenerateTestKey(SubscriptionId, ResourceGroupName, ServiceName, RegenerateTestKeyRequest, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,body=RegenerateTestKeyRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, body=RegenerateTestKeyRequest }) + { + 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, ServiceName=ServiceName, body=RegenerateTestKeyRequest }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateExpanded.cs new file mode 100644 index 000000000000..bfc7f8b7b523 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Regenerate a test key for a Service. + /// + /// [OpenAPI] RegenerateTestKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/regenerateTestKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformServiceTestKey_RegenerateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Regenerate a test key for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformServiceTestKey_RegenerateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Regenerate test key request payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload _regenerateTestKeyRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RegenerateTestKeyRequestPayload(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; } } + + /// Type of the test key + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Type of the test key")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the test key", + SerializedName = @"keyType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType KeyType { get => _regenerateTestKeyRequestBody.KeyType; set => _regenerateTestKeyRequestBody.KeyType = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformServiceTestKey_RegenerateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesRegenerateTestKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesRegenerateTestKey(SubscriptionId, ResourceGroupName, ServiceName, _regenerateTestKeyRequestBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,body=_regenerateTestKeyRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, body=_regenerateTestKeyRequestBody }) + { + 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, ServiceName=ServiceName, body=_regenerateTestKeyRequestBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentity.cs new file mode 100644 index 000000000000..53a3f1b6127a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Regenerate a test key for a Service. + /// + /// [OpenAPI] RegenerateTestKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/regenerateTestKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformServiceTestKey_RegenerateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Regenerate a test key for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformServiceTestKey_RegenerateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload _regenerateTestKeyRequest; + + /// Regenerate test key request payload + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Regenerate test key request payload", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Regenerate test key request payload", + SerializedName = @"regenerateTestKeyRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload RegenerateTestKeyRequest { get => this._regenerateTestKeyRequest; set => this._regenerateTestKeyRequest = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformServiceTestKey_RegenerateViaIdentity() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesRegenerateTestKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesRegenerateTestKeyViaIdentity(InputObject.Id, RegenerateTestKeyRequest, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesRegenerateTestKey(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, RegenerateTestKeyRequest, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RegenerateTestKeyRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RegenerateTestKeyRequest }) + { + 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=RegenerateTestKeyRequest }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded.cs new file mode 100644 index 000000000000..af594b84593e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded.cs @@ -0,0 +1,400 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Regenerate a test key for a Service. + /// + /// [OpenAPI] RegenerateTestKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/regenerateTestKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Regenerate a test key for a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Regenerate test key request payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IRegenerateTestKeyRequestPayload _regenerateTestKeyRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.RegenerateTestKeyRequestPayload(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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; } } + + /// Type of the test key + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Type of the test key")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the test key", + SerializedName = @"keyType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType KeyType { get => _regenerateTestKeyRequestBody.KeyType; set => _regenerateTestKeyRequestBody.KeyType = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesRegenerateTestKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesRegenerateTestKeyViaIdentity(InputObject.Id, _regenerateTestKeyRequestBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesRegenerateTestKey(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, _regenerateTestKeyRequestBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_regenerateTestKeyRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_regenerateTestKeyRequestBody }) + { + 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=_regenerateTestKeyRequestBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITestKeys + /// 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.AppPlatform.Models.Api20221101Preview.ITestKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformService_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformService_CreateExpanded.cs new file mode 100644 index 000000000000..eca63002a565 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformService_CreateExpanded.cs @@ -0,0 +1,680 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create a new Service or update an exiting Service. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformService_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create a new Service or update an exiting Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformService_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Service resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource _resourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Ingress read time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress read time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressConfigReadTimeoutInSecond { get => _resourceBody.IngressConfigReadTimeoutInSecond ?? default(int); set => _resourceBody.IngressConfigReadTimeoutInSecond = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// The GEO location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The GEO location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The GEO location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _resourceBody.Location ?? null; set => _resourceBody.Location = value; } + + /// The plan id of the 3rd Party Artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The plan id of the 3rd Party Artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The plan id of the 3rd Party Artifact that is being procured.", + SerializedName = @"plan", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourcePlan { get => _resourceBody.MarketplaceResourcePlan ?? null; set => _resourceBody.MarketplaceResourcePlan = value; } + + /// The 3rd Party artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The 3rd Party artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured.", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourceProduct { get => _resourceBody.MarketplaceResourceProduct ?? null; set => _resourceBody.MarketplaceResourceProduct = value; } + + /// The publisher id of the 3rd Party Artifact that is being bought. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The publisher id of the 3rd Party Artifact that is being bought.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher id of the 3rd Party Artifact that is being bought.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourcePublisher { get => _resourceBody.MarketplaceResourcePublisher ?? null; set => _resourceBody.MarketplaceResourcePublisher = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources for customer apps in Azure Spring Apps")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources for customer apps in Azure Spring Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppNetworkResourceGroup { get => _resourceBody.NetworkProfileAppNetworkResourceGroup ?? null; set => _resourceBody.NetworkProfileAppNetworkResourceGroup = value; } + + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppSubnetId { get => _resourceBody.NetworkProfileAppSubnetId ?? null; set => _resourceBody.NetworkProfileAppSubnetId = value; } + + /// The egress traffic type of Azure Spring Apps VNet instances. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The egress traffic type of Azure Spring Apps VNet instances.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The egress traffic type of Azure Spring Apps VNet instances.", + SerializedName = @"outboundType", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileOutboundType { get => _resourceBody.NetworkProfileOutboundType ?? null; set => _resourceBody.NetworkProfileOutboundType = value; } + + /// Azure Spring Apps service reserved CIDR + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Spring Apps service reserved CIDR")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Apps service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceCidr { get => _resourceBody.NetworkProfileServiceCidr ?? null; set => _resourceBody.NetworkProfileServiceCidr = value; } + + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Apps Service Runtime")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceRuntimeNetworkResourceGroup { get => _resourceBody.NetworkProfileServiceRuntimeNetworkResourceGroup ?? null; set => _resourceBody.NetworkProfileServiceRuntimeNetworkResourceGroup = value; } + + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceRuntimeSubnetId { get => _resourceBody.NetworkProfileServiceRuntimeSubnetId ?? null; set => _resourceBody.NetworkProfileServiceRuntimeSubnetId = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _resourceBody.SkuCapacity ?? default(int); set => _resourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _resourceBody.SkuName ?? null; set => _resourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _resourceBody.SkuTier ?? null; set => _resourceBody.SkuTier = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the service which is a list of key value pairs that describe the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the service which is a list of key value pairs that describe the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags Tag { get => _resourceBody.Tag ?? null /* object */; set => _resourceBody.Tag = value; } + + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the log stream in vnet injection instance could be accessed from internet.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the log stream in vnet injection instance could be accessed from internet.", + SerializedName = @"logStreamPublicEndpoint", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetAddonLogStreamPublicEndpoint { get => _resourceBody.VnetAddonLogStreamPublicEndpoint ?? default(global::System.Management.Automation.SwitchParameter); set => _resourceBody.VnetAddonLogStreamPublicEndpoint = value; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ZoneRedundant { get => _resourceBody.ZoneRedundant ?? default(global::System.Management.Automation.SwitchParameter); set => _resourceBody.ZoneRedundant = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformService_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformService_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformService_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._resourceBody = this._resourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformService_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _resourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,Name=Name,body=_resourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, Name=Name, body=_resourceBody }) + { + 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, Name=Name, body=_resourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformStorage_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformStorage_CreateExpanded.cs new file mode 100644 index 000000000000..eb3daf3a34f0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformStorage_CreateExpanded.cs @@ -0,0 +1,495 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Create or update storage resource. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzAppPlatformStorage_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Create or update storage resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class NewAzAppPlatformStorage_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Storage resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource _storageResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.StorageResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the storage resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the storage resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the storage resource.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("StorageName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzAppPlatformStorage_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.NewAzAppPlatformStorage_CreateExpanded Clone() + { + var clone = new NewAzAppPlatformStorage_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._storageResourceBody = this._storageResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 NewAzAppPlatformStorage_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'StoragesCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.StoragesCreateOrUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _storageResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_storageResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_storageResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_storageResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IStorageResource + /// 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.AppPlatform.Models.Api20221101Preview.IStorageResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortalCustomDomain_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortalCustomDomain_Delete.cs new file mode 100644 index 000000000000..6537cae977f1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortalCustomDomain_Delete.cs @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the API portal custom domain. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApiPortalCustomDomain_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the API portal custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApiPortalCustomDomain_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _apiPortalName; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApiPortalName { get => this._apiPortalName; set => this._apiPortalName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the API portal custom domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the API portal custom domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the API portal custom domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformApiPortalCustomDomain_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApiPortalCustomDomain_Delete Clone() + { + var clone = new RemoveAzAppPlatformApiPortalCustomDomain_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.ServiceName = this.ServiceName; + clone.ApiPortalName = this.ApiPortalName; + clone.DomainName = this.DomainName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalCustomDomainsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalCustomDomainsDelete(SubscriptionId, ResourceGroupName, ServiceName, ApiPortalName, DomainName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApiPortalName=ApiPortalName,DomainName=DomainName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApiPortalCustomDomain_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, DomainName=DomainName }) + { + 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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, DomainName=DomainName }) + { + 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/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortalCustomDomain_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortalCustomDomain_DeleteViaIdentity.cs new file mode 100644 index 000000000000..4ca743319cd8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortalCustomDomain_DeleteViaIdentity.cs @@ -0,0 +1,497 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the API portal custom domain. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApiPortalCustomDomain_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the API portal custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApiPortalCustomDomain_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzAppPlatformApiPortalCustomDomain_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApiPortalCustomDomain_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformApiPortalCustomDomain_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalCustomDomainsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApiPortalCustomDomainsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApiPortalName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApiPortalName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApiPortalCustomDomainsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApiPortalName ?? null, InputObject.DomainName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApiPortalCustomDomain_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortal_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortal_Delete.cs new file mode 100644 index 000000000000..4b556669a21d --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortal_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the default API portal. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApiPortal_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the default API portal.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApiPortal_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApiPortalName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformApiPortal_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApiPortal_Delete Clone() + { + var clone = new RemoveAzAppPlatformApiPortal_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalsDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApiPortal_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortal_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortal_DeleteViaIdentity.cs new file mode 100644 index 000000000000..33fbab7a64fb --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApiPortal_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the default API portal. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApiPortal_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the default API portal.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApiPortal_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformApiPortal_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApiPortal_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformApiPortal_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApiPortalsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApiPortalName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApiPortalName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApiPortalsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApiPortalName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApiPortal_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_Delete.cs new file mode 100644 index 000000000000..a0b0906ff532 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete an App. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApp_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete an App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApp_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("AppName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformApp_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApp_Delete Clone() + { + var clone = new RemoveAzAppPlatformApp_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApp_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_DeleteViaIdentity.cs new file mode 100644 index 000000000000..74598840ed68 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete an App. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApp_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete an App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApp_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformApp_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApp_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformApp_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AppsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AppsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApp_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationAccelerator_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationAccelerator_Delete.cs new file mode 100644 index 000000000000..27fc9582f65e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationAccelerator_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the application accelerator. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApplicationAccelerator_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the application accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApplicationAccelerator_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformApplicationAccelerator_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApplicationAccelerator_Delete Clone() + { + var clone = new RemoveAzAppPlatformApplicationAccelerator_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationAcceleratorsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationAcceleratorsDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApplicationAccelerator_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationAccelerator_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationAccelerator_DeleteViaIdentity.cs new file mode 100644 index 000000000000..454a6c796e8d --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationAccelerator_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the application accelerator. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApplicationAccelerator_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the application accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApplicationAccelerator_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzAppPlatformApplicationAccelerator_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApplicationAccelerator_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformApplicationAccelerator_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationAcceleratorsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationAcceleratorsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationAcceleratorsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApplicationAccelerator_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationLiveView_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationLiveView_Delete.cs new file mode 100644 index 000000000000..de32203451ef --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationLiveView_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Application Live View. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationLiveViews/{applicationLiveViewName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApplicationLiveView_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Application Live View.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApplicationLiveView_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Application Live View. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Application Live View.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Application Live View.", + SerializedName = @"applicationLiveViewName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ApplicationLiveViewName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformApplicationLiveView_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApplicationLiveView_Delete Clone() + { + var clone = new RemoveAzAppPlatformApplicationLiveView_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationLiveViewsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApplicationLiveViewsDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApplicationLiveView_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationLiveView_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationLiveView_DeleteViaIdentity.cs new file mode 100644 index 000000000000..3725d32a6e6c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApplicationLiveView_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Application Live View. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationLiveViews/{applicationLiveViewName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformApplicationLiveView_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Application Live View.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformApplicationLiveView_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzAppPlatformApplicationLiveView_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformApplicationLiveView_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformApplicationLiveView_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApplicationLiveViewsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApplicationLiveViewsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationLiveViewName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationLiveViewName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApplicationLiveViewsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationLiveViewName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformApplicationLiveView_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_Delete.cs new file mode 100644 index 000000000000..98b30804b3c0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_Delete.cs @@ -0,0 +1,545 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete a Binding. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformBinding_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete a Binding.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformBinding_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Binding resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Binding resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Binding resource.", + SerializedName = @"bindingName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("BindingName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformBinding_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformBinding_Delete Clone() + { + var clone = new RemoveAzAppPlatformBinding_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.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BindingsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BindingsDelete(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformBinding_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, 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, ServiceName=ServiceName, AppName=AppName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_DeleteViaIdentity.cs new file mode 100644 index 000000000000..3ce675a47477 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_DeleteViaIdentity.cs @@ -0,0 +1,495 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete a Binding. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformBinding_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete a Binding.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformBinding_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformBinding_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformBinding_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformBinding_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BindingsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BindingsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BindingName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BindingName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BindingsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.BindingName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformBinding_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildServiceBuilder_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildServiceBuilder_Delete.cs new file mode 100644 index 000000000000..aec036981cdc --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildServiceBuilder_Delete.cs @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete a KPack builder. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformBuildServiceBuilder_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete a KPack builder.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformBuildServiceBuilder_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the builder resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformBuildServiceBuilder_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformBuildServiceBuilder_Delete Clone() + { + var clone = new RemoveAzAppPlatformBuildServiceBuilder_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.ServiceName = this.ServiceName; + clone.BuildServiceName = this.BuildServiceName; + clone.BuilderName = this.BuilderName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceBuilderDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildServiceBuilderDelete(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuilderName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuilderName=BuilderName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformBuildServiceBuilder_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName }) + { + 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName }) + { + 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/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildServiceBuilder_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildServiceBuilder_DeleteViaIdentity.cs new file mode 100644 index 000000000000..d17a84218ecb --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildServiceBuilder_DeleteViaIdentity.cs @@ -0,0 +1,497 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete a KPack builder. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformBuildServiceBuilder_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete a KPack builder.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformBuildServiceBuilder_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzAppPlatformBuildServiceBuilder_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformBuildServiceBuilder_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformBuildServiceBuilder_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildServiceBuilderDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildServiceBuilderDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuilderName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuilderName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildServiceBuilderDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.BuilderName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformBuildServiceBuilder_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildpackBinding_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildpackBinding_Delete.cs new file mode 100644 index 000000000000..36d6d9be79ec --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildpackBinding_Delete.cs @@ -0,0 +1,560 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete a Buildpack Binding + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings/{buildpackBindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformBuildpackBinding_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete a Buildpack Binding")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformBuildpackBinding_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _buildServiceName; + + /// The name of the build service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the build service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the build service resource.", + SerializedName = @"buildServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuildServiceName { get => this._buildServiceName; set => this._buildServiceName = value; } + + /// Backing field for property. + private string _builderName; + + /// The name of the builder resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the builder resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the builder resource.", + SerializedName = @"builderName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string BuilderName { get => this._builderName; set => this._builderName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Buildpack Binding Name + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Buildpack Binding Name")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Buildpack Binding Name", + SerializedName = @"buildpackBindingName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("BuildpackBindingName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformBuildpackBinding_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformBuildpackBinding_Delete Clone() + { + var clone = new RemoveAzAppPlatformBuildpackBinding_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.ServiceName = this.ServiceName; + clone.BuildServiceName = this.BuildServiceName; + clone.BuilderName = this.BuilderName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildpackBindingDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BuildpackBindingDelete(SubscriptionId, ResourceGroupName, ServiceName, BuildServiceName, BuilderName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,BuildServiceName=BuildServiceName,BuilderName=BuilderName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformBuildpackBinding_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName, 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, ServiceName=ServiceName, BuildServiceName=BuildServiceName, BuilderName=BuilderName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildpackBinding_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildpackBinding_DeleteViaIdentity.cs new file mode 100644 index 000000000000..f085130bd000 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBuildpackBinding_DeleteViaIdentity.cs @@ -0,0 +1,499 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete a Buildpack Binding + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/buildServices/{buildServiceName}/builders/{builderName}/buildpackBindings/{buildpackBindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformBuildpackBinding_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete a Buildpack Binding")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformBuildpackBinding_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformBuildpackBinding_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformBuildpackBinding_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformBuildpackBinding_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BuildpackBindingDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BuildpackBindingDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuilderName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuilderName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BuildpackBindingName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BuildpackBindingName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BuildpackBindingDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.BuildServiceName ?? null, InputObject.BuilderName ?? null, InputObject.BuildpackBindingName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformBuildpackBinding_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_Delete.cs new file mode 100644 index 000000000000..0b9a1aa83b5c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the certificate resource. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformCertificate_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the certificate resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformCertificate_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the certificate resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the certificate resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the certificate resource.", + SerializedName = @"certificateName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CertificateName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformCertificate_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformCertificate_Delete Clone() + { + var clone = new RemoveAzAppPlatformCertificate_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CertificatesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CertificatesDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformCertificate_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_DeleteViaIdentity.cs new file mode 100644 index 000000000000..ffdcf05650d1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the certificate resource. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/certificates/{certificateName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformCertificate_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the certificate resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformCertificate_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformCertificate_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformCertificate_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformCertificate_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CertificatesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CertificatesDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.CertificateName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.CertificateName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CertificatesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.CertificateName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformCertificate_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformConfigurationService_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformConfigurationService_Delete.cs new file mode 100644 index 000000000000..99cdce5013c6 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformConfigurationService_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Application Configuration Service. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformConfigurationService_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Application Configuration Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformConfigurationService_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Application Configuration Service. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Application Configuration Service.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Application Configuration Service.", + SerializedName = @"configurationServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ConfigurationServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformConfigurationService_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformConfigurationService_Delete Clone() + { + var clone = new RemoveAzAppPlatformConfigurationService_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigurationServicesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigurationServicesDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformConfigurationService_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformConfigurationService_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformConfigurationService_DeleteViaIdentity.cs new file mode 100644 index 000000000000..f4652989866a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformConfigurationService_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Application Configuration Service. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformConfigurationService_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Application Configuration Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformConfigurationService_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzAppPlatformConfigurationService_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformConfigurationService_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformConfigurationService_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigurationServicesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConfigurationServicesDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ConfigurationServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConfigurationServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConfigurationServicesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ConfigurationServiceName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformConfigurationService_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_Delete.cs new file mode 100644 index 000000000000..95db69ded6c1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_Delete.cs @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the custom domain of one lifecycle application. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformCustomDomain_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the custom domain of one lifecycle application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformCustomDomain_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the custom domain resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the custom domain resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the custom domain resource.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformCustomDomain_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformCustomDomain_Delete Clone() + { + var clone = new RemoveAzAppPlatformCustomDomain_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.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DomainName = this.DomainName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomDomainsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomDomainsDelete(SubscriptionId, ResourceGroupName, ServiceName, AppName, DomainName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DomainName=DomainName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformCustomDomain_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DomainName=DomainName }) + { + 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, ServiceName=ServiceName, AppName=AppName, DomainName=DomainName }) + { + 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/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_DeleteViaIdentity.cs new file mode 100644 index 000000000000..7a6d389617c7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_DeleteViaIdentity.cs @@ -0,0 +1,495 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the custom domain of one lifecycle application. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformCustomDomain_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the custom domain of one lifecycle application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformCustomDomain_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformCustomDomain_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformCustomDomain_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformCustomDomain_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomDomainsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CustomDomainsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CustomDomainsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DomainName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformCustomDomain_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomizedAccelerator_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomizedAccelerator_Delete.cs new file mode 100644 index 000000000000..83ed2c379f41 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomizedAccelerator_Delete.cs @@ -0,0 +1,545 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the customized accelerator. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformCustomizedAccelerator_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the customized accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformCustomizedAccelerator_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the customized accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the customized accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the customized accelerator.", + SerializedName = @"customizedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CustomizedAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformCustomizedAccelerator_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformCustomizedAccelerator_Delete Clone() + { + var clone = new RemoveAzAppPlatformCustomizedAccelerator_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.ServiceName = this.ServiceName; + clone.ApplicationAcceleratorName = this.ApplicationAcceleratorName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomizedAcceleratorsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomizedAcceleratorsDelete(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformCustomizedAccelerator_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomizedAccelerator_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomizedAccelerator_DeleteViaIdentity.cs new file mode 100644 index 000000000000..252402b133c2 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomizedAccelerator_DeleteViaIdentity.cs @@ -0,0 +1,497 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the customized accelerator. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformCustomizedAccelerator_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the customized accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformCustomizedAccelerator_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzAppPlatformCustomizedAccelerator_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformCustomizedAccelerator_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformCustomizedAccelerator_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomizedAcceleratorsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CustomizedAcceleratorsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.CustomizedAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.CustomizedAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CustomizedAcceleratorsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, InputObject.CustomizedAcceleratorName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformCustomizedAccelerator_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_Delete.cs new file mode 100644 index 000000000000..29b1f9039265 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_Delete.cs @@ -0,0 +1,545 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete a Deployment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformDeployment_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete a Deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformDeployment_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DeploymentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformDeployment_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformDeployment_Delete Clone() + { + var clone = new RemoveAzAppPlatformDeployment_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.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsDelete(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformDeployment_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, 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, ServiceName=ServiceName, AppName=AppName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_DeleteViaIdentity.cs new file mode 100644 index 000000000000..2d506280be13 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_DeleteViaIdentity.cs @@ -0,0 +1,495 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete a Deployment. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformDeployment_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete a Deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformDeployment_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformDeployment_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformDeployment_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformDeployment_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformDeployment_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformDevToolPortal_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDevToolPortal_Delete.cs new file mode 100644 index 000000000000..822b85a482e1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDevToolPortal_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Dev Tool Portal. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/DevToolPortals/{devToolPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformDevToolPortal_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Dev Tool Portal.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformDevToolPortal_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Dev Tool Portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Dev Tool Portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Dev Tool Portal.", + SerializedName = @"devToolPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DevToolPortalName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformDevToolPortal_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformDevToolPortal_Delete Clone() + { + var clone = new RemoveAzAppPlatformDevToolPortal_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DevToolPortalsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DevToolPortalsDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformDevToolPortal_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformDevToolPortal_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDevToolPortal_DeleteViaIdentity.cs new file mode 100644 index 000000000000..bf1d0fe71d58 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDevToolPortal_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Dev Tool Portal. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/DevToolPortals/{devToolPortalName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformDevToolPortal_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Dev Tool Portal.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformDevToolPortal_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformDevToolPortal_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformDevToolPortal_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformDevToolPortal_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DevToolPortalsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DevToolPortalsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DevToolPortalName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DevToolPortalName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DevToolPortalsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.DevToolPortalName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformDevToolPortal_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayCustomDomain_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayCustomDomain_Delete.cs new file mode 100644 index 000000000000..010739b1925e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayCustomDomain_Delete.cs @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the Spring Cloud Gateway custom domain. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformGatewayCustomDomain_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the Spring Cloud Gateway custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformGatewayCustomDomain_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the Spring Cloud Gateway custom domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Spring Cloud Gateway custom domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Spring Cloud Gateway custom domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformGatewayCustomDomain_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformGatewayCustomDomain_Delete Clone() + { + var clone = new RemoveAzAppPlatformGatewayCustomDomain_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.ServiceName = this.ServiceName; + clone.GatewayName = this.GatewayName; + clone.DomainName = this.DomainName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewayCustomDomainsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayCustomDomainsDelete(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, DomainName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName,DomainName=DomainName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformGatewayCustomDomain_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName, DomainName=DomainName }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName, DomainName=DomainName }) + { + 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/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayCustomDomain_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayCustomDomain_DeleteViaIdentity.cs new file mode 100644 index 000000000000..f3e0a42bc988 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayCustomDomain_DeleteViaIdentity.cs @@ -0,0 +1,497 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the Spring Cloud Gateway custom domain. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformGatewayCustomDomain_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the Spring Cloud Gateway custom domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformGatewayCustomDomain_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzAppPlatformGatewayCustomDomain_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformGatewayCustomDomain_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformGatewayCustomDomain_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewayCustomDomainsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.GatewayCustomDomainsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.GatewayName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.GatewayName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.GatewayCustomDomainsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.GatewayName ?? null, InputObject.DomainName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformGatewayCustomDomain_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayRouteConfig_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayRouteConfig_Delete.cs new file mode 100644 index 000000000000..a7d1bfed4e5b --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayRouteConfig_Delete.cs @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the Spring Cloud Gateway route config. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs/{routeConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformGatewayRouteConfig_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the Spring Cloud Gateway route config.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformGatewayRouteConfig_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _routeConfigName; + + /// The name of the Spring Cloud Gateway route config. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Spring Cloud Gateway route config.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Spring Cloud Gateway route config.", + SerializedName = @"routeConfigName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string RouteConfigName { get => this._routeConfigName; set => this._routeConfigName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformGatewayRouteConfig_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformGatewayRouteConfig_Delete Clone() + { + var clone = new RemoveAzAppPlatformGatewayRouteConfig_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.ServiceName = this.ServiceName; + clone.GatewayName = this.GatewayName; + clone.RouteConfigName = this.RouteConfigName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewayRouteConfigsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewayRouteConfigsDelete(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, RouteConfigName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName,RouteConfigName=RouteConfigName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformGatewayRouteConfig_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName, RouteConfigName=RouteConfigName }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName, RouteConfigName=RouteConfigName }) + { + 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/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayRouteConfig_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayRouteConfig_DeleteViaIdentity.cs new file mode 100644 index 000000000000..8729024077a8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGatewayRouteConfig_DeleteViaIdentity.cs @@ -0,0 +1,495 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the Spring Cloud Gateway route config. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/routeConfigs/{routeConfigName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformGatewayRouteConfig_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the Spring Cloud Gateway route config.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformGatewayRouteConfig_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformGatewayRouteConfig_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformGatewayRouteConfig_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformGatewayRouteConfig_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewayRouteConfigsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.GatewayRouteConfigsDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.GatewayName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.GatewayName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.RouteConfigName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.RouteConfigName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.GatewayRouteConfigsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.GatewayName ?? null, InputObject.RouteConfigName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformGatewayRouteConfig_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformGateway_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGateway_Delete.cs new file mode 100644 index 000000000000..607d0e3f0208 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGateway_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Spring Cloud Gateway. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformGateway_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Spring Cloud Gateway.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformGateway_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("GatewayName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformGateway_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformGateway_Delete Clone() + { + var clone = new RemoveAzAppPlatformGateway_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewaysDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewaysDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformGateway_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformGateway_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGateway_DeleteViaIdentity.cs new file mode 100644 index 000000000000..e9a9f296dd16 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformGateway_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Spring Cloud Gateway. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformGateway_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Spring Cloud Gateway.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformGateway_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformGateway_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformGateway_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformGateway_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewaysDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.GatewaysDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.GatewayName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.GatewayName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.GatewaysDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.GatewayName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformGateway_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformServiceRegistry_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformServiceRegistry_Delete.cs new file mode 100644 index 000000000000..56a363dbf753 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformServiceRegistry_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Service Registry. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/serviceRegistries/{serviceRegistryName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformServiceRegistry_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Service Registry.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformServiceRegistry_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Service Registry. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Service Registry.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Service Registry.", + SerializedName = @"serviceRegistryName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ServiceRegistryName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformServiceRegistry_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformServiceRegistry_Delete Clone() + { + var clone = new RemoveAzAppPlatformServiceRegistry_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServiceRegistriesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServiceRegistriesDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformServiceRegistry_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformServiceRegistry_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformServiceRegistry_DeleteViaIdentity.cs new file mode 100644 index 000000000000..8b2f0560d24e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformServiceRegistry_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Disable the default Service Registry. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/serviceRegistries/{serviceRegistryName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformServiceRegistry_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Disable the default Service Registry.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformServiceRegistry_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformServiceRegistry_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformServiceRegistry_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformServiceRegistry_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServiceRegistriesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServiceRegistriesDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ServiceRegistryName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceRegistryName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServiceRegistriesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ServiceRegistryName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformServiceRegistry_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformService_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformService_Delete.cs new file mode 100644 index 000000000000..45b3bb5d888f --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformService_Delete.cs @@ -0,0 +1,515 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete a Service. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformService_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformService_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformService_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformService_Delete Clone() + { + var clone = new RemoveAzAppPlatformService_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.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformService_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, 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, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformService_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformService_DeleteViaIdentity.cs new file mode 100644 index 000000000000..ff82c77c8c67 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformService_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to delete a Service. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformService_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to delete a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformService_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformService_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformService_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformService_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformService_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RemoveAzAppPlatformStorage_Delete.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformStorage_Delete.cs new file mode 100644 index 000000000000..df3b2246a423 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformStorage_Delete.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the storage resource. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformStorage_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the storage resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformStorage_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the storage resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the storage resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the storage resource.", + SerializedName = @"storageName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("StorageName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformStorage_Delete + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformStorage_Delete Clone() + { + var clone = new RemoveAzAppPlatformStorage_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.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'StoragesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.StoragesDelete(SubscriptionId, ResourceGroupName, ServiceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformStorage_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, 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, ServiceName=ServiceName, 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/appplatform/generated/cmdlets/RemoveAzAppPlatformStorage_DeleteViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformStorage_DeleteViaIdentity.cs new file mode 100644 index 000000000000..dbe97a8945b9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformStorage_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Delete the storage resource. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/storages/{storageName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzAppPlatformStorage_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Delete the storage resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RemoveAzAppPlatformStorage_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzAppPlatformStorage_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RemoveAzAppPlatformStorage_DeleteViaIdentity Clone() + { + var clone = new RemoveAzAppPlatformStorage_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'StoragesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.StoragesDeleteViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.StorageName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.StorageName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.StoragesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.StorageName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzAppPlatformStorage_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_Restart.cs b/swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_Restart.cs new file mode 100644 index 000000000000..4a7b28b9cd02 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_Restart.cs @@ -0,0 +1,511 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Restart the deployment. + /// + /// [OpenAPI] Restart=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/restart" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Restart, @"AzAppPlatformDeployment_Restart", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Restart the deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RestartAzAppPlatformDeployment_Restart : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DeploymentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RestartAzAppPlatformDeployment_Restart + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RestartAzAppPlatformDeployment_Restart Clone() + { + var clone = new RestartAzAppPlatformDeployment_Restart(); + 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.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsRestart' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsRestart(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RestartAzAppPlatformDeployment_Restart() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, 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, ServiceName=ServiceName, AppName=AppName, 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. + /// + /// 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/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_RestartViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_RestartViaIdentity.cs new file mode 100644 index 000000000000..5396ff5f7bb1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_RestartViaIdentity.cs @@ -0,0 +1,461 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Restart the deployment. + /// + /// [OpenAPI] Restart=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/restart" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Restart, @"AzAppPlatformDeployment_RestartViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Restart the deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class RestartAzAppPlatformDeployment_RestartViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RestartAzAppPlatformDeployment_RestartViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.RestartAzAppPlatformDeployment_RestartViaIdentity Clone() + { + var clone = new RestartAzAppPlatformDeployment_RestartViaIdentity(); + 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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsRestart' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsRestartViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsRestart(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RestartAzAppPlatformDeployment_RestartViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_Start.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_Start.cs new file mode 100644 index 000000000000..9069ffd94edb --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_Start.cs @@ -0,0 +1,524 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Start JFR + /// + /// [OpenAPI] StartJFR=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/startJFR" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzAppPlatformDeploymentJfr_Start", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Start JFR")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StartAzAppPlatformDeploymentJfr_Start : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParameter; + + /// Diagnostic parameters of diagnostic operations + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Diagnostic parameters of diagnostic operations", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Diagnostic parameters of diagnostic operations", + SerializedName = @"diagnosticParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters DiagnosticParameter { get => this._diagnosticParameter; set => this._diagnosticParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzAppPlatformDeploymentJfr_Start + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StartAzAppPlatformDeploymentJfr_Start Clone() + { + var clone = new StartAzAppPlatformDeploymentJfr_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.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + clone.DiagnosticParameter = this.DiagnosticParameter; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsStartJfr' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsStartJfr(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, DiagnosticParameter, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName,body=DiagnosticParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzAppPlatformDeploymentJfr_Start() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=DiagnosticParameter }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=DiagnosticParameter }) + { + 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/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartExpanded.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartExpanded.cs new file mode 100644 index 000000000000..e788325fc8ef --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartExpanded.cs @@ -0,0 +1,547 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Start JFR + /// + /// [OpenAPI] StartJFR=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/startJFR" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzAppPlatformDeploymentJfr_StartExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Start JFR")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StartAzAppPlatformDeploymentJfr_StartExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Diagnostic parameters of diagnostic operations + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DiagnosticParameters(); + + /// App instance name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "App instance name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"App instance name", + SerializedName = @"appInstance", + PossibleTypes = new [] { typeof(string) })] + public string AppInstance { get => _diagnosticParametersBody.AppInstance ?? null; set => _diagnosticParametersBody.AppInstance = value; } + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _deploymentName; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DeploymentName { get => this._deploymentName; set => this._deploymentName = value; } + + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Duration of your JFR. 1 min can be represented by 1m or 60s.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Duration of your JFR. 1 min can be represented by 1m or 60s.", + SerializedName = @"duration", + PossibleTypes = new [] { typeof(string) })] + public string Duration { get => _diagnosticParametersBody.Duration ?? null; set => _diagnosticParametersBody.Duration = value; } + + /// Your target file path in your own BYOS + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Your target file path in your own BYOS")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Your target file path in your own BYOS", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => _diagnosticParametersBody.FilePath ?? null; set => _diagnosticParametersBody.FilePath = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzAppPlatformDeploymentJfr_StartExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StartAzAppPlatformDeploymentJfr_StartExpanded Clone() + { + var clone = new StartAzAppPlatformDeploymentJfr_StartExpanded(); + 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._diagnosticParametersBody = this._diagnosticParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DeploymentName = this.DeploymentName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsStartJfr' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsStartJfr(SubscriptionId, ResourceGroupName, ServiceName, AppName, DeploymentName, _diagnosticParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DeploymentName=DeploymentName,body=_diagnosticParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzAppPlatformDeploymentJfr_StartExpanded() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=_diagnosticParametersBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, DeploymentName=DeploymentName, body=_diagnosticParametersBody }) + { + 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/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartViaIdentity.cs new file mode 100644 index 000000000000..d3cbcfb9b5cf --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartViaIdentity.cs @@ -0,0 +1,475 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Start JFR + /// + /// [OpenAPI] StartJFR=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/startJFR" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzAppPlatformDeploymentJfr_StartViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Start JFR")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StartAzAppPlatformDeploymentJfr_StartViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParameter; + + /// Diagnostic parameters of diagnostic operations + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Diagnostic parameters of diagnostic operations", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Diagnostic parameters of diagnostic operations", + SerializedName = @"diagnosticParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters DiagnosticParameter { get => this._diagnosticParameter; set => this._diagnosticParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzAppPlatformDeploymentJfr_StartViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StartAzAppPlatformDeploymentJfr_StartViaIdentity Clone() + { + var clone = new StartAzAppPlatformDeploymentJfr_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; + clone.DiagnosticParameter = this.DiagnosticParameter; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsStartJfr' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsStartJfrViaIdentity(InputObject.Id, DiagnosticParameter, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsStartJfr(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, DiagnosticParameter, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DiagnosticParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzAppPlatformDeploymentJfr_StartViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=DiagnosticParameter }) + { + 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=DiagnosticParameter }) + { + 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/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded.cs new file mode 100644 index 000000000000..bf3e1a064c30 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded.cs @@ -0,0 +1,500 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Start JFR + /// + /// [OpenAPI] StartJFR=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/startJFR" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzAppPlatformDeploymentJfr_StartViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Start JFR")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Diagnostic parameters of diagnostic operations + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDiagnosticParameters _diagnosticParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DiagnosticParameters(); + + /// App instance name + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "App instance name")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"App instance name", + SerializedName = @"appInstance", + PossibleTypes = new [] { typeof(string) })] + public string AppInstance { get => _diagnosticParametersBody.AppInstance ?? null; set => _diagnosticParametersBody.AppInstance = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Duration of your JFR. 1 min can be represented by 1m or 60s. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Duration of your JFR. 1 min can be represented by 1m or 60s.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Duration of your JFR. 1 min can be represented by 1m or 60s.", + SerializedName = @"duration", + PossibleTypes = new [] { typeof(string) })] + public string Duration { get => _diagnosticParametersBody.Duration ?? null; set => _diagnosticParametersBody.Duration = value; } + + /// Your target file path in your own BYOS + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Your target file path in your own BYOS")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Your target file path in your own BYOS", + SerializedName = @"filePath", + PossibleTypes = new [] { typeof(string) })] + public string FilePath { get => _diagnosticParametersBody.FilePath ?? null; set => _diagnosticParametersBody.FilePath = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded Clone() + { + var clone = new StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded(); + 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._diagnosticParametersBody = this._diagnosticParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsStartJfr' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsStartJfrViaIdentity(InputObject.Id, _diagnosticParametersBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsStartJfr(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, _diagnosticParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_diagnosticParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzAppPlatformDeploymentJfr_StartViaIdentityExpanded() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_diagnosticParametersBody }) + { + 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=_diagnosticParametersBody }) + { + 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/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_Start.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_Start.cs new file mode 100644 index 000000000000..64e4bb5150d9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_Start.cs @@ -0,0 +1,511 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Start the deployment. + /// + /// [OpenAPI] Start=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/start" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzAppPlatformDeployment_Start", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Start the deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StartAzAppPlatformDeployment_Start : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DeploymentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzAppPlatformDeployment_Start + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StartAzAppPlatformDeployment_Start Clone() + { + var clone = new StartAzAppPlatformDeployment_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.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsStart' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsStart(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzAppPlatformDeployment_Start() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, 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, ServiceName=ServiceName, AppName=AppName, 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. + /// + /// 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/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_StartViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_StartViaIdentity.cs new file mode 100644 index 000000000000..cb016b5f41ed --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_StartViaIdentity.cs @@ -0,0 +1,461 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Start the deployment. + /// + /// [OpenAPI] Start=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/start" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzAppPlatformDeployment_StartViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Start the deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StartAzAppPlatformDeployment_StartViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzAppPlatformDeployment_StartViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StartAzAppPlatformDeployment_StartViaIdentity Clone() + { + var clone = new StartAzAppPlatformDeployment_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsStart' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsStartViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsStart(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzAppPlatformDeployment_StartViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/StartAzAppPlatformService_Start.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformService_Start.cs new file mode 100644 index 000000000000..7ab247912129 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformService_Start.cs @@ -0,0 +1,515 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Start a Service. + /// + /// [OpenAPI] Start=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/start" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzAppPlatformService_Start", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Start a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StartAzAppPlatformService_Start : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnConflict will be called before the regular onConflict has been processed, allowing customization of what + /// happens on 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 onConflict method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnConflict(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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on 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 onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzAppPlatformService_Start + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StartAzAppPlatformService_Start Clone() + { + var clone = new StartAzAppPlatformService_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.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesStart' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesStart(SubscriptionId, ResourceGroupName, Name, onNotFound, onConflict, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzAppPlatformService_Start() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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 onConflict(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnConflict(responseMessage, ref _returnNow); + // if overrideOnConflict has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onConflict - response for 409 / + 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, 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, 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 404 (NotFound). + /// 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 onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformService_StartViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformService_StartViaIdentity.cs new file mode 100644 index 000000000000..267b651a9b63 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformService_StartViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Start a Service. + /// + /// [OpenAPI] Start=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/start" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Start, @"AzAppPlatformService_StartViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Start a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StartAzAppPlatformService_StartViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnConflict will be called before the regular onConflict has been processed, allowing customization of what + /// happens on 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 onConflict method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnConflict(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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on 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 onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StartAzAppPlatformService_StartViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StartAzAppPlatformService_StartViaIdentity Clone() + { + var clone = new StartAzAppPlatformService_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesStart' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesStartViaIdentity(InputObject.Id, onNotFound, onConflict, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesStart(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, onNotFound, onConflict, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StartAzAppPlatformService_StartViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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 onConflict(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnConflict(responseMessage, ref _returnNow); + // if overrideOnConflict has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onConflict - response for 409 / + 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 404 (NotFound). + /// 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 onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_Stop.cs b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_Stop.cs new file mode 100644 index 000000000000..0957b8d1daed --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_Stop.cs @@ -0,0 +1,511 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Stop the deployment. + /// + /// [OpenAPI] Stop=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/stop" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Stop, @"AzAppPlatformDeployment_Stop", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Stop the deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StopAzAppPlatformDeployment_Stop : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DeploymentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StopAzAppPlatformDeployment_Stop + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StopAzAppPlatformDeployment_Stop Clone() + { + var clone = new StopAzAppPlatformDeployment_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.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsStop' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsStop(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StopAzAppPlatformDeployment_Stop() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, 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, ServiceName=ServiceName, AppName=AppName, 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. + /// + /// 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/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_StopViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_StopViaIdentity.cs new file mode 100644 index 000000000000..d19196a36e4b --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_StopViaIdentity.cs @@ -0,0 +1,461 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Stop the deployment. + /// + /// [OpenAPI] Stop=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}/stop" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Stop, @"AzAppPlatformDeployment_StopViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Stop the deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StopAzAppPlatformDeployment_StopViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StopAzAppPlatformDeployment_StopViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StopAzAppPlatformDeployment_StopViaIdentity Clone() + { + var clone = new StopAzAppPlatformDeployment_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsStop' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsStopViaIdentity(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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsStop(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StopAzAppPlatformDeployment_StopViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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/appplatform/generated/cmdlets/StopAzAppPlatformService_Stop.cs b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformService_Stop.cs new file mode 100644 index 000000000000..04c9ebf10b62 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformService_Stop.cs @@ -0,0 +1,515 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Stop a Service. + /// + /// [OpenAPI] Stop=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/stop" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Stop, @"AzAppPlatformService_Stop", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Stop a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StopAzAppPlatformService_Stop : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnConflict will be called before the regular onConflict has been processed, allowing customization of what + /// happens on 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 onConflict method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnConflict(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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on 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 onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StopAzAppPlatformService_Stop + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StopAzAppPlatformService_Stop Clone() + { + var clone = new StopAzAppPlatformService_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.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesStop' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesStop(SubscriptionId, ResourceGroupName, Name, onNotFound, onConflict, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StopAzAppPlatformService_Stop() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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 onConflict(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnConflict(responseMessage, ref _returnNow); + // if overrideOnConflict has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onConflict - response for 409 / + 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, 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, 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 404 (NotFound). + /// 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 onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformService_StopViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformService_StopViaIdentity.cs new file mode 100644 index 000000000000..2b8227a03541 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformService_StopViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Stop a Service. + /// + /// [OpenAPI] Stop=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/stop" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Stop, @"AzAppPlatformService_StopViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Stop a Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class StopAzAppPlatformService_StopViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// overrideOnConflict will be called before the regular onConflict has been processed, allowing customization of what + /// happens on 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 onConflict method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnConflict(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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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); + + /// + /// overrideOnNotFound will be called before the regular onNotFound has been processed, allowing customization of what + /// happens on 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 onNotFound method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNotFound(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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of StopAzAppPlatformService_StopViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.StopAzAppPlatformService_StopViaIdentity Clone() + { + var clone = new StopAzAppPlatformService_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() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesStop' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesStopViaIdentity(InputObject.Id, onNotFound, onConflict, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesStop(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, onNotFound, onConflict, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public StopAzAppPlatformService_StopViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// a delegate that is called when the remote service returns 409 (Conflict). + /// 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 onConflict(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnConflict(responseMessage, ref _returnNow); + // if overrideOnConflict has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onConflict - response for 409 / + 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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 404 (NotFound). + /// 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 onNotFound(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnNotFound(responseMessage, ref _returnNow); + // if overrideOnNotFound has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onNotFound - response for 404 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_Validate.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_Validate.cs new file mode 100644 index 000000000000..bf3bd366b2bd --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_Validate.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the domains are valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformApiPortalDomain_Validate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the domains are valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformApiPortalDomain_Validate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _apiPortalName; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApiPortalName { get => this._apiPortalName; set => this._apiPortalName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayload; + + /// Custom domain validate payload. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Custom domain validate payload.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Custom domain validate payload.", + SerializedName = @"validatePayload", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload ValidatePayload { get => this._validatePayload; set => this._validatePayload = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalsValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalsValidateDomain(SubscriptionId, ResourceGroupName, ServiceName, ApiPortalName, ValidatePayload, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApiPortalName=ApiPortalName,body=ValidatePayload}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformApiPortalDomain_Validate() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, body=ValidatePayload }) + { + 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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, body=ValidatePayload }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateExpanded.cs new file mode 100644 index 000000000000..68c8e53c1280 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateExpanded.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the domains are valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformApiPortalDomain_ValidateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the domains are valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformApiPortalDomain_ValidateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain validate payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayloadBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidatePayload(); + + /// Backing field for property. + private string _apiPortalName; + + /// The name of API portal. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of API portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of API portal.", + SerializedName = @"apiPortalName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApiPortalName { get => this._apiPortalName; set => this._apiPortalName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Name to be validated + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name to be validated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be validated", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _validatePayloadBody.Name ?? null; set => _validatePayloadBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalsValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ApiPortalsValidateDomain(SubscriptionId, ResourceGroupName, ServiceName, ApiPortalName, _validatePayloadBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApiPortalName=ApiPortalName,body=_validatePayloadBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformApiPortalDomain_ValidateExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, body=_validatePayloadBody }) + { + 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, ServiceName=ServiceName, ApiPortalName=ApiPortalName, body=_validatePayloadBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateViaIdentity.cs new file mode 100644 index 000000000000..779f3c43cdae --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the domains are valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformApiPortalDomain_ValidateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the domains are valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformApiPortalDomain_ValidateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayload; + + /// Custom domain validate payload. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Custom domain validate payload.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Custom domain validate payload.", + SerializedName = @"validatePayload", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload ValidatePayload { get => this._validatePayload; set => this._validatePayload = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalsValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApiPortalsValidateDomainViaIdentity(InputObject.Id, ValidatePayload, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApiPortalName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApiPortalName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApiPortalsValidateDomain(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApiPortalName ?? null, ValidatePayload, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ValidatePayload}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformApiPortalDomain_ValidateViaIdentity() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ValidatePayload }) + { + 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=ValidatePayload }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded.cs new file mode 100644 index 000000000000..15643a03c9c7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the domains are valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apiPortals/{apiPortalName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the domains are valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain validate payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayloadBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidatePayload(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Name to be validated + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name to be validated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be validated", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _validatePayloadBody.Name ?? null; set => _validatePayloadBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ApiPortalsValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ApiPortalsValidateDomainViaIdentity(InputObject.Id, _validatePayloadBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApiPortalName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApiPortalName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ApiPortalsValidateDomain(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApiPortalName ?? null, _validatePayloadBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_validatePayloadBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformApiPortalDomain_ValidateViaIdentityExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_validatePayloadBody }) + { + 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=_validatePayloadBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_Validate.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_Validate.cs new file mode 100644 index 000000000000..27bed6266252 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_Validate.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the resource name is valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformAppDomain_Validate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the resource name is valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformAppDomain_Validate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayload; + + /// Custom domain validate payload. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Custom domain validate payload.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Custom domain validate payload.", + SerializedName = @"validatePayload", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload ValidatePayload { get => this._validatePayload; set => this._validatePayload = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsValidateDomain(SubscriptionId, ResourceGroupName, ServiceName, AppName, ValidatePayload, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,body=ValidatePayload}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformAppDomain_Validate() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, body=ValidatePayload }) + { + 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, ServiceName=ServiceName, AppName=AppName, body=ValidatePayload }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateExpanded.cs new file mode 100644 index 000000000000..7ec2c66ff350 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateExpanded.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the resource name is valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformAppDomain_ValidateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the resource name is valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformAppDomain_ValidateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain validate payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayloadBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidatePayload(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Name to be validated + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name to be validated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be validated", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _validatePayloadBody.Name ?? null; set => _validatePayloadBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsValidateDomain(SubscriptionId, ResourceGroupName, ServiceName, AppName, _validatePayloadBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,body=_validatePayloadBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformAppDomain_ValidateExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, body=_validatePayloadBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, body=_validatePayloadBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentity.cs new file mode 100644 index 000000000000..8126a844d128 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the resource name is valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformAppDomain_ValidateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the resource name is valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformAppDomain_ValidateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayload; + + /// Custom domain validate payload. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Custom domain validate payload.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Custom domain validate payload.", + SerializedName = @"validatePayload", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload ValidatePayload { get => this._validatePayload; set => this._validatePayload = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AppsValidateDomainViaIdentity(InputObject.Id, ValidatePayload, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AppsValidateDomain(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, ValidatePayload, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ValidatePayload}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformAppDomain_ValidateViaIdentity() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ValidatePayload }) + { + 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=ValidatePayload }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentityExpanded.cs new file mode 100644 index 000000000000..41b6f91ee843 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentityExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the resource name is valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformAppDomain_ValidateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the resource name is valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformAppDomain_ValidateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain validate payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayloadBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidatePayload(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Name to be validated + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name to be validated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be validated", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _validatePayloadBody.Name ?? null; set => _validatePayloadBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AppsValidateDomainViaIdentity(InputObject.Id, _validatePayloadBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AppsValidateDomain(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, _validatePayloadBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_validatePayloadBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformAppDomain_ValidateViaIdentityExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_validatePayloadBody }) + { + 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=_validatePayloadBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_Validate.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_Validate.cs new file mode 100644 index 000000000000..8d38542f1752 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_Validate.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check if the config server settings are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformConfigServer_Validate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check if the config server settings are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformConfigServer_Validate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings _configServerSetting; + + /// The settings of config server. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The settings of config server.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The settings of config server.", + SerializedName = @"configServerSettings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings ConfigServerSetting { get => this._configServerSetting; set => this._configServerSetting = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of TestAzAppPlatformConfigServer_Validate + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.TestAzAppPlatformConfigServer_Validate Clone() + { + var clone = new TestAzAppPlatformConfigServer_Validate(); + 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.ServiceName = this.ServiceName; + clone.ConfigServerSetting = this.ConfigServerSetting; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigServersValidate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigServersValidate(SubscriptionId, ResourceGroupName, ServiceName, ConfigServerSetting, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,body=ConfigServerSetting}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformConfigServer_Validate() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, body=ConfigServerSetting }) + { + 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, ServiceName=ServiceName, body=ConfigServerSetting }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateExpanded.cs new file mode 100644 index 000000000000..61a0fc2bb225 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateExpanded.cs @@ -0,0 +1,591 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check if the config server settings are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformConfigServer_ValidateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check if the config server settings are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformConfigServer_ValidateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 settings of config server. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings _configServerSettingsBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettings(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Public sshKey of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Public sshKey of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyHostKey { get => _configServerSettingsBody.GitPropertyHostKey ?? null; set => _configServerSettingsBody.GitPropertyHostKey = value; } + + /// SshKey algorithm of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "SshKey algorithm of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyHostKeyAlgorithm { get => _configServerSettingsBody.GitPropertyHostKeyAlgorithm ?? null; set => _configServerSettingsBody.GitPropertyHostKeyAlgorithm = value; } + + /// Label of the repository + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Label of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyLabel { get => _configServerSettingsBody.GitPropertyLabel ?? null; set => _configServerSettingsBody.GitPropertyLabel = value; } + + /// Password of git repository basic auth. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Password of git repository basic auth.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyPassword { get => _configServerSettingsBody.GitPropertyPassword ?? null; set => _configServerSettingsBody.GitPropertyPassword = value; } + + /// Private sshKey algorithm of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Private sshKey algorithm of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyPrivateKey { get => _configServerSettingsBody.GitPropertyPrivateKey ?? null; set => _configServerSettingsBody.GitPropertyPrivateKey = value; } + + /// Repositories of git. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Repositories of git.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of git.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get => _configServerSettingsBody.GitPropertyRepository ?? null /* arrayOf */; set => _configServerSettingsBody.GitPropertyRepository = value; } + + /// Searching path of the repository + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Searching path of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + public string[] GitPropertySearchPath { get => _configServerSettingsBody.GitPropertySearchPath ?? null /* arrayOf */; set => _configServerSettingsBody.GitPropertySearchPath = value; } + + /// Strict host key checking or not. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Strict host key checking or not.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter GitPropertyStrictHostKeyChecking { get => _configServerSettingsBody.GitPropertyStrictHostKeyChecking ?? default(global::System.Management.Automation.SwitchParameter); set => _configServerSettingsBody.GitPropertyStrictHostKeyChecking = value; } + + /// URI of the repository + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyUri { get => _configServerSettingsBody.GitPropertyUri ?? null; set => _configServerSettingsBody.GitPropertyUri = value; } + + /// Username of git repository basic auth. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Username of git repository basic auth.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyUsername { get => _configServerSettingsBody.GitPropertyUsername ?? null; set => _configServerSettingsBody.GitPropertyUsername = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of TestAzAppPlatformConfigServer_ValidateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.TestAzAppPlatformConfigServer_ValidateExpanded Clone() + { + var clone = new TestAzAppPlatformConfigServer_ValidateExpanded(); + 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._configServerSettingsBody = this._configServerSettingsBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigServersValidate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigServersValidate(SubscriptionId, ResourceGroupName, ServiceName, _configServerSettingsBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,body=_configServerSettingsBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformConfigServer_ValidateExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, body=_configServerSettingsBody }) + { + 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, ServiceName=ServiceName, body=_configServerSettingsBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentity.cs new file mode 100644 index 000000000000..9cc9b6892a26 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentity.cs @@ -0,0 +1,462 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check if the config server settings are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformConfigServer_ValidateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check if the config server settings are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformConfigServer_ValidateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings _configServerSetting; + + /// The settings of config server. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The settings of config server.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The settings of config server.", + SerializedName = @"configServerSettings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings ConfigServerSetting { get => this._configServerSetting; set => this._configServerSetting = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of TestAzAppPlatformConfigServer_ValidateViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.TestAzAppPlatformConfigServer_ValidateViaIdentity Clone() + { + var clone = new TestAzAppPlatformConfigServer_ValidateViaIdentity(); + 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.ConfigServerSetting = this.ConfigServerSetting; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigServersValidate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConfigServersValidateViaIdentity(InputObject.Id, ConfigServerSetting, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConfigServersValidate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, ConfigServerSetting, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ConfigServerSetting}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformConfigServer_ValidateViaIdentity() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ConfigServerSetting }) + { + 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=ConfigServerSetting }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded.cs new file mode 100644 index 000000000000..eb8929abab6b --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded.cs @@ -0,0 +1,566 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check if the config server settings are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformConfigServer_ValidateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check if the config server settings are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 settings of config server. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettings _configServerSettingsBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerSettings(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Public sshKey of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Public sshKey of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyHostKey { get => _configServerSettingsBody.GitPropertyHostKey ?? null; set => _configServerSettingsBody.GitPropertyHostKey = value; } + + /// SshKey algorithm of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "SshKey algorithm of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyHostKeyAlgorithm { get => _configServerSettingsBody.GitPropertyHostKeyAlgorithm ?? null; set => _configServerSettingsBody.GitPropertyHostKeyAlgorithm = value; } + + /// Label of the repository + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Label of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyLabel { get => _configServerSettingsBody.GitPropertyLabel ?? null; set => _configServerSettingsBody.GitPropertyLabel = value; } + + /// Password of git repository basic auth. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Password of git repository basic auth.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyPassword { get => _configServerSettingsBody.GitPropertyPassword ?? null; set => _configServerSettingsBody.GitPropertyPassword = value; } + + /// Private sshKey algorithm of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Private sshKey algorithm of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyPrivateKey { get => _configServerSettingsBody.GitPropertyPrivateKey ?? null; set => _configServerSettingsBody.GitPropertyPrivateKey = value; } + + /// Repositories of git. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Repositories of git.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of git.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get => _configServerSettingsBody.GitPropertyRepository ?? null /* arrayOf */; set => _configServerSettingsBody.GitPropertyRepository = value; } + + /// Searching path of the repository + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Searching path of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + public string[] GitPropertySearchPath { get => _configServerSettingsBody.GitPropertySearchPath ?? null /* arrayOf */; set => _configServerSettingsBody.GitPropertySearchPath = value; } + + /// Strict host key checking or not. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Strict host key checking or not.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter GitPropertyStrictHostKeyChecking { get => _configServerSettingsBody.GitPropertyStrictHostKeyChecking ?? default(global::System.Management.Automation.SwitchParameter); set => _configServerSettingsBody.GitPropertyStrictHostKeyChecking = value; } + + /// URI of the repository + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyUri { get => _configServerSettingsBody.GitPropertyUri ?? null; set => _configServerSettingsBody.GitPropertyUri = value; } + + /// Username of git repository basic auth. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Username of git repository basic auth.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyUsername { get => _configServerSettingsBody.GitPropertyUsername ?? null; set => _configServerSettingsBody.GitPropertyUsername = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded Clone() + { + var clone = new TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded(); + 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._configServerSettingsBody = this._configServerSettingsBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigServersValidate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConfigServersValidateViaIdentity(InputObject.Id, _configServerSettingsBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConfigServersValidate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, _configServerSettingsBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_configServerSettingsBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_configServerSettingsBody }) + { + 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=_configServerSettingsBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerSettingsValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_Validate.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_Validate.cs new file mode 100644 index 000000000000..8052e14899c3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_Validate.cs @@ -0,0 +1,505 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check if the Application Configuration Service settings are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformConfigurationService_Validate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check if the Application Configuration Service settings are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformConfigurationService_Validate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Application Configuration Service. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Application Configuration Service.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Application Configuration Service.", + SerializedName = @"configurationServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ConfigurationServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings _setting; + + /// The settings of Application Configuration Service. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The settings of Application Configuration Service.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The settings of Application Configuration Service.", + SerializedName = @"settings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings Setting { get => this._setting; set => this._setting = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of TestAzAppPlatformConfigurationService_Validate + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.TestAzAppPlatformConfigurationService_Validate Clone() + { + var clone = new TestAzAppPlatformConfigurationService_Validate(); + 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.ServiceName = this.ServiceName; + clone.Name = this.Name; + clone.Setting = this.Setting; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigurationServicesValidate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigurationServicesValidate(SubscriptionId, ResourceGroupName, ServiceName, Name, Setting, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=Setting}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformConfigurationService_Validate() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=Setting }) + { + 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, ServiceName=ServiceName, Name=Name, body=Setting }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateExpanded.cs new file mode 100644 index 000000000000..07fac2e27de5 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateExpanded.cs @@ -0,0 +1,507 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check if the Application Configuration Service settings are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformConfigurationService_ValidateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check if the Application Configuration Service settings are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformConfigurationService_ValidateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 settings of Application Configuration Service. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings _settingsBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettings(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Repositories of Application Configuration Service git property. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Repositories of Application Configuration Service git property.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of Application Configuration Service git property.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get => _settingsBody.GitPropertyRepository ?? null /* arrayOf */; set => _settingsBody.GitPropertyRepository = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of Application Configuration Service. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Application Configuration Service.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Application Configuration Service.", + SerializedName = @"configurationServiceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ConfigurationServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of TestAzAppPlatformConfigurationService_ValidateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.TestAzAppPlatformConfigurationService_ValidateExpanded Clone() + { + var clone = new TestAzAppPlatformConfigurationService_ValidateExpanded(); + 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._settingsBody = this._settingsBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigurationServicesValidate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigurationServicesValidate(SubscriptionId, ResourceGroupName, ServiceName, Name, _settingsBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_settingsBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformConfigurationService_ValidateExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_settingsBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_settingsBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateViaIdentity.cs new file mode 100644 index 000000000000..64cf0d1e24fa --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateViaIdentity.cs @@ -0,0 +1,468 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check if the Application Configuration Service settings are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformConfigurationService_ValidateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check if the Application Configuration Service settings are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformConfigurationService_ValidateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings _setting; + + /// The settings of Application Configuration Service. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The settings of Application Configuration Service.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The settings of Application Configuration Service.", + SerializedName = @"settings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings Setting { get => this._setting; set => this._setting = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of TestAzAppPlatformConfigurationService_ValidateViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.TestAzAppPlatformConfigurationService_ValidateViaIdentity Clone() + { + var clone = new TestAzAppPlatformConfigurationService_ValidateViaIdentity(); + 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.Setting = this.Setting; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigurationServicesValidate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConfigurationServicesValidateViaIdentity(InputObject.Id, Setting, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ConfigurationServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConfigurationServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConfigurationServicesValidate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ConfigurationServiceName ?? null, Setting, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=Setting}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformConfigurationService_ValidateViaIdentity() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=Setting }) + { + 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=Setting }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded.cs new file mode 100644 index 000000000000..a4ebbcf3e471 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check if the Application Configuration Service settings are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configurationServices/{configurationServiceName}/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformConfigurationService_ValidateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitPropertyValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check if the Application Configuration Service settings are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 settings of Application Configuration Service. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettings _settingsBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigurationServiceSettings(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Repositories of Application Configuration Service git property. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Repositories of Application Configuration Service git property.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of Application Configuration Service git property.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceGitRepository[] GitPropertyRepository { get => _settingsBody.GitPropertyRepository ?? null /* arrayOf */; set => _settingsBody.GitPropertyRepository = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded Clone() + { + var clone = new TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded(); + 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._settingsBody = this._settingsBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigurationServicesValidate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConfigurationServicesValidateViaIdentity(InputObject.Id, _settingsBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ConfigurationServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ConfigurationServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConfigurationServicesValidate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ConfigurationServiceName ?? null, _settingsBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_settingsBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzAppPlatformConfigurationService_ValidateViaIdentityExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_settingsBody }) + { + 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=_settingsBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.IConfigurationServiceSettingsValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_Validate.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_Validate.cs new file mode 100644 index 000000000000..5140a21c7cba --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_Validate.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the customized accelerator are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformCustomizedAccelerator_Validate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the customized accelerator are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformCustomizedAccelerator_Validate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the customized accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the customized accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the customized accelerator.", + SerializedName = @"customizedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CustomizedAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties _property; + + /// Customized accelerator properties payload + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Customized accelerator properties payload", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Customized accelerator properties payload", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties Property { get => this._property; set => this._property = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomizedAcceleratorsValidate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomizedAcceleratorsValidate(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, Name, Property, onOk, onAccepted, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName,Name=Name,body=Property}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformCustomizedAccelerator_Validate() + { + + } + + /// 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, Name=Name, body=Property }) + { + 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, Name=Name, body=Property }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateExpanded.cs new file mode 100644 index 000000000000..c1fda9b27119 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateExpanded.cs @@ -0,0 +1,593 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the customized accelerator are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformCustomizedAccelerator_ValidateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the customized accelerator are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformCustomizedAccelerator_ValidateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Customized accelerator properties payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties _propertiesBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorProperties(); + + /// . + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"acceleratorTags", + PossibleTypes = new [] { typeof(string) })] + public string[] AcceleratorTag { get => _propertiesBody.AcceleratorTag ?? null /* arrayOf */; set => _propertiesBody.AcceleratorTag = value; } + + /// Backing field for property. + private string _applicationAcceleratorName; + + /// The name of the application accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the application accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the application accelerator.", + SerializedName = @"applicationAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ApplicationAcceleratorName { get => this._applicationAcceleratorName; set => this._applicationAcceleratorName = value; } + + /// The type of the auth setting. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of the auth setting.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the auth setting.", + SerializedName = @"authType", + PossibleTypes = new [] { typeof(string) })] + public string AuthSettingAuthType { get => _propertiesBody.AuthSettingAuthType ?? null; set => _propertiesBody.AuthSettingAuthType = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => _propertiesBody.Description ?? null; set => _propertiesBody.Description = value; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + public string DisplayName { get => _propertiesBody.DisplayName ?? null; set => _propertiesBody.DisplayName = value; } + + /// Git repository branch to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository branch to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository branch to be used.", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryBranch { get => _propertiesBody.GitRepositoryBranch ?? null; set => _propertiesBody.GitRepositoryBranch = value; } + + /// Git repository commit to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository commit to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository commit to be used.", + SerializedName = @"commit", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryCommit { get => _propertiesBody.GitRepositoryCommit ?? null; set => _propertiesBody.GitRepositoryCommit = value; } + + /// Git repository tag to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository tag to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository tag to be used.", + SerializedName = @"gitTag", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryGitTag { get => _propertiesBody.GitRepositoryGitTag ?? null; set => _propertiesBody.GitRepositoryGitTag = value; } + + /// Interval for checking for updates to Git or image repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Interval for checking for updates to Git or image repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Interval for checking for updates to Git or image repository.", + SerializedName = @"intervalInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int GitRepositoryIntervalInSecond { get => _propertiesBody.GitRepositoryIntervalInSecond ?? default(int); set => _propertiesBody.GitRepositoryIntervalInSecond = value; } + + /// Git repository URL for the accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Git repository URL for the accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Git repository URL for the accelerator.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryUrl { get => _propertiesBody.GitRepositoryUrl ?? null; set => _propertiesBody.GitRepositoryUrl = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"iconUrl", + PossibleTypes = new [] { typeof(string) })] + public string IconUrl { get => _propertiesBody.IconUrl ?? null; set => _propertiesBody.IconUrl = 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the customized accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the customized accelerator.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the customized accelerator.", + SerializedName = @"customizedAcceleratorName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("CustomizedAcceleratorName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomizedAcceleratorsValidate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomizedAcceleratorsValidate(SubscriptionId, ResourceGroupName, ServiceName, ApplicationAcceleratorName, Name, _propertiesBody, onOk, onAccepted, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,ApplicationAcceleratorName=ApplicationAcceleratorName,Name=Name,body=_propertiesBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformCustomizedAccelerator_ValidateExpanded() + { + + } + + /// 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, Name=Name, body=_propertiesBody }) + { + 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, ServiceName=ServiceName, ApplicationAcceleratorName=ApplicationAcceleratorName, Name=Name, body=_propertiesBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentity.cs new file mode 100644 index 000000000000..c6f9cfd8820e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentity.cs @@ -0,0 +1,447 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the customized accelerator are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformCustomizedAccelerator_ValidateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the customized accelerator are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties _property; + + /// Customized accelerator properties payload + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Customized accelerator properties payload", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Customized accelerator properties payload", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties Property { get => this._property; set => this._property = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomizedAcceleratorsValidate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CustomizedAcceleratorsValidateViaIdentity(InputObject.Id, Property, 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.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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.CustomizedAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.CustomizedAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CustomizedAcceleratorsValidate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, InputObject.CustomizedAcceleratorName ?? null, Property, onOk, onAccepted, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=Property}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentity() + { + + } + + /// 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=Property }) + { + 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=Property }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded.cs new file mode 100644 index 000000000000..afc211f011af --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded.cs @@ -0,0 +1,549 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the customized accelerator are valid. + /// + /// [OpenAPI] Validate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/applicationAccelerators/{applicationAcceleratorName}/customizedAccelerators/{customizedAcceleratorName}/validate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the customized accelerator are valid.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Customized accelerator properties payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorProperties _propertiesBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomizedAcceleratorProperties(); + + /// . + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"acceleratorTags", + PossibleTypes = new [] { typeof(string) })] + public string[] AcceleratorTag { get => _propertiesBody.AcceleratorTag ?? null /* arrayOf */; set => _propertiesBody.AcceleratorTag = value; } + + /// The type of the auth setting. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of the auth setting.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the auth setting.", + SerializedName = @"authType", + PossibleTypes = new [] { typeof(string) })] + public string AuthSettingAuthType { get => _propertiesBody.AuthSettingAuthType ?? null; set => _propertiesBody.AuthSettingAuthType = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + public string Description { get => _propertiesBody.Description ?? null; set => _propertiesBody.Description = value; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + public string DisplayName { get => _propertiesBody.DisplayName ?? null; set => _propertiesBody.DisplayName = value; } + + /// Git repository branch to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository branch to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository branch to be used.", + SerializedName = @"branch", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryBranch { get => _propertiesBody.GitRepositoryBranch ?? null; set => _propertiesBody.GitRepositoryBranch = value; } + + /// Git repository commit to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository commit to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository commit to be used.", + SerializedName = @"commit", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryCommit { get => _propertiesBody.GitRepositoryCommit ?? null; set => _propertiesBody.GitRepositoryCommit = value; } + + /// Git repository tag to be used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Git repository tag to be used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Git repository tag to be used.", + SerializedName = @"gitTag", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryGitTag { get => _propertiesBody.GitRepositoryGitTag ?? null; set => _propertiesBody.GitRepositoryGitTag = value; } + + /// Interval for checking for updates to Git or image repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Interval for checking for updates to Git or image repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Interval for checking for updates to Git or image repository.", + SerializedName = @"intervalInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int GitRepositoryIntervalInSecond { get => _propertiesBody.GitRepositoryIntervalInSecond ?? default(int); set => _propertiesBody.GitRepositoryIntervalInSecond = value; } + + /// Git repository URL for the accelerator. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Git repository URL for the accelerator.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Git repository URL for the accelerator.", + SerializedName = @"url", + PossibleTypes = new [] { typeof(string) })] + public string GitRepositoryUrl { get => _propertiesBody.GitRepositoryUrl ?? null; set => _propertiesBody.GitRepositoryUrl = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"iconUrl", + PossibleTypes = new [] { typeof(string) })] + public string IconUrl { get => _propertiesBody.IconUrl ?? null; set => _propertiesBody.IconUrl = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomizedAcceleratorsValidate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CustomizedAcceleratorsValidateViaIdentity(InputObject.Id, _propertiesBody, 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.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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ApplicationAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ApplicationAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.CustomizedAcceleratorName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.CustomizedAcceleratorName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CustomizedAcceleratorsValidate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.ApplicationAcceleratorName ?? null, InputObject.CustomizedAcceleratorName ?? null, _propertiesBody, onOk, onAccepted, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_propertiesBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzAppPlatformCustomizedAccelerator_ValidateViaIdentityExpanded() + { + + } + + /// 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. + /// the body result as a Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_propertiesBody }) + { + 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=_propertiesBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomizedAcceleratorValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_Validate.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_Validate.cs new file mode 100644 index 000000000000..f7a48d06dacb --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_Validate.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the domains are valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformGatewayDomain_Validate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the domains are valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformGatewayDomain_Validate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayload; + + /// Custom domain validate payload. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Custom domain validate payload.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Custom domain validate payload.", + SerializedName = @"validatePayload", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload ValidatePayload { get => this._validatePayload; set => this._validatePayload = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewaysValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewaysValidateDomain(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, ValidatePayload, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName,body=ValidatePayload}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformGatewayDomain_Validate() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName, body=ValidatePayload }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName, body=ValidatePayload }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateExpanded.cs new file mode 100644 index 000000000000..74b2e5d03c69 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateExpanded.cs @@ -0,0 +1,437 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the domains are valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformGatewayDomain_ValidateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the domains are valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformGatewayDomain_ValidateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain validate payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayloadBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidatePayload(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _gatewayName; + + /// The name of Spring Cloud Gateway. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of Spring Cloud Gateway.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of Spring Cloud Gateway.", + SerializedName = @"gatewayName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string GatewayName { get => this._gatewayName; set => this._gatewayName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Name to be validated + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name to be validated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be validated", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _validatePayloadBody.Name ?? null; set => _validatePayloadBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewaysValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.GatewaysValidateDomain(SubscriptionId, ResourceGroupName, ServiceName, GatewayName, _validatePayloadBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,GatewayName=GatewayName,body=_validatePayloadBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformGatewayDomain_ValidateExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, GatewayName=GatewayName, body=_validatePayloadBody }) + { + 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, ServiceName=ServiceName, GatewayName=GatewayName, body=_validatePayloadBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateViaIdentity.cs new file mode 100644 index 000000000000..3fb367f16963 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateViaIdentity.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the domains are valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformGatewayDomain_ValidateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the domains are valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformGatewayDomain_ValidateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayload; + + /// Custom domain validate payload. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Custom domain validate payload.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Custom domain validate payload.", + SerializedName = @"validatePayload", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload ValidatePayload { get => this._validatePayload; set => this._validatePayload = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewaysValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.GatewaysValidateDomainViaIdentity(InputObject.Id, ValidatePayload, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.GatewayName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.GatewayName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.GatewaysValidateDomain(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.GatewayName ?? null, ValidatePayload, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ValidatePayload}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformGatewayDomain_ValidateViaIdentity() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=ValidatePayload }) + { + 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=ValidatePayload }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateViaIdentityExpanded.cs new file mode 100644 index 000000000000..00740d4dc60f --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformGatewayDomain_ValidateViaIdentityExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Check the domains are valid as well as not in use. + /// + /// [OpenAPI] ValidateDomain=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/gateways/{gatewayName}/validateDomain" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformGatewayDomain_ValidateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Check the domains are valid as well as not in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformGatewayDomain_ValidateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain validate payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidatePayload _validatePayloadBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainValidatePayload(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Name to be validated + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name to be validated")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be validated", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _validatePayloadBody.Name ?? null; set => _validatePayloadBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'GatewaysValidateDomain' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.GatewaysValidateDomainViaIdentity(InputObject.Id, _validatePayloadBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.GatewayName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.GatewayName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.GatewaysValidateDomain(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.GatewayName ?? null, _validatePayloadBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_validatePayloadBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformGatewayDomain_ValidateViaIdentityExpanded() + { + + } + + /// + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_validatePayloadBody }) + { + 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=_validatePayloadBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainValidateResult + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_Check.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_Check.cs new file mode 100644 index 000000000000..0fc0ccf3d4e0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_Check.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Checks that the resource name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/locations/{location}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformServiceNameAvailability_Check", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Checks that the resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformServiceNameAvailability_Check : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters _availabilityParameter; + + /// Name availability parameters payload + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name availability parameters payload", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name availability parameters payload", + SerializedName = @"availabilityParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters AvailabilityParameter { get => this._availabilityParameter; set => this._availabilityParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// the region + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "the region")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"the region", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesCheckNameAvailability(SubscriptionId, Location, AvailabilityParameter, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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=AvailabilityParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformServiceNameAvailability_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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=AvailabilityParameter }) + { + 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=AvailabilityParameter }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + /// 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.AppPlatform.Models.Api20221101Preview.INameAvailability + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckExpanded.cs new file mode 100644 index 000000000000..5608795ce1a6 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Checks that the resource name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/locations/{location}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformServiceNameAvailability_CheckExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Checks that the resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformServiceNameAvailability_CheckExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Name availability parameters payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters _availabilityParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NameAvailabilityParameters(); + + /// + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// the region + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "the region")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"the region", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Name to be checked + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name to be checked")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be checked", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _availabilityParametersBody.Name ?? null; set => _availabilityParametersBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Type of the resource to check name availability + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Type of the resource to check name availability")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the resource to check name availability", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string Type { get => _availabilityParametersBody.Type ?? null; set => _availabilityParametersBody.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesCheckNameAvailability(SubscriptionId, Location, _availabilityParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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=_availabilityParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformServiceNameAvailability_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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=_availabilityParametersBody }) + { + 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=_availabilityParametersBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + /// 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.AppPlatform.Models.Api20221101Preview.INameAvailability + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentity.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentity.cs new file mode 100644 index 000000000000..c903c8a6077e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Checks that the resource name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/locations/{location}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformServiceNameAvailability_CheckViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Checks that the resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformServiceNameAvailability_CheckViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters _availabilityParameter; + + /// Name availability parameters payload + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name availability parameters payload", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name availability parameters payload", + SerializedName = @"availabilityParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters AvailabilityParameter { get => this._availabilityParameter; set => this._availabilityParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesCheckNameAvailabilityViaIdentity(InputObject.Id, AvailabilityParameter, 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.ServicesCheckNameAvailability(InputObject.SubscriptionId ?? null, InputObject.Location ?? null, AvailabilityParameter, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=AvailabilityParameter}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public TestAzAppPlatformServiceNameAvailability_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=AvailabilityParameter }) + { + 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=AvailabilityParameter }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + /// 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.AppPlatform.Models.Api20221101Preview.INameAvailability + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentityExpanded.cs new file mode 100644 index 000000000000..5e9b2184a068 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,407 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Checks that the resource name is valid and is not already in use. + /// + /// [OpenAPI] CheckNameAvailability=>POST:"/subscriptions/{subscriptionId}/providers/Microsoft.AppPlatform/locations/{location}/checkNameAvailability" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsDiagnostic.Test, @"AzAppPlatformServiceNameAvailability_CheckViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Checks that the resource name is valid and is not already in use.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class TestAzAppPlatformServiceNameAvailability_CheckViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Name availability parameters payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailabilityParameters _availabilityParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.NameAvailabilityParameters(); + + /// + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Name to be checked + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name to be checked")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name to be checked", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string Name { get => _availabilityParametersBody.Name ?? null; set => _availabilityParametersBody.Name = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Type of the resource to check name availability + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Type of the resource to check name availability")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the resource to check name availability", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string Type { get => _availabilityParametersBody.Type ?? null; set => _availabilityParametersBody.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesCheckNameAvailability' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesCheckNameAvailabilityViaIdentity(InputObject.Id, _availabilityParametersBody, 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.ServicesCheckNameAvailability(InputObject.SubscriptionId ?? null, InputObject.Location ?? null, _availabilityParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_availabilityParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public TestAzAppPlatformServiceNameAvailability_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_availabilityParametersBody }) + { + 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=_availabilityParametersBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.INameAvailability + /// 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.AppPlatform.Models.Api20221101Preview.INameAvailability + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateExpanded.cs new file mode 100644 index 000000000000..52312b7babc9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateExpanded.cs @@ -0,0 +1,747 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to update an exiting App. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformApp_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to update an exiting App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformApp_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// App resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource _appResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource(); + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Collection of addons + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of addons")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of addons", + SerializedName = @"addonConfigs", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get => _appResourceBody.AddonConfig ?? null /* object */; set => _appResourceBody.AddonConfig = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// Collection of certificate resource id. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of certificate resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of certificate resource id.", + SerializedName = @"certificates", + PossibleTypes = new [] { typeof(string) })] + public string[] ClientAuthCertificate { get => _appResourceBody.ClientAuthCertificate ?? null /* arrayOf */; set => _appResourceBody.ClientAuthCertificate = value; } + + /// List of custom persistent disks + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of custom persistent disks")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of custom persistent disks", + SerializedName = @"customPersistentDisks", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get => _appResourceBody.CustomPersistentDisk ?? null /* arrayOf */; set => _appResourceBody.CustomPersistentDisk = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Indicate if end to end TLS is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicate if end to end TLS is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if end to end TLS is enabled.", + SerializedName = @"enableEndToEndTLS", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableEndToEndTl { get => _appResourceBody.EnableEndToEndTl ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.EnableEndToEndTl = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Indicate if only https is allowed. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicate if only https is allowed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter HttpsOnly { get => _appResourceBody.HttpsOnly ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.HttpsOnly = value; } + + /// Principal Id of system-assigned managed identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Principal Id of system-assigned managed identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal Id of system-assigned managed identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _appResourceBody.IdentityPrincipalId ?? null; set => _appResourceBody.IdentityPrincipalId = value; } + + /// Tenant Id of system-assigned managed identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tenant Id of system-assigned managed identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id of system-assigned managed identity.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _appResourceBody.IdentityTenantId ?? null; set => _appResourceBody.IdentityTenantId = value; } + + /// Type of the managed identity + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the managed identity")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the managed identity", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType IdentityType { get => _appResourceBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType)""); set => _appResourceBody.IdentityType = value; } + + /// Properties of user-assigned managed identities + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Properties of user-assigned managed identities")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Properties of user-assigned managed identities", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities IdentityUserAssignedIdentity { get => _appResourceBody.IdentityUserAssignedIdentity ?? null /* object */; set => _appResourceBody.IdentityUserAssignedIdentity = value; } + + /// How ingress should communicate with this app backend service. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "How ingress should communicate with this app backend service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How ingress should communicate with this app backend service.", + SerializedName = @"backendProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol IngressSettingBackendProtocol { get => _appResourceBody.IngressSettingBackendProtocol ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol)""); set => _appResourceBody.IngressSettingBackendProtocol = value; } + + /// Ingress read time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress read time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingReadTimeoutInSecond { get => _appResourceBody.IngressSettingReadTimeoutInSecond ?? default(int); set => _appResourceBody.IngressSettingReadTimeoutInSecond = value; } + + /// Ingress send time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress send time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress send time out in seconds.", + SerializedName = @"sendTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingSendTimeoutInSecond { get => _appResourceBody.IngressSettingSendTimeoutInSecond ?? default(int); set => _appResourceBody.IngressSettingSendTimeoutInSecond = value; } + + /// Type of the affinity, set this to Cookie to enable session affinity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the affinity, set this to Cookie to enable session affinity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the affinity, set this to Cookie to enable session affinity.", + SerializedName = @"sessionAffinity", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity IngressSettingSessionAffinity { get => _appResourceBody.IngressSettingSessionAffinity ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity)""); set => _appResourceBody.IngressSettingSessionAffinity = value; } + + /// Time in seconds until the cookie expires. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time in seconds until the cookie expires.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time in seconds until the cookie expires.", + SerializedName = @"sessionCookieMaxAge", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingSessionCookieMaxAge { get => _appResourceBody.IngressSettingSessionCookieMaxAge ?? default(int); set => _appResourceBody.IngressSettingSessionCookieMaxAge = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Collection of loaded certificates + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of loaded certificates")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of loaded certificates", + SerializedName = @"loadedCertificates", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get => _appResourceBody.LoadedCertificate ?? null /* arrayOf */; set => _appResourceBody.LoadedCertificate = value; } + + /// The GEO location of the application, always the same with its parent resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The GEO location of the application, always the same with its parent resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The GEO location of the application, always the same with its parent resource", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _appResourceBody.Location ?? null; set => _appResourceBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("AppName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Mount path of the persistent disk + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Mount path of the persistent disk")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the persistent disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + public string PersistentDiskMountPath { get => _appResourceBody.PersistentDiskMountPath ?? null; set => _appResourceBody.PersistentDiskMountPath = value; } + + /// Size of the persistent disk in GB + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Size of the persistent disk in GB")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the persistent disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + public int PersistentDiskSizeInGb { get => _appResourceBody.PersistentDiskSizeInGb ?? default(int); set => _appResourceBody.PersistentDiskSizeInGb = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Indicates whether the App exposes public endpoint + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the App exposes public endpoint")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App exposes public endpoint", + SerializedName = @"public", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Public { get => _appResourceBody.Public ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.Public = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Mount path of the temporary disk + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Mount path of the temporary disk")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the temporary disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + public string TemporaryDiskMountPath { get => _appResourceBody.TemporaryDiskMountPath ?? null; set => _appResourceBody.TemporaryDiskMountPath = value; } + + /// Size of the temporary disk in GB + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Size of the temporary disk in GB")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the temporary disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + public int TemporaryDiskSizeInGb { get => _appResourceBody.TemporaryDiskSizeInGb ?? default(int); set => _appResourceBody.TemporaryDiskSizeInGb = value; } + + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.", + SerializedName = @"publicEndpoint", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetAddonPublicEndpoint { get => _appResourceBody.VnetAddonPublicEndpoint ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.VnetAddonPublicEndpoint = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformApp_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformApp_UpdateExpanded Clone() + { + var clone = new UpdateAzAppPlatformApp_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._appResourceBody = this._appResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.AppsUpdate(SubscriptionId, ResourceGroupName, ServiceName, Name, _appResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,Name=Name,body=_appResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformApp_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, Name=Name, body=_appResourceBody }) + { + 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, ServiceName=ServiceName, Name=Name, body=_appResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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.AppPlatform.Models.Api20221101Preview.IAppResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..7ec470046de0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateViaIdentityExpanded.cs @@ -0,0 +1,708 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to update an exiting App. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformApp_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to update an exiting App.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformApp_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// App resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource _appResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.AppResource(); + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Collection of addons + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of addons")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of addons", + SerializedName = @"addonConfigs", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResourcePropertiesAddonConfigs AddonConfig { get => _appResourceBody.AddonConfig ?? null /* object */; set => _appResourceBody.AddonConfig = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// Collection of certificate resource id. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of certificate resource id.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of certificate resource id.", + SerializedName = @"certificates", + PossibleTypes = new [] { typeof(string) })] + public string[] ClientAuthCertificate { get => _appResourceBody.ClientAuthCertificate ?? null /* arrayOf */; set => _appResourceBody.ClientAuthCertificate = value; } + + /// List of custom persistent disks + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of custom persistent disks")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of custom persistent disks", + SerializedName = @"customPersistentDisks", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomPersistentDiskResource[] CustomPersistentDisk { get => _appResourceBody.CustomPersistentDisk ?? null /* arrayOf */; set => _appResourceBody.CustomPersistentDisk = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Indicate if end to end TLS is enabled. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicate if end to end TLS is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if end to end TLS is enabled.", + SerializedName = @"enableEndToEndTLS", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter EnableEndToEndTl { get => _appResourceBody.EnableEndToEndTl ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.EnableEndToEndTl = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Indicate if only https is allowed. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicate if only https is allowed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicate if only https is allowed.", + SerializedName = @"httpsOnly", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter HttpsOnly { get => _appResourceBody.HttpsOnly ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.HttpsOnly = value; } + + /// Principal Id of system-assigned managed identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Principal Id of system-assigned managed identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal Id of system-assigned managed identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _appResourceBody.IdentityPrincipalId ?? null; set => _appResourceBody.IdentityPrincipalId = value; } + + /// Tenant Id of system-assigned managed identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tenant Id of system-assigned managed identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id of system-assigned managed identity.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _appResourceBody.IdentityTenantId ?? null; set => _appResourceBody.IdentityTenantId = value; } + + /// Type of the managed identity + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the managed identity")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the managed identity", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType IdentityType { get => _appResourceBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType)""); set => _appResourceBody.IdentityType = value; } + + /// Properties of user-assigned managed identities + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Properties of user-assigned managed identities")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Properties of user-assigned managed identities", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IUserAssignedManagedIdentities IdentityUserAssignedIdentity { get => _appResourceBody.IdentityUserAssignedIdentity ?? null /* object */; set => _appResourceBody.IdentityUserAssignedIdentity = value; } + + /// How ingress should communicate with this app backend service. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "How ingress should communicate with this app backend service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"How ingress should communicate with this app backend service.", + SerializedName = @"backendProtocol", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol IngressSettingBackendProtocol { get => _appResourceBody.IngressSettingBackendProtocol ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.BackendProtocol)""); set => _appResourceBody.IngressSettingBackendProtocol = value; } + + /// Ingress read time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress read time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingReadTimeoutInSecond { get => _appResourceBody.IngressSettingReadTimeoutInSecond ?? default(int); set => _appResourceBody.IngressSettingReadTimeoutInSecond = value; } + + /// Ingress send time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress send time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress send time out in seconds.", + SerializedName = @"sendTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingSendTimeoutInSecond { get => _appResourceBody.IngressSettingSendTimeoutInSecond ?? default(int); set => _appResourceBody.IngressSettingSendTimeoutInSecond = value; } + + /// Type of the affinity, set this to Cookie to enable session affinity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the affinity, set this to Cookie to enable session affinity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the affinity, set this to Cookie to enable session affinity.", + SerializedName = @"sessionAffinity", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity IngressSettingSessionAffinity { get => _appResourceBody.IngressSettingSessionAffinity ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SessionAffinity)""); set => _appResourceBody.IngressSettingSessionAffinity = value; } + + /// Time in seconds until the cookie expires. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time in seconds until the cookie expires.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time in seconds until the cookie expires.", + SerializedName = @"sessionCookieMaxAge", + PossibleTypes = new [] { typeof(int) })] + public int IngressSettingSessionCookieMaxAge { get => _appResourceBody.IngressSettingSessionCookieMaxAge ?? default(int); set => _appResourceBody.IngressSettingSessionCookieMaxAge = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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; } } + + /// Collection of loaded certificates + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of loaded certificates")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Collection of loaded certificates", + SerializedName = @"loadedCertificates", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ILoadedCertificate[] LoadedCertificate { get => _appResourceBody.LoadedCertificate ?? null /* arrayOf */; set => _appResourceBody.LoadedCertificate = value; } + + /// The GEO location of the application, always the same with its parent resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The GEO location of the application, always the same with its parent resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The GEO location of the application, always the same with its parent resource", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _appResourceBody.Location ?? null; set => _appResourceBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Mount path of the persistent disk + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Mount path of the persistent disk")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the persistent disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + public string PersistentDiskMountPath { get => _appResourceBody.PersistentDiskMountPath ?? null; set => _appResourceBody.PersistentDiskMountPath = value; } + + /// Size of the persistent disk in GB + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Size of the persistent disk in GB")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the persistent disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + public int PersistentDiskSizeInGb { get => _appResourceBody.PersistentDiskSizeInGb ?? default(int); set => _appResourceBody.PersistentDiskSizeInGb = value; } + + /// + /// The instance of the that the remote call will use. + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Indicates whether the App exposes public endpoint + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the App exposes public endpoint")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App exposes public endpoint", + SerializedName = @"public", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Public { get => _appResourceBody.Public ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.Public = value; } + + /// Mount path of the temporary disk + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Mount path of the temporary disk")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Mount path of the temporary disk", + SerializedName = @"mountPath", + PossibleTypes = new [] { typeof(string) })] + public string TemporaryDiskMountPath { get => _appResourceBody.TemporaryDiskMountPath ?? null; set => _appResourceBody.TemporaryDiskMountPath = value; } + + /// Size of the temporary disk in GB + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Size of the temporary disk in GB")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Size of the temporary disk in GB", + SerializedName = @"sizeInGB", + PossibleTypes = new [] { typeof(int) })] + public int TemporaryDiskSizeInGb { get => _appResourceBody.TemporaryDiskSizeInGb ?? default(int); set => _appResourceBody.TemporaryDiskSizeInGb = value; } + + /// + /// Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the App in vnet injection instance exposes endpoint which could be accessed from internet.", + SerializedName = @"publicEndpoint", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetAddonPublicEndpoint { get => _appResourceBody.VnetAddonPublicEndpoint ?? default(global::System.Management.Automation.SwitchParameter); set => _appResourceBody.VnetAddonPublicEndpoint = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformApp_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformApp_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzAppPlatformApp_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._appResourceBody = this._appResourceBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'AppsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.AppsUpdateViaIdentity(InputObject.Id, _appResourceBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.AppsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, _appResourceBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_appResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformApp_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_appResourceBody }) + { + 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=_appResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IAppResource + /// 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.AppPlatform.Models.Api20221101Preview.IAppResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateExpanded.cs new file mode 100644 index 000000000000..a782a0d9a868 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateExpanded.cs @@ -0,0 +1,544 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to update an exiting Binding. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformBinding_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to update an exiting Binding.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformBinding_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Binding resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource _bindingResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource(); + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Binding parameters of the Binding resource + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Binding parameters of the Binding resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Binding parameters of the Binding resource", + SerializedName = @"bindingParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => _bindingResourceBody.BindingParameter ?? null /* object */; set => _bindingResourceBody.BindingParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; } } + + /// The key of the bound resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The key of the bound resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The key of the bound resource", + SerializedName = @"key", + PossibleTypes = new [] { typeof(string) })] + public string Key { get => _bindingResourceBody.Key ?? null; set => _bindingResourceBody.Key = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Binding resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Binding resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Binding resource.", + SerializedName = @"bindingName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("BindingName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The Azure resource id of the bound resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Azure resource id of the bound resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure resource id of the bound resource", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + public string ResourceId { get => _bindingResourceBody.ResourceId ?? null; set => _bindingResourceBody.ResourceId = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformBinding_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformBinding_UpdateExpanded Clone() + { + var clone = new UpdateAzAppPlatformBinding_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._bindingResourceBody = this._bindingResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BindingsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.BindingsUpdate(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, _bindingResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name,body=_bindingResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformBinding_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, Name=Name, body=_bindingResourceBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, Name=Name, body=_bindingResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..643baac9cd70 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateViaIdentityExpanded.cs @@ -0,0 +1,494 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to update an exiting Binding. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/bindings/{bindingName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformBinding_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to update an exiting Binding.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformBinding_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; + + /// Binding resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource _bindingResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.BindingResource(); + + /// + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// Binding parameters of the Binding resource + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Binding parameters of the Binding resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Binding parameters of the Binding resource", + SerializedName = @"bindingParameters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => _bindingResourceBody.BindingParameter ?? null /* object */; set => _bindingResourceBody.BindingParameter = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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 key of the bound resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The key of the bound resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The key of the bound resource", + SerializedName = @"key", + PossibleTypes = new [] { typeof(string) })] + public string Key { get => _bindingResourceBody.Key ?? null; set => _bindingResourceBody.Key = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The Azure resource id of the bound resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Azure resource id of the bound resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure resource id of the bound resource", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + public string ResourceId { get => _bindingResourceBody.ResourceId ?? null; set => _bindingResourceBody.ResourceId = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformBinding_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformBinding_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzAppPlatformBinding_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._bindingResourceBody = this._bindingResourceBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'BindingsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.BindingsUpdateViaIdentity(InputObject.Id, _bindingResourceBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.BindingName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.BindingName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.BindingsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.BindingName ?? null, _bindingResourceBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_bindingResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformBinding_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_bindingResourceBody }) + { + 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=_bindingResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IBindingResource + /// 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.AppPlatform.Models.Api20221101Preview.IBindingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateExpanded.cs new file mode 100644 index 000000000000..25d24b6a201a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateExpanded.cs @@ -0,0 +1,613 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Update the config server. + /// + /// [OpenAPI] UpdatePatch=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformConfigServerPatch_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Update the config server.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformConfigServerPatch_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Config Server resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource _configServerResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// The code of error. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The code of error.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + public string Code { get => _configServerResourceBody.Code ?? null; set => _configServerResourceBody.Code = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Public sshKey of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Public sshKey of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyHostKey { get => _configServerResourceBody.GitPropertyHostKey ?? null; set => _configServerResourceBody.GitPropertyHostKey = value; } + + /// SshKey algorithm of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "SshKey algorithm of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyHostKeyAlgorithm { get => _configServerResourceBody.GitPropertyHostKeyAlgorithm ?? null; set => _configServerResourceBody.GitPropertyHostKeyAlgorithm = value; } + + /// Label of the repository + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Label of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyLabel { get => _configServerResourceBody.GitPropertyLabel ?? null; set => _configServerResourceBody.GitPropertyLabel = value; } + + /// Password of git repository basic auth. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Password of git repository basic auth.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyPassword { get => _configServerResourceBody.GitPropertyPassword ?? null; set => _configServerResourceBody.GitPropertyPassword = value; } + + /// Private sshKey algorithm of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Private sshKey algorithm of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyPrivateKey { get => _configServerResourceBody.GitPropertyPrivateKey ?? null; set => _configServerResourceBody.GitPropertyPrivateKey = value; } + + /// Repositories of git. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Repositories of git.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of git.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get => _configServerResourceBody.GitPropertyRepository ?? null /* arrayOf */; set => _configServerResourceBody.GitPropertyRepository = value; } + + /// Searching path of the repository + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Searching path of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + public string[] GitPropertySearchPath { get => _configServerResourceBody.GitPropertySearchPath ?? null /* arrayOf */; set => _configServerResourceBody.GitPropertySearchPath = value; } + + /// Strict host key checking or not. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Strict host key checking or not.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter GitPropertyStrictHostKeyChecking { get => _configServerResourceBody.GitPropertyStrictHostKeyChecking ?? default(global::System.Management.Automation.SwitchParameter); set => _configServerResourceBody.GitPropertyStrictHostKeyChecking = value; } + + /// URI of the repository + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyUri { get => _configServerResourceBody.GitPropertyUri ?? null; set => _configServerResourceBody.GitPropertyUri = value; } + + /// Username of git repository basic auth. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Username of git repository basic auth.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyUsername { get => _configServerResourceBody.GitPropertyUsername ?? null; set => _configServerResourceBody.GitPropertyUsername = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; } } + + /// The message of error. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The message of error.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + public string Message { get => _configServerResourceBody.Message ?? null; set => _configServerResourceBody.Message = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformConfigServerPatch_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformConfigServerPatch_UpdateExpanded Clone() + { + var clone = new UpdateAzAppPlatformConfigServerPatch_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._configServerResourceBody = this._configServerResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigServersUpdatePatch' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ConfigServersUpdatePatch(SubscriptionId, ResourceGroupName, ServiceName, _configServerResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,body=_configServerResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformConfigServerPatch_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, body=_configServerResourceBody }) + { + 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, ServiceName=ServiceName, body=_configServerResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..e2d921ff60ad --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded.cs @@ -0,0 +1,589 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Update the config server. + /// + /// [OpenAPI] UpdatePatch=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/configServers/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Update the config server.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Config Server resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource _configServerResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ConfigServerResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// The code of error. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The code of error.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + public string Code { get => _configServerResourceBody.Code ?? null; set => _configServerResourceBody.Code = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Public sshKey of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Public sshKey of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Public sshKey of git repository.", + SerializedName = @"hostKey", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyHostKey { get => _configServerResourceBody.GitPropertyHostKey ?? null; set => _configServerResourceBody.GitPropertyHostKey = value; } + + /// SshKey algorithm of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "SshKey algorithm of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"SshKey algorithm of git repository.", + SerializedName = @"hostKeyAlgorithm", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyHostKeyAlgorithm { get => _configServerResourceBody.GitPropertyHostKeyAlgorithm ?? null; set => _configServerResourceBody.GitPropertyHostKeyAlgorithm = value; } + + /// Label of the repository + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Label of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Label of the repository", + SerializedName = @"label", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyLabel { get => _configServerResourceBody.GitPropertyLabel ?? null; set => _configServerResourceBody.GitPropertyLabel = value; } + + /// Password of git repository basic auth. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Password of git repository basic auth.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Password of git repository basic auth.", + SerializedName = @"password", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyPassword { get => _configServerResourceBody.GitPropertyPassword ?? null; set => _configServerResourceBody.GitPropertyPassword = value; } + + /// Private sshKey algorithm of git repository. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Private sshKey algorithm of git repository.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Private sshKey algorithm of git repository.", + SerializedName = @"privateKey", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyPrivateKey { get => _configServerResourceBody.GitPropertyPrivateKey ?? null; set => _configServerResourceBody.GitPropertyPrivateKey = value; } + + /// Repositories of git. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Repositories of git.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Repositories of git.", + SerializedName = @"repositories", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IGitPatternRepository[] GitPropertyRepository { get => _configServerResourceBody.GitPropertyRepository ?? null /* arrayOf */; set => _configServerResourceBody.GitPropertyRepository = value; } + + /// Searching path of the repository + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Searching path of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Searching path of the repository", + SerializedName = @"searchPaths", + PossibleTypes = new [] { typeof(string) })] + public string[] GitPropertySearchPath { get => _configServerResourceBody.GitPropertySearchPath ?? null /* arrayOf */; set => _configServerResourceBody.GitPropertySearchPath = value; } + + /// Strict host key checking or not. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Strict host key checking or not.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Strict host key checking or not.", + SerializedName = @"strictHostKeyChecking", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter GitPropertyStrictHostKeyChecking { get => _configServerResourceBody.GitPropertyStrictHostKeyChecking ?? default(global::System.Management.Automation.SwitchParameter); set => _configServerResourceBody.GitPropertyStrictHostKeyChecking = value; } + + /// URI of the repository + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the repository")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the repository", + SerializedName = @"uri", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyUri { get => _configServerResourceBody.GitPropertyUri ?? null; set => _configServerResourceBody.GitPropertyUri = value; } + + /// Username of git repository basic auth. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Username of git repository basic auth.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Username of git repository basic auth.", + SerializedName = @"username", + PossibleTypes = new [] { typeof(string) })] + public string GitPropertyUsername { get => _configServerResourceBody.GitPropertyUsername ?? null; set => _configServerResourceBody.GitPropertyUsername = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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 message of error. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The message of error.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + public string Message { get => _configServerResourceBody.Message ?? null; set => _configServerResourceBody.Message = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzAppPlatformConfigServerPatch_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._configServerResourceBody = this._configServerResourceBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ConfigServersUpdatePatch' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ConfigServersUpdatePatchViaIdentity(InputObject.Id, _configServerResourceBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ConfigServersUpdatePatch(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, _configServerResourceBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_configServerResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzAppPlatformConfigServerPatch_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_configServerResourceBody }) + { + 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=_configServerResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IConfigServerResource + /// 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.AppPlatform.Models.Api20221101Preview.IConfigServerResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateExpanded.cs new file mode 100644 index 000000000000..55e4f39fb494 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateExpanded.cs @@ -0,0 +1,531 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Update custom domain of one lifecycle application. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformCustomDomain_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Update custom domain of one lifecycle application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformCustomDomain_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource _domainResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource(); + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The bound certificate name of domain. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The bound certificate name of domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The bound certificate name of domain.", + SerializedName = @"certName", + PossibleTypes = new [] { typeof(string) })] + public string CertName { get => _domainResourceBody.CertName ?? null; set => _domainResourceBody.CertName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// The name of the custom domain resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the custom domain resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the custom domain resource.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// The thumbprint of bound certificate. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The thumbprint of bound certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + public string Thumbprint { get => _domainResourceBody.Thumbprint ?? null; set => _domainResourceBody.Thumbprint = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformCustomDomain_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformCustomDomain_UpdateExpanded Clone() + { + var clone = new UpdateAzAppPlatformCustomDomain_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._domainResourceBody = this._domainResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.DomainName = this.DomainName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomDomainsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.CustomDomainsUpdate(SubscriptionId, ResourceGroupName, ServiceName, AppName, DomainName, _domainResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,DomainName=DomainName,body=_domainResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformCustomDomain_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, DomainName=DomainName, body=_domainResourceBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, DomainName=DomainName, body=_domainResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..915282a8a006 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateViaIdentityExpanded.cs @@ -0,0 +1,484 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Update custom domain of one lifecycle application. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformCustomDomain_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Update custom domain of one lifecycle application.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformCustomDomain_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Custom domain resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource _domainResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.CustomDomainResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The bound certificate name of domain. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The bound certificate name of domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The bound certificate name of domain.", + SerializedName = @"certName", + PossibleTypes = new [] { typeof(string) })] + public string CertName { get => _domainResourceBody.CertName ?? null; set => _domainResourceBody.CertName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The thumbprint of bound certificate. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The thumbprint of bound certificate.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The thumbprint of bound certificate.", + SerializedName = @"thumbprint", + PossibleTypes = new [] { typeof(string) })] + public string Thumbprint { get => _domainResourceBody.Thumbprint ?? null; set => _domainResourceBody.Thumbprint = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzAppPlatformCustomDomain_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformCustomDomain_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzAppPlatformCustomDomain_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._domainResourceBody = this._domainResourceBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'CustomDomainsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.CustomDomainsUpdateViaIdentity(InputObject.Id, _domainResourceBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.CustomDomainsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DomainName ?? null, _domainResourceBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_domainResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformCustomDomain_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_domainResourceBody }) + { + 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=_domainResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + /// 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.AppPlatform.Models.Api20221101Preview.ICustomDomainResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateExpanded.cs new file mode 100644 index 000000000000..15226b5b69fd --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateExpanded.cs @@ -0,0 +1,587 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to update an exiting Deployment. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformDeployment_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to update an exiting Deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformDeployment_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Deployment resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource _deploymentResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource(); + + /// Indicates whether the Deployment is active + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the Deployment is active")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the Deployment is active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Active { get => _deploymentResourceBody.Active ?? default(global::System.Management.Automation.SwitchParameter); set => _deploymentResourceBody.Active = value; } + + /// Backing field for property. + private string _appName; + + /// The name of the App resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the App resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the App resource.", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string AppName { get => this._appName; set => this._appName = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Deployment settings of the Deployment + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Deployment settings of the Deployment")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deployment settings of the Deployment", + SerializedName = @"deploymentSettings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get => _deploymentResourceBody.DeploymentSetting ?? null /* object */; set => _deploymentResourceBody.DeploymentSetting = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Deployment resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Deployment resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Deployment resource.", + SerializedName = @"deploymentName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DeploymentName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _deploymentResourceBody.SkuCapacity ?? default(int); set => _deploymentResourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _deploymentResourceBody.SkuName ?? null; set => _deploymentResourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _deploymentResourceBody.SkuTier ?? null; set => _deploymentResourceBody.SkuTier = value; } + + /// Type of the source uploaded + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the source uploaded")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the source uploaded", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string SourceType { get => _deploymentResourceBody.SourceType ?? null; set => _deploymentResourceBody.SourceType = value; } + + /// Version of the source + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Version of the source")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the source", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string SourceVersion { get => _deploymentResourceBody.SourceVersion ?? null; set => _deploymentResourceBody.SourceVersion = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformDeployment_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformDeployment_UpdateExpanded Clone() + { + var clone = new UpdateAzAppPlatformDeployment_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._deploymentResourceBody = this._deploymentResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + clone.AppName = this.AppName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DeploymentsUpdate(SubscriptionId, ResourceGroupName, ServiceName, AppName, Name, _deploymentResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,AppName=AppName,Name=Name,body=_deploymentResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformDeployment_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, AppName=AppName, Name=Name, body=_deploymentResourceBody }) + { + 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, ServiceName=ServiceName, AppName=AppName, Name=Name, body=_deploymentResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..a14b408c4864 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateViaIdentityExpanded.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.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to update an exiting Deployment. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/apps/{appName}/deployments/{deploymentName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformDeployment_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to update an exiting Deployment.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformDeployment_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Deployment resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource _deploymentResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.DeploymentResource(); + + /// Indicates whether the Deployment is active + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the Deployment is active")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the Deployment is active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter Active { get => _deploymentResourceBody.Active ?? default(global::System.Management.Automation.SwitchParameter); set => _deploymentResourceBody.Active = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Deployment settings of the Deployment + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Deployment settings of the Deployment")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Deployment settings of the Deployment", + SerializedName = @"deploymentSettings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentSettings DeploymentSetting { get => _deploymentResourceBody.DeploymentSetting ?? null /* object */; set => _deploymentResourceBody.DeploymentSetting = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _deploymentResourceBody.SkuCapacity ?? default(int); set => _deploymentResourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _deploymentResourceBody.SkuName ?? null; set => _deploymentResourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _deploymentResourceBody.SkuTier ?? null; set => _deploymentResourceBody.SkuTier = value; } + + /// Type of the source uploaded + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the source uploaded")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the source uploaded", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string SourceType { get => _deploymentResourceBody.SourceType ?? null; set => _deploymentResourceBody.SourceType = value; } + + /// Version of the source + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Version of the source")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Version of the source", + SerializedName = @"version", + PossibleTypes = new [] { typeof(string) })] + public string SourceVersion { get => _deploymentResourceBody.SourceVersion ?? null; set => _deploymentResourceBody.SourceVersion = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformDeployment_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformDeployment_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzAppPlatformDeployment_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._deploymentResourceBody = this._deploymentResourceBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DeploymentsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DeploymentsUpdateViaIdentity(InputObject.Id, _deploymentResourceBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.AppName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.AppName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DeploymentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DeploymentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DeploymentsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, InputObject.AppName ?? null, InputObject.DeploymentName ?? null, _deploymentResourceBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_deploymentResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformDeployment_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_deploymentResourceBody }) + { + 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=_deploymentResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IDeploymentResource + /// 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.AppPlatform.Models.Api20221101Preview.IDeploymentResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateExpanded.cs new file mode 100644 index 000000000000..fd7e93550b1f --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateExpanded.cs @@ -0,0 +1,543 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Update the Monitoring Setting. + /// + /// [OpenAPI] UpdatePatch=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/monitoringSettings/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformMonitoringSettingPatch_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Update the Monitoring Setting.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformMonitoringSettingPatch_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Monitoring Setting resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource _monitoringSettingResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingResource(); + + /// + /// Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings", + SerializedName = @"appInsightsInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + public string AppInsightsInstrumentationKey { get => _monitoringSettingResourceBody.AppInsightsInstrumentationKey ?? null; set => _monitoringSettingResourceBody.AppInsightsInstrumentationKey = value; } + + /// + /// Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0]")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0]", + SerializedName = @"appInsightsSamplingRate", + PossibleTypes = new [] { typeof(double) })] + public double AppInsightsSamplingRate { get => _monitoringSettingResourceBody.AppInsightsSamplingRate ?? default(double); set => _monitoringSettingResourceBody.AppInsightsSamplingRate = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// The code of error. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The code of error.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + public string Code { get => _monitoringSettingResourceBody.Code ?? null; set => _monitoringSettingResourceBody.Code = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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; } } + + /// The message of error. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The message of error.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + public string Message { get => _monitoringSettingResourceBody.Message ?? null; set => _monitoringSettingResourceBody.Message = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _serviceName; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ServiceName { get => this._serviceName; set => this._serviceName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please + /// leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not", + SerializedName = @"traceEnabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter TraceEnabled { get => _monitoringSettingResourceBody.TraceEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => _monitoringSettingResourceBody.TraceEnabled = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzAppPlatformMonitoringSettingPatch_UpdateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformMonitoringSettingPatch_UpdateExpanded Clone() + { + var clone = new UpdateAzAppPlatformMonitoringSettingPatch_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._monitoringSettingResourceBody = this._monitoringSettingResourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ServiceName = this.ServiceName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MonitoringSettingsUpdatePatch' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.MonitoringSettingsUpdatePatch(SubscriptionId, ResourceGroupName, ServiceName, _monitoringSettingResourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,ServiceName=ServiceName,body=_monitoringSettingResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformMonitoringSettingPatch_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, ServiceName=ServiceName, body=_monitoringSettingResourceBody }) + { + 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, ServiceName=ServiceName, body=_monitoringSettingResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + /// 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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..53befaa4fcd8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded.cs @@ -0,0 +1,517 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Update the Monitoring Setting. + /// + /// [OpenAPI] UpdatePatch=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}/monitoringSettings/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Update the Monitoring Setting.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Monitoring Setting resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource _monitoringSettingResourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.MonitoringSettingResource(); + + /// + /// Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Target application insight instrumentation key, null or whitespace include empty will disable monitoringSettings", + SerializedName = @"appInsightsInstrumentationKey", + PossibleTypes = new [] { typeof(string) })] + public string AppInsightsInstrumentationKey { get => _monitoringSettingResourceBody.AppInsightsInstrumentationKey ?? null; set => _monitoringSettingResourceBody.AppInsightsInstrumentationKey = value; } + + /// + /// Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0] + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0]")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates the sampling rate of application insight agent, should be in range [0.0, 100.0]", + SerializedName = @"appInsightsSamplingRate", + PossibleTypes = new [] { typeof(double) })] + public double AppInsightsSamplingRate { get => _monitoringSettingResourceBody.AppInsightsSamplingRate ?? default(double); set => _monitoringSettingResourceBody.AppInsightsSamplingRate = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.ClientAPI; + + /// The code of error. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The code of error.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The code of error.", + SerializedName = @"code", + PossibleTypes = new [] { typeof(string) })] + public string Code { get => _monitoringSettingResourceBody.Code ?? null; set => _monitoringSettingResourceBody.Code = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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 message of error. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The message of error.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The message of error.", + SerializedName = @"message", + PossibleTypes = new [] { typeof(string) })] + public string Message { get => _monitoringSettingResourceBody.Message ?? null; set => _monitoringSettingResourceBody.Message = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please + /// leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether enable the trace functionality, which will be deprecated since api version 2020-11-01-preview. Please leverage appInsightsInstrumentationKey to indicate if monitoringSettings enabled or not", + SerializedName = @"traceEnabled", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter TraceEnabled { get => _monitoringSettingResourceBody.TraceEnabled ?? default(global::System.Management.Automation.SwitchParameter); set => _monitoringSettingResourceBody.TraceEnabled = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzAppPlatformMonitoringSettingPatch_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._monitoringSettingResourceBody = this._monitoringSettingResourceBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'MonitoringSettingsUpdatePatch' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.MonitoringSettingsUpdatePatchViaIdentity(InputObject.Id, _monitoringSettingResourceBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.MonitoringSettingsUpdatePatch(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, _monitoringSettingResourceBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_monitoringSettingResourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzAppPlatformMonitoringSettingPatch_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_monitoringSettingResourceBody }) + { + 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=_monitoringSettingResourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + /// 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.AppPlatform.Models.Api20221101Preview.IMonitoringSettingResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateExpanded.cs new file mode 100644 index 000000000000..3a3203d49fda --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateExpanded.cs @@ -0,0 +1,680 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to update an exiting Service. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformService_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to update an exiting Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformService_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Service resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource _resourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Ingress read time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress read time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressConfigReadTimeoutInSecond { get => _resourceBody.IngressConfigReadTimeoutInSecond ?? default(int); set => _resourceBody.IngressConfigReadTimeoutInSecond = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// The GEO location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The GEO location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The GEO location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _resourceBody.Location ?? null; set => _resourceBody.Location = value; } + + /// The plan id of the 3rd Party Artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The plan id of the 3rd Party Artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The plan id of the 3rd Party Artifact that is being procured.", + SerializedName = @"plan", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourcePlan { get => _resourceBody.MarketplaceResourcePlan ?? null; set => _resourceBody.MarketplaceResourcePlan = value; } + + /// The 3rd Party artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The 3rd Party artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured.", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourceProduct { get => _resourceBody.MarketplaceResourceProduct ?? null; set => _resourceBody.MarketplaceResourceProduct = value; } + + /// The publisher id of the 3rd Party Artifact that is being bought. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The publisher id of the 3rd Party Artifact that is being bought.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher id of the 3rd Party Artifact that is being bought.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourcePublisher { get => _resourceBody.MarketplaceResourcePublisher ?? null; set => _resourceBody.MarketplaceResourcePublisher = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the Service resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the Service resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the Service resource.", + SerializedName = @"serviceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ServiceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources for customer apps in Azure Spring Apps")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources for customer apps in Azure Spring Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppNetworkResourceGroup { get => _resourceBody.NetworkProfileAppNetworkResourceGroup ?? null; set => _resourceBody.NetworkProfileAppNetworkResourceGroup = value; } + + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppSubnetId { get => _resourceBody.NetworkProfileAppSubnetId ?? null; set => _resourceBody.NetworkProfileAppSubnetId = value; } + + /// The egress traffic type of Azure Spring Apps VNet instances. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The egress traffic type of Azure Spring Apps VNet instances.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The egress traffic type of Azure Spring Apps VNet instances.", + SerializedName = @"outboundType", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileOutboundType { get => _resourceBody.NetworkProfileOutboundType ?? null; set => _resourceBody.NetworkProfileOutboundType = value; } + + /// Azure Spring Apps service reserved CIDR + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Spring Apps service reserved CIDR")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Apps service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceCidr { get => _resourceBody.NetworkProfileServiceCidr ?? null; set => _resourceBody.NetworkProfileServiceCidr = value; } + + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Apps Service Runtime")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceRuntimeNetworkResourceGroup { get => _resourceBody.NetworkProfileServiceRuntimeNetworkResourceGroup ?? null; set => _resourceBody.NetworkProfileServiceRuntimeNetworkResourceGroup = value; } + + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceRuntimeSubnetId { get => _resourceBody.NetworkProfileServiceRuntimeSubnetId ?? null; set => _resourceBody.NetworkProfileServiceRuntimeSubnetId = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API + /// or the portal. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _resourceBody.SkuCapacity ?? default(int); set => _resourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _resourceBody.SkuName ?? null; set => _resourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _resourceBody.SkuTier ?? null; set => _resourceBody.SkuTier = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Gets subscription ID which uniquely identify the 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 ID which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Gets subscription ID which uniquely identify the 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.AppPlatform.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the service which is a list of key value pairs that describe the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the service which is a list of key value pairs that describe the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags Tag { get => _resourceBody.Tag ?? null /* object */; set => _resourceBody.Tag = value; } + + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the log stream in vnet injection instance could be accessed from internet.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the log stream in vnet injection instance could be accessed from internet.", + SerializedName = @"logStreamPublicEndpoint", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetAddonLogStreamPublicEndpoint { get => _resourceBody.VnetAddonLogStreamPublicEndpoint ?? default(global::System.Management.Automation.SwitchParameter); set => _resourceBody.VnetAddonLogStreamPublicEndpoint = value; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ZoneRedundant { get => _resourceBody.ZoneRedundant ?? default(global::System.Management.Automation.SwitchParameter); set => _resourceBody.ZoneRedundant = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformService_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformService_UpdateExpanded Clone() + { + var clone = new UpdateAzAppPlatformService_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._resourceBody = this._resourceBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ServicesUpdate(SubscriptionId, ResourceGroupName, Name, _resourceBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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,Name=Name,body=_resourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformService_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.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, Name=Name, body=_resourceBody }) + { + 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, Name=Name, body=_resourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateViaIdentityExpanded.cs b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..addba27322da --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateViaIdentityExpanded.cs @@ -0,0 +1,652 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + using System; + + /// Operation to update an exiting Service. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AppPlatform/Spring/{serviceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzAppPlatformService_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Description(@"Operation to update an exiting Service.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Generated] + public partial class UpdateAzAppPlatformService_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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(); + + /// Service resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource _resourceBody = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ServiceResource(); + + /// 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.AppPlatformManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Ingress read time out in seconds. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Ingress read time out in seconds.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Ingress read time out in seconds.", + SerializedName = @"readTimeoutInSeconds", + PossibleTypes = new [] { typeof(int) })] + public int IngressConfigReadTimeoutInSecond { get => _resourceBody.IngressConfigReadTimeoutInSecond ?? default(int); set => _resourceBody.IngressConfigReadTimeoutInSecond = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity 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 GEO location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The GEO location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The GEO location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _resourceBody.Location ?? null; set => _resourceBody.Location = value; } + + /// The plan id of the 3rd Party Artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The plan id of the 3rd Party Artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The plan id of the 3rd Party Artifact that is being procured.", + SerializedName = @"plan", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourcePlan { get => _resourceBody.MarketplaceResourcePlan ?? null; set => _resourceBody.MarketplaceResourcePlan = value; } + + /// The 3rd Party artifact that is being procured. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The 3rd Party artifact that is being procured.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The 3rd Party artifact that is being procured.", + SerializedName = @"product", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourceProduct { get => _resourceBody.MarketplaceResourceProduct ?? null; set => _resourceBody.MarketplaceResourceProduct = value; } + + /// The publisher id of the 3rd Party Artifact that is being bought. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The publisher id of the 3rd Party Artifact that is being bought.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The publisher id of the 3rd Party Artifact that is being bought.", + SerializedName = @"publisher", + PossibleTypes = new [] { typeof(string) })] + public string MarketplaceResourcePublisher { get => _resourceBody.MarketplaceResourcePublisher ?? null; set => _resourceBody.MarketplaceResourcePublisher = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// + /// Name of the resource group containing network resources for customer apps in Azure Spring Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources for customer apps in Azure Spring Apps")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources for customer apps in Azure Spring Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppNetworkResourceGroup { get => _resourceBody.NetworkProfileAppNetworkResourceGroup ?? null; set => _resourceBody.NetworkProfileAppNetworkResourceGroup = value; } + + /// + /// Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host customer apps in Azure Spring Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppSubnetId { get => _resourceBody.NetworkProfileAppSubnetId ?? null; set => _resourceBody.NetworkProfileAppSubnetId = value; } + + /// The egress traffic type of Azure Spring Apps VNet instances. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The egress traffic type of Azure Spring Apps VNet instances.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The egress traffic type of Azure Spring Apps VNet instances.", + SerializedName = @"outboundType", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileOutboundType { get => _resourceBody.NetworkProfileOutboundType ?? null; set => _resourceBody.NetworkProfileOutboundType = value; } + + /// Azure Spring Apps service reserved CIDR + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Spring Apps service reserved CIDR")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Apps service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceCidr { get => _resourceBody.NetworkProfileServiceCidr ?? null; set => _resourceBody.NetworkProfileServiceCidr = value; } + + /// + /// Name of the resource group containing network resources of Azure Spring Apps Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Apps Service Runtime")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceRuntimeNetworkResourceGroup { get => _resourceBody.NetworkProfileServiceRuntimeNetworkResourceGroup ?? null; set => _resourceBody.NetworkProfileServiceRuntimeNetworkResourceGroup = value; } + + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Apps Service Runtime", + SerializedName = @"serviceRuntimeSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileServiceRuntimeSubnetId { get => _resourceBody.NetworkProfileServiceRuntimeSubnetId ?? null; set => _resourceBody.NetworkProfileServiceRuntimeSubnetId = 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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Current capacity of the target resource + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Current capacity of the target resource")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Current capacity of the target resource", + SerializedName = @"capacity", + PossibleTypes = new [] { typeof(int) })] + public int SkuCapacity { get => _resourceBody.SkuCapacity ?? default(int); set => _resourceBody.SkuCapacity = value; } + + /// Name of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the Sku", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string SkuName { get => _resourceBody.SkuName ?? null; set => _resourceBody.SkuName = value; } + + /// Tier of the Sku + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tier of the Sku")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tier of the Sku", + SerializedName = @"tier", + PossibleTypes = new [] { typeof(string) })] + public string SkuTier { get => _resourceBody.SkuTier ?? null; set => _resourceBody.SkuTier = value; } + + /// + /// Tags of the service which is a list of key value pairs that describe the resource. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the service which is a list of key value pairs that describe the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the service which is a list of key value pairs that describe the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ITrackedResourceTags Tag { get => _resourceBody.Tag ?? null /* object */; set => _resourceBody.Tag = value; } + + /// + /// Indicates whether the log stream in vnet injection instance could be accessed from internet. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Indicates whether the log stream in vnet injection instance could be accessed from internet.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Indicates whether the log stream in vnet injection instance could be accessed from internet.", + SerializedName = @"logStreamPublicEndpoint", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter VnetAddonLogStreamPublicEndpoint { get => _resourceBody.VnetAddonLogStreamPublicEndpoint ?? default(global::System.Management.Automation.SwitchParameter); set => _resourceBody.VnetAddonLogStreamPublicEndpoint = value; } + + /// . + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = ".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @".", + SerializedName = @"zoneRedundant", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter ZoneRedundant { get => _resourceBody.ZoneRedundant ?? default(global::System.Management.Automation.SwitchParameter); set => _resourceBody.ZoneRedundant = 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzAppPlatformService_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets.UpdateAzAppPlatformService_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzAppPlatformService_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._resourceBody = this._resourceBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// 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.AppPlatform.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.AppPlatform.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ServicesUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ServicesUpdateViaIdentity(InputObject.Id, _resourceBody, 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.ServiceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ServiceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ServicesUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ServiceName ?? null, _resourceBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_resourceBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzAppPlatformService_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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.ICloudError + /// 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.AppPlatform.Runtime.RestException(responseMessage, await response); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_resourceBody }) + { + 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=_resourceBody }) + { + 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IServiceResource + /// 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.AppPlatform.Models.Api20221101Preview.IServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml new file mode 100644 index 000000000000..ae0c12dd4efa --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml @@ -0,0 +1,496 @@ + + + + + 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 + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + Id + + + Type + + + Tenants + + + Credential + + + TenantMap + + + CertificateThumbprint + + + + $_.ExtendedProperties.GetEnumerator() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml new file mode 100644 index 000000000000..a81dae94b4db --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml @@ -0,0 +1,468 @@ + + + + + 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/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml new file mode 100644 index 000000000000..e3b670a7daff --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml @@ -0,0 +1,303 @@ + + + + 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/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec new file mode 100644 index 000000000000..f664d888f3b8 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec @@ -0,0 +1,20 @@ + + + + Az.Accounts + 2.7.5 + 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 + * Added 'SshCredentialFactory' to support get ssh credential of vm from msal. +* Fixed the bug of cmdlet fails when -DefaultProfile is set to service principal login context. [#16617] +* Fixed the issue that authorization does not work in Dogfood environment + 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 PSCmdlet_Open-AzSurveyLink 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_Open-AzSurveyLink 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/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 new file mode 100644 index 000000000000..5597a247fce7 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 @@ -0,0 +1,387 @@ +# +# Module manifest for module 'Az.Accounts' +# +# Generated by: Microsoft Corporation +# +# Generated on: 3/31/2022 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'Az.Accounts.psm1' + +# Version number of this module. +ModuleVersion = '2.7.5' + +# 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', + 'Microsoft.Azure.PowerShell.Common.Share.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', + 'Open-AzSurveyLink' + +# 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 = '* Added ''SshCredentialFactory'' to support get ssh credential of vm from msal. +* Fixed the bug of cmdlet fails when -DefaultProfile is set to service principal login context. [#16617] +* Fixed the issue that authorization does not work in Dogfood environment' + + # 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 +# MIInoQYJKoZIhvcNAQcCoIInkjCCJ44CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBfih7Yjug0H4t7 +# yWl+P37e8ytBZAxLWrUP62/jyADYPKCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# 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/BvW1taslScxMNelDNMYIZdjCCGXICAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgXA6GKgxI +# VhLOuEe05JK0ofRRaS3Iixk8S4yAEDyheGcwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCk7+MONSYp7vxlpfSvtfVGPGdZ5LuxWlb4eimh/TgO +# qAAMDghpYUB8mFe46dAf/OoVHrcxhCfAof+aWlMkEqZTwIZ6p0XsXZ72jDLDFLgf +# WJNQ605jndPQx7/b3tDvqqI1sCHz4CvYnqiQn4/JpHjiE4321HRDFjhWv1lhTpMx +# Xaifyrvwc1OwLcSqMrEPSShevbYOH54J0MG+qI+t+AQ9D/WQdL/5HBJZ8PDZ2n9b +# I4FxGwm0aeTSnAiV602r8db+jebwv/5ypKfkok4IzN9qdQY1y3jXdP9MfEK2nCod +# Mbuby8eakQsarqZJovnvBOsZANYE8UafuSbYMQtJaEtnoYIXADCCFvwGCisGAQQB +# gjcDAwExghbsMIIW6AYJKoZIhvcNAQcCoIIW2TCCFtUCAQMxDzANBglghkgBZQME +# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIPieBDiQ8jeOJOjc2VK1Wl36ph7izu7GPD9rSN/j +# BxeOAgZiFm2JbrQYEzIwMjIwMzMxMTAyMDU2LjYzNlowBIACAfSggdCkgc0wgcox +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p +# Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg +# RVNOOjEyQkMtRTNBRS03NEVCMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +# cCBTZXJ2aWNloIIRVzCCBwwwggT0oAMCAQICEzMAAAGhAYVVmblUXYoAAQAAAaEw +# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 +# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh +# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN +# MjExMjAyMTkwNTI0WhcNMjMwMjI4MTkwNTI0WjCByjELMAkGA1UEBhMCVVMxEzAR +# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p +# Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg +# T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MTJCQy1FM0FFLTc0 +# RUIxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0G +# CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDayTxe5WukkrYxxVuHLYW9BEWCD9kk +# jnnHsOKwGddIPbZlLY+l5ovLDNf+BEMQKAZQI3DX91l1yCDuP9X7tOPC48ZRGXA/ +# bf9ql0FK5438gIl7cV528XeEOFwc/A+UbIUfW296Omg8Z62xaQv3jrG4U/priArF +# /er1UA1HNuIGUyqjlygiSPwK2NnFApi1JD+Uef5c47kh7pW1Kj7RnchpFeY9MekP +# QRia7cEaUYU4sqCiJVdDJpefLvPT9EdthlQx75ldx+AwZf2a9T7uQRSBh8tpxPdI +# DDkKiWMwjKTrAY09A3I/jidqPuc8PvX+sqxqyZEN2h4GA0Edjmk64nkIukAK18K5 +# nALDLO9SMTxpAwQIHRDtZeTClvAPCEoy1vtPD7f+eqHqStuu+XCkfRjXEpX9+h9f +# rsB0/BgD5CBf3ELLAa8TefMfHZWEJRTPNrbXMKizSrUSkVv/3HP/ZsJpwaz5My2R +# byc3Ah9bT76eBJkyfT5FN9v/KQ0HnxhRMs6HHhTmNx+LztYci+vHf0D3QH1eCjZW +# ZRjp1mOyxpPU2mDMG6gelvJse1JzRADo7YIok/J3Ccbm8MbBbm85iogFltFHecHF +# EFwrsDGBFnNYHMhcbarQNA+gY2e2l9fAkX3MjI7Uklkoz74/P6KIqe5jcd9FPCbb +# SbYH9OLsteeYOQIDAQABo4IBNjCCATIwHQYDVR0OBBYEFBa/IDLbY475VQyKiZSw +# 47l0/cypMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRY +# MFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01p +# Y3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEF +# BQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w +# a2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAo +# MSkuY3J0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI +# hvcNAQELBQADggIBACDDIxElfXlG5YKcKrLPSS+f3JWZprwKEiASvivaHTBRlXtA +# s+TkadcsEei+9w5vmF5tCUzTH4c0nCI7bZxnsL+S6XsiOs3Z1V4WX+IwoXUJ4zLv +# s0+mT4vjGDtYfKQ/bsmJKar2c99m/fHv1Wm2CTcyaePvi86Jh3UyLjdRILWbtzs4 +# oImFMwwKbzHdPopxrBhgi+C1YZshosWLlgzyuxjUl+qNg1m52MJmf11loI7D9HJo +# aQzd+rf928Y8rvULmg2h/G50o+D0UJ1Fa/cJJaHfB3sfKw9X6GrtXYGjmM3+g+Ah +# aVsfupKXNtOFu5tnLKvAH5OIjEDYV1YKmlXuBuhbYassygPFMmNgG2Ank3drEcDc +# ZhCXXqpRszNo1F6Gu5JCpQZXbOJM9Ue5PlJKtmImAYIGsw+pnHy/r5ggSYOp4g5Z +# 1oU9GhVCM3V0T9adee6OUXBk1rE4dZc/UsPlj0qoiljL+lN1A5gkmmz7k5tIObVG +# B7dJdz8J0FwXRE5qYu1AdvauVbZwGQkL1x8aK/svjEQW0NUyJ29znDHiXl5vLoRT +# jjFpshUBi2+IY+mNqbLmj24j5eT+bjDlE3HmNtLPpLcMDYqZ1H+6U6YmaiNmac2j +# RXDAaeEE/uoDMt2dArfJP7M+MDv3zzNNTINeuNEtDVgm9zwfgIUCXnDZuVtiMIIH +# cTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCB +# iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl +# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp +# TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEw +# OTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UE +# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z +# b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ +# Q0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIh +# C3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNx +# WuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFc +# UTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAc +# nVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUo +# veO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyzi +# YrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9 +# fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdH +# GO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7X +# KHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiE +# R9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/ +# eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3 +# FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAd +# BgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEE +# AYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMI +# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMB +# Af8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1Ud +# HwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3By +# b2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQRO +# MEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2Vy +# dHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4IC +# AQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pk +# bHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gng +# ugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3 +# lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHC +# gRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6 +# MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEU +# BHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvsh +# VGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+ +# fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrp +# NPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHI +# qzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCAs4wggI3AgEBMIH4 +# oYHQpIHNMIHKMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G +# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUw +# IwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQLEx1U +# aGFsZXMgVFNTIEVTTjoxMkJDLUUzQUUtNzRFQjElMCMGA1UEAxMcTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAG3F2jO4LEMVLwgKG +# XdYMN4FBgOCggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu +# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv +# cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAN +# BgkqhkiG9w0BAQUFAAIFAOXvuD8wIhgPMjAyMjAzMzExMzE4NTVaGA8yMDIyMDQw +# MTEzMTg1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA5e+4PwIBADAKAgEAAgIP +# IwIB/zAHAgEAAgIRnzAKAgUA5fEJvwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUA +# A4GBANc53MLryLt1FD+jkakQydkemUps4QiN8HJxJ36VPuc2XRhvcn0Fhp1Pi8Hk +# gg08sFJoJ2vT/9g5J39zdjQpnbNGMkfmEi+qT6hbGq0ta5rnt1wDG2pVMuMn7N2Q +# 8CytKi6ZynWVbiCNuQtxsuwdgM7bRwcf510Wwp7iQUeNjJZzMYIEDTCCBAkCAQEw +# gZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE +# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAGhAYVVmblUXYoA +# AQAAAaEwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0B +# CRABBDAvBgkqhkiG9w0BCQQxIgQg7aLPwq2FhUC9oleuUeRc4uk9d+4UFLvls0ps +# 5tQU14wwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDrCFTxOoGCaCCCjoRy +# Be1JSQrMJeCCTyErziiJ347QhDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwAhMzAAABoQGFVZm5VF2KAAEAAAGhMCIEIOKn52EgS+EFhqx/FxY8 +# xYD6qqUYqtVZ3iZ47g3sjJRaMA0GCSqGSIb3DQEBCwUABIICACJi4QGIi9yhn8uf +# NlWbdGQNP0UkTWxJRMnAe4eQUYbcHoOxPxguwy7r8VfTZOdKBxfy7/LKo5XGmAo2 +# hmZSsLHjtT0zzkZti2AFeCRmZ8DMVaGfR9sWBr0OwlRS3HMDigpWyI5jP/tD529k +# jh0/BYwKg2TGRk6ZmdFWXuQf0lVb/LytEUyFbziq4hoxhKc4IQ3oCcOm1xaVZzbe +# SgzPg3j4QfHAucYgfxJoIUP1lKTRclmUc2ERYmHchaUxeYIdiDHx5lpEdNsh0acm +# LgV307ncxLeN1Ih2E6By+Dknm8OppqVYOSvcjcjqHY+fU7ci/FuvyUVDQv6xe2ZS +# K6qCMCrPWtoOlE3ms+LE5kHVQ1JOs0v7mVVP8xfO+fkArk3RuUl/1gaGxi5Ljheg +# l+51jV5PMM4Vha9KoWfU2306ZLt/I1Rftq1sCOD5ysLnhTQuInQMRpfXlY/rvTPu +# 9jzQ4q4Ty7WPp004gh+9hLIm0s0nmZmM8jyTRUFrK1SfHglBOKgdrcuJfmEuPKxL +# foRg/LzuUjcXvdtO3oozIaVWsTxGx6laY2DkMPnqYaj/oBwla86bNyQT94YTTGWq +# 3mCwt0/H4E3Mn1OXLVIGO3NrzZwTFFN2uqRmcTQ0AKiXU3ar4b8F/ykpQOvTV6x/ +# U7Jz/JaISbEvO3mUarzheUPqVmWq +# SIG # End signature block diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 new file mode 100644 index 000000000000..67107181add7 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 @@ -0,0 +1,375 @@ +# +# Script module for module 'Az.Accounts' that is executed when 'Az.Accounts' is imported in a PowerShell session. +# +# Generated by: Microsoft Corporation +# +# Generated on: 03/31/2022 09:26:49 +# + +$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." + } +} + +function Preload-Assembly { + param ( + [string] + $AssemblyDirectory + ) + if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) + { + try + { + Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + catch {} + } +} + +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 ($PSVersionTable.PSVersion -lt [Version]'7.0.6') + { + Write-Warning "This version of Az.Accounts is only supported on Windows PowerShell 5.1 and PowerShell 7.0.6 or greater, open https://aka.ms/install-powershell to learn how to upgrade. For further information, go to https://aka.ms/azpslifecycle." + } +} + +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") +Preload-Assembly -AssemblyDirectory $preloadPath +$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") +Preload-Assembly -AssemblyDirectory $preloadPath + +$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 +# MIInugYJKoZIhvcNAQcCoIInqzCCJ6cCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBnXoRblwqGgp4a +# USzJaf5Wf+Tu+eUWmfecChJ7ENNasaCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# 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/BvW1taslScxMNelDNMYIZjzCCGYsCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgqwm8h/dw +# FED0y+xGCWSaD8Fc1mZMgPkryh2zfSvZwxIwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQBvXNrKAkE7o84rJI6+XFvnA65dqlWCZBeFhG6YGpde +# Nom1mPdcfauabmxLKg7N5GG1FBWXuYDu1aEyDhiXzPG6ET+/ikXTGfN9J0D9g5Wx +# a2SeSIJ0XfsllBKKwOKl4OhoY3y5Kjjk08Cw75aE5BR8Ux0FWciN8n+nztakOyN9 +# tf7I5nmgbrHvJC5az2N9aR5DejRvjPDcNCnRkepz3nnA+FQNFbXaKqjgJz9oRBgA +# K2SAZDQnnK3B3MAv7qJX6GyeUhen7kwXZC0OV2RjyPRC+f8SiV/OF/ZsaFe4nXps +# RJqg5f5sUjCHFS5g8yK9Zy6D7EZKJJA4yk8YgRpdxOiuoYIXGTCCFxUGCisGAQQB +# gjcDAwExghcFMIIXAQYJKoZIhvcNAQcCoIIW8jCCFu4CAQMxDzANBglghkgBZQME +# AgEFADCCAVkGCyqGSIb3DQEJEAEEoIIBSASCAUQwggFAAgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIAn/Ph2Du7oUABZfi9Z4pWXxedNUse800UpCJBeG +# +id6AgZiF5hUHpsYEzIwMjIwMzMxMTAwMDEyLjU2OFowBIACAfSggdikgdUwgdIx +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1p +# Y3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhh +# bGVzIFRTUyBFU046RkM0MS00QkQ0LUQyMjAxJTAjBgNVBAMTHE1pY3Jvc29mdCBU +# aW1lLVN0YW1wIFNlcnZpY2WgghFoMIIHFDCCBPygAwIBAgITMwAAAY5Z20YAqBCU +# zAABAAABjjANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg +# MjAxMDAeFw0yMTEwMjgxOTI3NDVaFw0yMzAxMjYxOTI3NDVaMIHSMQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg +# SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg +# RVNOOkZDNDEtNEJENC1EMjIwMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +# cCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqiMCq6OM +# zLa5wrtcf7Bf9f1WXW9kpqbOBzgPJvaGLrZG7twgwqTRWf1FkjpJKBOG5QPIRy7a +# 6IFVAy0W+tBaFX4In4DbBf2tGubyY9+hRU+hRewPJH5CYOvpPh77FfGM63+OlwRX +# p5YER6tC0WRKn3mryWpt4CwADuGv0LD2QjnhhgtRVidsiDnn9+aLjMuNapUhstGq +# Cr7JcQZt0ZrPUHW/TqTJymeU1eqgNorEbTed6UQyLaTVAmhXNQXDChfa526nW7RQ +# 7L4tXX9Lc0oguiCSkPlu5drNA6NM8z+UXQOAHxVfIQXmi+Y3SV2hr2dcxby9nlTz +# Yvf4ZDr5Wpcwt7tTdRIJibXHsXWMKrmOziliGDToLx34a/ctZE4NOLnlrKQWN9ZG +# +Ox5zRarK1EhShahM0uQNhb6BJjp3+c0eNzMFJ2qLZqDp2/3Yl5Q+4k+MDHLTipP +# 6VBdxcdVfd4mgrVTx3afO5KNfgMngGGfhSawGraRW28EhrLOspmIxii92E7vjncJ +# 2tcjhLCjBArVpPh3cZG5g3ZVy5iiAaoDaswpNgnMFAK5Un1reK+MFhPi9iMnvUPw +# tTDDJt5YED5DAT3mBUxp5QH3t7RhZwAJNLWLtpTeGF7ub81sSKYv2ardazAe9XLS +# 10tV2oOPrcniGJzlXW7VPvxqQNxe8lCDA20CAwEAAaOCATYwggEyMB0GA1UdDgQW +# BBTsQfkz9gT44N/5G8vNHayep+aV5DAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJl +# pxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAx +# MCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3Rh +# bXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG +# CCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4ICAQA1UK9xzIeTlKhSbLn0bekR5gYh +# 6bB1XQpluCqCA15skZ37UilaFJw8+GklDLzlNhSP2mOiOzVyCq8kkpqnfUc01ZaB +# ezQxg77qevj2iMyg39YJfeiCIhxYOFugwepYrPO8MlB/oue/VhIiDb1eNYTlPSmv +# 3palsgtkrb0oo0F0uWmX4EQVGKRo0UENtZetVIxa0J9DpUdjQWPeEh9cEM+RgE26 +# 5w5WAVb+WNx0iWiF4iTbCmrWaVEOX92dNqBm9bT1U7nGwN5CygpNAgEaYnrTMx1N +# 4AjxObACDN5DdvGlu/O0DfMWVc6qk6iKDFC6WpXQSkMlrlXII/Nhp+0+noU6tfEp +# HKLt7fYm9of5i/QomcCwo/ekiOCjYktp393ovoC1O2uLtbLnMVlE5raBLBNSbINZ +# 6QLxiA41lXnVVLIzDihUL8MU9CMvG4sdbhk2FX8zvrsP5PeBIw1faenMZuz0V3UX +# CtU5Okx5fmioWiiLZSCi1ljaxX+BEwQiinCi+vE59bTYI5FbuR8tDuGLiVu/JSpV +# FXrzWMP2Kn11sCLAGEjqJYUmO1tRY29Kd7HcIj2niSB0PQOCjYlnCnywnDinqS1C +# XvRsisjVlS1Rp4Tmuks+pGxiMGzF58zcb+hoFKyONuL3b+tgxTAz3sF3BVX9uk9M +# 5F+OEoeyLyGfLekNAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUw +# DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv +# cml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +# ggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg +# 4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aO +# RmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41 +# JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5 +# LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL +# 64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9 +# QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj +# 0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqE +# UUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0 +# kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435 +# UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB +# 3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTE +# mr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwG +# A1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNV +# HSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV +# HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo +# 0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29m +# dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j +# cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDAN +# BgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4 +# sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th54 +# 2DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRX +# ud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBew +# VIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0 +# DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+Cljd +# QDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFr +# DZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFh +# bHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7n +# tdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+ +# oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6Fw +# ZvKhggLXMIICQAIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI +# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv +# ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046RkM0MS00QkQ0 +# LUQyMjAxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB +# ATAHBgUrDgMCGgMVAD1iK+pPThHqgpa5xsPmiYruWVuMoIGDMIGApH4wfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDl75AOMCIY +# DzIwMjIwMzMxMTAyNzI2WhgPMjAyMjA0MDExMDI3MjZaMHcwPQYKKwYBBAGEWQoE +# ATEvMC0wCgIFAOXvkA4CAQAwCgIBAAICAYUCAf8wBwIBAAICEiowCgIFAOXw4Y4C +# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK +# MAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQCCQ+gyinUAzBfQG0tdRLTKoWAz +# 1F9XL8HUl1+DL/nO5fnfNT2fIwdNtkcnjXkY7J89nDVJ5orczCc/Jjd8FWrGsZYF +# R7jTDpEnctly2mdeOC54DPn8NfB2rKnTAZSMNZUA5+qwXYtBJ9/L+zBcWbLJGn17 +# Xdsy6ogPG2mqiNeJETGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwAhMzAAABjlnbRgCoEJTMAAEAAAGOMA0GCWCGSAFlAwQCAQUAoIIB +# SjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIBdm +# /Yr/algho7Se4sS1u0RA1CsQ3avLfVkP9cSuIl4vMIH6BgsqhkiG9w0BCRACLzGB +# 6jCB5zCB5DCBvQQgvQWPITvigaUuV5+f/lWs3BXZwJ/l1mf+yelu5nXmxCUwgZgw +# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAY5Z20YAqBCU +# zAABAAABjjAiBCDFYh4a5uyi794y1CHlKx3P8nxZO/8fomUMsnns7kvKmzANBgkq +# hkiG9w0BAQsFAASCAgCphAx90HI/vzWSwneRSNg3gV826YqxCNSVkzMDcu1Rkayq +# 3FhK466ELhIxyI9EL3hLCS/BIQYKH8AiVU85P07pmaLls+bUM2CPt3II0oZYY5T8 +# BN/MyqZ0vUS6QvNX8ZT8A82R5/meSt8qS8+8ppG1XumAYmdqv7vriD8ENBrhIyus +# 3Wjwt0rS2kovNj+6g3xMJBU+LnP+qzNv72aEr2LvKkU8/abYiNXN1FGlJPqHYrF/ +# zumVFsNkJMjJrlgRFlo/EROGu3iUiI37hM7mTm77aYrWoMbKrl/4nKfMpjR4KQqL +# Mhi9Cb1c11cugxCFnoc1IA6kQ+Xg1fYUchz5UmgzDTpwic3FVGGRlTv4Wf9PMjjj +# heZyL7BFkHZCpr5qpwpu/ZvpCSQpsP4Aa07qY5ffgRu/te0ip3gkzL3Ur7zNqf60 +# Dw9If1ECZOcx+GMgIHd0t+48+hsE4RrmvMvWrEBz2B/BJEOfrIQEClhFczLjDd4G +# nhh4y/vSlqbUUupH+/oJRtpla+ZQbAxsg8jTPsiGG7hmvSaNfV7+SgwCjO1HB/On +# DkzS+edyqivrfkuwjFYecbLcl9e9Pr3SPFvelW5kXiQw2KyWFrD0aznq7YT0x/Na +# /XaZDuLepRVe7YnvH4Ky7yk58zG3QYNy5EJ6Pf3ClNsX4BBAJsUrWMxicmpUDg== +# SIG # End signature block diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..32652d6de4d07df3cfb06b166d419796c0c144ae GIT binary patch literal 251816 zcmd44378#4)i>VL-M8;LliXSEoy>&HBrrp9m&q~^hCyK1!oCCnlK^2~fcUq2RSuXy)@``0W2*|%N`F-u5X#}_RJ=A91m;TQD2U`yR&irG~ zSySu3F!0X~PCdW>^iwamz`wZvv@`pI@eBIbT+n~OQLpbm-#_Ebq1M*SP7&*)545bq zTO2F@14dq@wyp->qv!_TN9s)AzuU2H-J>2D0hH58nAo)1FGD%v2gySAa* zPlB6%9;9CJN7-yEVcoQ%#k%Q@wv`ra<7W}_Ki%-Ys%xHY_O`4{X|+PTxc+;V)iO|U zZV6i;S7|iDJ6n4puUm>^zZz`BhSVgV5ZFMY1O+Xyflfr|2&#yUVCYn0#c&_y;85F) z0orC?{Dy);3_&^SUDfxm8Wfrtu*3ZcobUhuNL53nCN#?k7ub$DC_+HZnbHz_61Cbj zP)ND7R6UM?0?Jg6reNlws7psW0f;U%r`nbWE^~=nW>2DUT!WmK{lmy_?>Lfc=9A*1 zP5=sxzPw0_m0pXIYLxx?X8X>?&+&DIIA~FxZjb9&;qKH5%a}ugW?HvO-gN zXB_l)WtMXrVaE29X#sKy5A)F$reOzY!xx%`Ob~f>tn(2cn#(Iy)tf@&&y<{?OtPcl zuFi5aj(8T9mqz>+gGD8!o^n?Jju)y&oMt(qX3Cw4%9OLgFbHbL0J|0`Q+CICJs|(= zD>{)^6_cq{yeT3|wqYXG*}cg!0QGvie=?JZln zsPAOS({v?Y(4CZt+iq#FXAHHKbo>>FSaN3Bs$Uj^zmh1lja3RKx|nse z%RmN$u_wIQ_7-J)K;$o+n*)m6Q(&!uCszk;GYaZPoYf#$Q9O5LuH7~#!);E%PbOFk z&U4lyNtn{$dU!St6gBF)r-0lz(CuwBs5TjM8h*5uje&7#2xbEY*<&MP9fZBIlC1xd z?yMF8!;4jb4E!p*>LC)iu8K(PEiEUP3aHf7D@0-!jrNE#k@iT)_9)30Xhs`3G*DBM zkqb|!uxPP_{u#}lGwC_rHfI4s=VueR;W@;jd}BzomM^<_7`?pBI*2^)g9MM)(3MjqTA+pB$Ppe9*57r1V7}#JRE_JFU$JtUrNHJoSd%0)8rk5^pfT> z5M(_6a)8!$$E*eHaNAuo0Y|Q!M}wUtD$$;BOb8bcQvlT$Hg_ZEg+st3%4Iz(k+QB} zJa6P9kSXu^)AYf1UJ2*~_o3FcC(VaYL>;O2)RqFWVEfAu=3j*$1brAmm3Ak1NGa)+ zASd{WVm8JY5PyWkBax$#w>L4(v?HC4e>FV$wBx@SaC0u7t|aqmmE7^KVVLJv0Y;C0 z<&{?u4nq%&l%M0j1p!h%yRuBita+=gHe?HKV;yi_TvmyeuAY{h;@@OFFskm}MG5Or zAQ6z)Dq~NurFqV}eNbAP_+#FR1Soee%f!Eft(QgY`ESFo6m71#vZNqP3ycHktdYGn zeHf5_R!a^_!~w+o7$FXHPh-qT&(r|%OT`v@jt^@j;|SYAm9SbNC+gI-pbUS|Vxjx9 z!>0r~;WGl=@M(cv;gbR4 zr;^HZ%o;$m9t_Gq0xj)3gt2BJjx%)~(B>WZsn|}*LFBtZjBX|PE^9@L8G}ly#RmGf z4Rob5i3nR2N?+G*E0R63Gq0z#V3yXTqfNeju|4Om6O9*p5dEI28` zYBs1KZtVtyu2p>LT-&^d#501-jX<%0W{#XuF0A<+K8z6_vm>&Lzd!6F2~W=~t@n}y zp|l5!0Jo#dcH6%RRH{*vVed3Ut()ov^FC!pUM&0BTJ{@&4R6K|%l;ODPWXO-Zg{J} zuJ8i_CzZ^=+OX{DGatf__Fqtug?_4DpEgPyJN&RfCxmT48eQRS0w*=tprw!(eOiws zuavL7iPuLZjvanXpcCFM&<*bp*cIL>a8k((YBhP%r#zu-*lVveXghB0<3LmWQViQG zpD`tv_yi$3fBK_2l%VP}oKU=Flv1A^}h79pyS8`ZU?HPk0>!1hth z5`$r4L&O0VZFXU3II5Kv1sFGa72d2rL(LE_MAVzykH_qdIw*&ka#)>Ki`*bpq3tY_PFzbiDQ! z{|n$#$tMl!j}9+tUm|DiLTX>uR3;XZ5xWR+pgb1E2z5Ai?JFb=f)~Nv7FDkM2~xCu zG!oBzm4WBlM~f8I+4j)`RcElAFkb`S?p%(xG4%>KhU6AivHc88Kv^W1mV7XeN$S@s zGLI-~4sQ=;RqyOHUqmvczeY{0%?%fmlM|vyI6oOCXiJ2<5+=gk#On=Iy+H%xP!5*@ z!D>cwLedkGo{$j;g${B!B1bpmsC@%jz!1M^;J~O%Yyo8KMSZYaEY1lqXFM510aht6 zH-man*P&R?d=pszG5lcW0}XkVxe?`Ib=jcQPkAuK}0zZSOpgQij!uXc4f_!0tx zC-JlCn0R!xJ(u|bqST(k&sy6*6JT45ydij#%XV-ELYo@{sn-c}6mFyIzQnQpr-5jU z>RkWhXxO*y139!$WIxt}x`Z*-GoTEAh#&T|&kA(H9|?5B=LB|zKNdKtWTpd^9Q_!5 z2F;QwPmD$y-jncn+dL0E%7JKPtAg$b9jjyUsa&CL?qERDPQ|<^+5H$j%uaJ z6bBG{5rIWau4Nfib-Z7Yrz6pb6F>Xt63y4%jHgtZT<^I#i=bwTT(Jh z%qHuzL|TmEaCdP%h81?kD`<#g{)U3sSiWQ?VfXNv4FpO&qp=DdZUem*=nk*llWAv1 zqTJJ-(0OOl%ew=`6&-Fq8L>ym6sW5|-rUxnm@xsBUI5)@xuiB~owf75I#1)A`0L2$ z4m0z)y8v{#6|u8ZOo+c3 zv|iEw8KYonb>j~Z*!+=F3#)>%@|D%fI;-vE{jjZBN#1D^ zN3gg|NlvdvU%IU%xviuB2||b=_E8?*2=q@L=hu1k&X8LYLk;srzO00Ael0>U^F}r( z;mviz?rk~JfR-;tx(~k=74+qmk94X#c|N2jmp?=J<~+U(wEq_%%R4L0#mB?Qyc*$u zGj@ylE5PWL|H7(E8|5reBo; zeI+Tr@ahyWc%Jr3uwt1#ZiCu9pUCR6-t~_|D6CNrWn_(7q`>NQKtVPR%!&Lxv(Ou| zno4iD(fl2Jf|Ii7Kwl5n+8tsp=L3b6Zskrk9}+~JO~kf0VmtS>*|G!O7X}=SigO0* z8aQsjzc#q}*NgGi!_Z?N+J3zJ#?~zhVvg%mGqQc5tu{te=@FXkAx2Zvf_8ljOuS0X z^?wQ|3z@~Cf%56v5@T}G`2U048&r*q{}23>$26+{Pk6TKVYKB-TaW zg4t-|VB(@+wht+|iH>y4MSEV?~jV|1)vp^W=k#(R7frS6QMh@#JUqn{TK27$emoO2st zcH}|9q2ODHBg~CFAUM|Z*7WE-;z1Q?skAz`5q7vEY!S}*X%UjJBQf$mL7qjAm-j~B zE#6}z8p4j`$T~ru9U%!jQX|uXTnTwP()n~XbjDAjJCo0hegQ!vs47?yUcszm+r_2E zKnxEo#yA|!sFa^Tc*#yjBzf2O1OXi;)uHpbI6NuUqGab&eoDe+SsLrXQe0USS5}KF zXSe4X#YIn}xU!An%A&ZkT3og)CS$ICDTK^t{51G?w3hSvRzE{$o1Jgd;%?RWFQB+v z5x+H#{}yI5*gI!k==f-EnSrW1*jY~K5IYMVHFP4GwOSwcZ&_4}*PP$eGVk6-eK-j9 zVLrz@GQYzB$~`azox(oJa`Z<46Zn_Izft_#7ylSGg1*4A4Lcg>+A^(3tCI9&4M3FN zCWxf$(3Na63*L1Qv!zsA$BI%aDCjKJW+NzP%Q!>Eb{uG+EevA7gPsYy0V%B5OBa&V z5e9YwXeT^BkC>oh&rtooj`L0jZ`Dw$RBK0gtF4rnWIdzaz zT1Qbo1*dfLC@SrDBDfTs1zksK%C+aV6xJ{;jFmH{q3)>tz0(^0vYJ-gdePdkwMEP< z#$H|Igax)SM6+uJ_`)Jl*l8zp{BHWLcVyBy&UWUmL!Nrg9N;4w*Y6<_whkG^?``(X zZT9TY?7=kT-!twb5zZcnEUqu!N3k)A9#-eEA`%euiP%~&e*vS%a_vY@JzqP`@D0${ zNN14VWl?^1hG*TG$a5nyPKz|L+GS>BoDbMuWYkZt+x!!70qb|;SV%M_D`E;TRYqjn zui&@R8*E?!2X<>TY>*h*DHk&3qiyW`fG(TtTeKvR?Av2;d$RA;C7ER3TG=r#yM=N~ zu{scVh@V{dD-@j>0)22X`LTvH@$-r+GM?=(1a`^C98qd@M2&HEkuy&FTQ$x&ZEm&S z8E1>Bc01!Vpw-#VIE`a9<&293Z7BugZLt;5B)<&5R?1^g&(=~8Z-O59SHti#Gaw^J ze=(ec12Tw@-5im}Zt2h?8tL02w{(M%TROGK%@J)JmqYW|%`vySr>Sln*>OTxY_2-M zR?F0rUQR*9FY|mFn;qFtjSs=lR2Dh65n?65psivW&tHR+8<|Q6aA@hk@mJ2VV255d z-xV#S-JJ0COr5}ldZy6p5uh(2Sgqh>1*a%DRRKCMlAx*+oS^`@1}&}GnfnS#p|tW_|fU{XP-U`oLi z3Z@lYso*LFs2;AI7eJn@ov3%L98b=QH~nn~O5PXh4X*~Fhq~tvL-%DUeLrBc2A0fA zVnb1btz7&CwXHhH?#%oy`E{DI60m zy=Du!@{Y-rG{)9+U;l8zDIQa9_0ncHBdSORMhX<&WLF=G%_vV-=%J9u%sLo&m4IY-U~k=Cx{m8#v+Oxrk?RNDuUah^-) zVI`>pt&pP}oiF5AMWoQRto|rnr)n2U&NzcBY3DY=Oc^MQXwW_LB$sgVp^NBvi=ugm zj4nOjVq+@-4DnYRf!x!q>cMp=!r+7WF*r%&O|#wy_Yt?Lj$qToT|o~q;6q=LT_H#;Av%k~wN;0?y= zI5xIm1##!qac2>C6>&G#acqXcCy4t>9mh5qY$opII*tuA=xzsYZ~UlU*jj_Lh?}hA z*mQ#%h`XzfV>=EWBW`mY$3`9eg}B)rF+aBOU1W9Y;$NY#{EQI*w)~ z_%?Ab)p4{jL3r=&$Fim4%NJ;=)MMS$6p0!Wg&>@sO^DPYfgZxWOoXIUAu_160f#@%#)^z(MvFw zayCm2ON#x}SVeObnShKj2`NfR$3q7~;!fBvx6YDn)L+Vf%Kn=CXI}*#4mf)uZaPXKFno_3)Gi!8-`BQ2t#O4P@g&`8wjT z-FZ55f&;SjJMtTyh>dU>65(i{cSZhoW`8lhnC5i0a~mNx?97?WQjZR{vdKyt4rq~U zkH06fjPXJd<8r}pud+~TvbKz=M|SC=wLM-baU4Zrl;red>7n2SWI<$}W)_1~ckE?W zgVDNIvMl|{gOJy-Kk1Zu1+WDLZH`Amwqe}~jz%o=I@XN~;N{uMz2K>4xhMkr)|)EN z0&Z{MAQ^ig?zbq7Q!FRpW|)6jgX2~II~*?oM;S95jXdmvJWQeQ%-Fqhg1Ooj+>K-+ zUnN--$x2fgL^P4y*Gy7S67KRcUvhA|cBv~>xpo;L(&@ln#33zk;Lk3G*F&!WSWs~7 zejbVlZ=}2u z+;IM?;rvs>Y4_9=x)a)2d-+BIdzzoL#{qKG*` z>PdBv)6E(M{N;47#Sd*4OIQqyIDlYT3ql+~+z=zg0mOS^ggAg;oscNv0OGwdLL5Nc z6eGj|#Jh-i)~S>o8AbMWFP<+udBI$$E;tWAeRE{BL(V$X4n#gVe3fYX8TJ!m`9)Ku zWetSwQ*EVN9kUEkDzk&Pl3$ub;MYe(;P)YE%#Ais0!TtHq4>pSEJPWh%rIWv(sdMy z3*%OE4RwaWV8+aW1tsP!#Po>ATnC$?`^pHl%3>dPLrmTwAf$bKJLM|y@(Otc-+){Z zljR(D;&eLk7}XMJBd>HS1&~awZc2lw0m^YOZ{6nILvF-}SxtKH7!_QcJ= zX?KDnJcp6+8bwyKwk&+{{G6*OEV3U?3T=xAL&geZR0YI~d!K+b+2lC%hyB!QB3VtB zvCZ->+D0YRUpWs{yB=sBEc243&eFBESr5te9FG40Ga=i{~l1G`x}P^z`_EG z^9V{(C@q8Z-r&^7C}izO;s$M}(|icg*Dk~6Ajv8?;AA!eQ`)bFfk(zi<vdN({tqt&^+#*_v)a4NNW0yh&K=M z3F6KeA&zB8^&YT+sILD>3WkBiHx-&O)@ArVK%EWQ1^c=+wU5wEYIPy>4q^cBB3w50 zaqzc&jQcX?A@W&b%eI7)X`j@OymYWm$@cOFv^QJMD?xM|&HE(#^v_2kJQ~5+FCr}| z)G#p2OfxB|<0xvEYhr}{y@=wEQ1opvXh)=p8fMfKHQ!iaV^FMyhW9Rt(C~hWUM$rK zv48i>z)#Nzq+(eHs8<}j-KF4D3hq|$X$7cMB)M0?eF{E9a2oEo%&iahd<=Fnp)l0; z`E}@$e|8g%6{gENonen|M zTTDn>yqWQMpG%_XeJ;5@CINDLj4lpE_fr~HyWm!cP@)c7tjk4%mL=*EIi^`wq6zh~ z%tUeOW!VMHzj|4Q0kf`NmSsSVsh4FMPzmZ~*#^wNdZmm}M?MEMYMJ>5M1|EBFVK(7 zM2i>bhi9V2`xv$u5IMf8X7dOq%;jh0mu_~l8AYt*+$%cs?AG%ir7mnL<$uFqB^V6a zT_O2v2VLFW);N-o1{7rJsc)a5HVx|AM;D#c=R`-~ZjD6GMe$|bN8JS#xJh2eIx#9Q zja3<%NvVQK?h7(ogqS)o5s_g0sSNO~>%?!05{rZu&YX2^X<@~=BodGdO^tYwE=w0| zB|h~GI>tw}RC>u03Bpcu3PLJ*TNll0r@|)$8jQh#;}*?d5mD;AZDBAcf6ZlHoxe>1s`PQGl`FRS z19%jNyEGswoYRn6QyC9#r;H;;dudRjGTW6wT{Yzz%v&?FqmuQVY>(_wvEcZ4lZXb1lC*W zp8=3{E6Jn?kZsOTl8X$eHkv(M8(pEb$HlSEnLKhSVGz~bRFnZ_*F=ixFb{h&FGo%sSpyF#b7ZD;q|Gw$tbOb0A!QtAcnoZ!>(e3nR4h2LJc`48jcU|scTRmDL2?zi zP%y7R&=PwrazOh^w7EDKDOl~Bzk@U|roq^G5t?)s4x7x2nfDOfV1J>B6PyX0I=U+2aCW{6oQHF*MNli5dHlY za1rb91hr+(1ILUP>`Dpf?ltG*w>r-Yj@=5C4bB5bC2Ys_6Ry-`iYtu|a7f?6AuPxg z&4uvbrkqub!n;=*Ebqx;jSCfJr#2x`#BMPTyt(oc)Q0;o{sj1pg8LObpx{A(+7@KJ z5eIRx(wM1ym3uD#F0Pj9@%98&P(>p`nRt%eR}y>bT3B(l7E>R=KN=aXF@dz(eeBc| zRGl5nnOE13g!MYU2ToG0ObISf7muBKoYbxz>^76U>R{V+&aoN?dg4CG8&Sn{V|^z? zSNqa}3bO>VxEC=LXCFmpQHJ-x7y?t)tt6>-c-siRAUFi+^E`4rk!`A&iqG7s_}SoN zh@++JCa+{fZ~NJ3wIwdELC#3RFdrSRop;SHaMkAHM_XLFhNIJ7Nwbslf{wl!%G~2Q zWDI4=QmuBRwhpc=*91kmB5W0Va9e4AftwPU?Wre`C7zwDXT8{?$p+5-h2eezKjnnftJ)>VJ5-Qn_<^2S zJln8haQ%1yP>u)09cq$@OA)0(E2u0`N>i?=)e~RvBuYcsts8?Ww~bJL6;^siCy0$x z%7p12XaDMPM9f}YbZ0zQVs1vy;{U9_~vC~-1#z-&39XS}W<+^CkZ zAl{##aQglP`sAk&-*#~6og>%qY4M?r`fKTZhRks*Pw}q!QP~E;JF3w;!zrT!VT1yh zNt;mg^--M1k+N+Vr*EMg&~fx?&jMgL;bBM|&c*3WBna0#C>o*2gq0zhaQc}6eR2Y4 z+M`_}y0jumup_^^WKoa8ITPwOZtGp0DmfQq3AqR$44Z4ZF<`9ddQBJJTGLU_ z91FYU@)x{-%m!`q@iPxUwH*<4nj<|8U{@I&Uk_mCtN|MsZn*fLAs(+}n-0AiIg&0s^`ev={-VJ7; zAbk44XGGfk$GH|+aK;yC+s7?;Ec=RHxmU+DcLr?-XmLk;7}=}Nb!7n)mDhh4gy1&V z5hz6#1*1Sew%Gcu$9o`M{DWPd z*RB66E=C}qW*ChE8x8txev&l4n4!K<4uRMYrkWrnj*ql$(YCC8b1$RBAqLm z!iDj9&5W_rlBrGM2N75Y1`uygi8sARD4X~=SAQyh^6OODJtufsML zA-BR{Es+?kG(G?-E-gl0OjTrQQM~?V>63Dxz2KicC)|vP_Kq9g$G>0eW%lqVf>RP) zaL0yGCVZZ_V))ahpp|2C_dWa>aawGM!*X7)asSu(qZ2rgt#BEB;68}%gVlWq-G{3C zFuD&{_Yrg-i61t8W>(gB#Q_9!DhP1^!E6db96&I`f)ED~%&j2A5!csCP)C1`5NsX& zf}k_}rGghozIA9~Mku$gn&U>Hm^(>iq{&dqPu7IwO(@}_b4TnM>;Uhi8|)C`@db`- zUk4ZV+jmF?qYJQdD?NX;H7VP}+zbO58~=W`zLJo1^ekA3`wQ7aV|uoM=C7{Bqb4q~DqJuiiG)e=~47942EzGa_!zq$*xY z&l00u>0PlSEL=RvKm=>5NdW2E5c|4DvUvHSA)pMcD!E`&Q#kABPT;e*>T65aKF9=y z$OQg1)JiTme8+k=N-xc7!H`-)vDJpVy}3lN7U9}A&$4F(E=1sC^+0ZI7+BG=Ev{2p zE2Yn#MEc-}`{Q?_UG~FfTEpG?(uG``c*jgjphJ(WPK@_kYd?D|pBIl3VlTFhA>`QU%a0KKKo4loqa|Sya)AyUVBBwfc(NTVX zeUy*!q!W+om15@59@d_AAYrv3Q)9@Zqr6=OLH|w|+sFhzO3gEG+iqf66(%7m=aQ*~ zUa||@Mx|6?p~{ewnT5Hw9^1y@!^RvV%F67e$y^tEP?|fX5q6TL@*)lJ z%#J8L9?dT-$%7oT$cy6C$~jkwn$)CIWU~%5*r3JktE@&e$yDTK?q5(yPB2J4pdOZ8 z*@KQ(i++XH4LkB*Y~k4iiGN!+t-TeL9&Ds;Bv?mzN$Lf%0zK;Mr64jgv zdL^Fh`E`TmrQo?A%SM@fj2wSMj`jqpd}JHDox$rMW4As4mr538Xqd%abqJ8D4#N@? zwt2xA$dWP`#0zwcla#?L&eV&j4To)WJ84wr)wyQeq*)75 zmzPtn@>*UjVFMfwrLlc;ytJ*1m7VJG6K--jD)=_S#9Xj(A=3KqM&3BM5MPwHdLRxN z@R))GPW9NF$rlHw=D@MVdl;sy_8t%nOf$p`qB5421P7x?Z1Y}59I9cEn(^O9H{_*# zW}Qd<$VWXBR;pULJS9f>V3a_{ybYP|S>c&$0L`^5EXF$w@eX{gc+R?uP#m20wa&tN z2R(A!EGrD>MGTWoY(*XzM{C*t5np#*P)`s&1wE2rP7>_P%}6mdGhNsE6w*EDe>dI4 zx>{WzXG?(|5vaA@#o8IV5py-PnRh+&WegzS1pTI)!D1c-sY}DYmUkl7qRJ)T%k9WOks^nvXzLk1)-yCLHH|w)JPgL;mmQuPw1|yqC@oSSloqKklg~!#%c54fYBoTK`Xu%Rlu(>FK?*}6 zPSP?YtE%pg?8;O2)Njz&_J8{F-EUpdf9YetdGm^69Yv|f70 zR>E<{DWxS*l4l=ZSW&viw)4|DJFR+nIfISG4d^y8C{kLs%llCG4o97HGT3qcJJi*Rk#9&xI-BfSol8|y zwio_4{H0WJnC`!dyIb6UqdPfgcn5p(k8s+Pf0ADqJGlRXUnz2Mme2{Zks=GlZ%+vM z1UV{N{Pu*zpCEHZi{G9gLoNM~PMMRSm1+9vdBiWol6#%&I3ZEQbhOCRv<(kL8PSP%B4y@wVR>PwGkLH6No>} zN(b2-xf2EPFzg)T;1M@IS}=;oYFIgZ88o)jg!qRb!haGZ!haFC=KWw^yA?m-79jX! zE8}s{NWY`^A#H5#O)!G!1M9P#r(v8)j`FM`PEafd4=nEv^OZ%J1;%~O@uBp9bPN99BC=;sW?2tzX(is`SO zFu=_K>Q47VU~-Bp_2kCja5~u+9VP+K6|HH_!#=;<^2#eoJv?wOpO7xgPjEO!sI}`^ z{I9Sm@J@qc{RCxyB+J6bLCpB#x7h`8q zy_9uOkLsm2=u2F%3ax1+^lt~3JLVLM@8!H^@EdFiz&X*Lgd7;h-|AIrVaoaDFQNF1#xwS_v*ecJl5zY`(Sl zcR+$c5h(>;Ka51NvCy5s8>Tq;RJ#)t1`lU=*f%kEQ^k4-=W3SIxoD1SLl>lW?c*Q} z9mW!QDEHBj$4%H1Bru;qI9{4Bc-O7rVa<5YYX#_*gAPk*cag(f%vSjBSHD2K$t=(f zu^9w>BE*IdAQtMdApu8M*eh^Slmb=@64i!ei|YA0-!v= zftkFBcn{Fo<_Bf#?+JO<{GD|jY;Px`PMCYiA8So`sFC^^ja{|-81OX*^ReDRM;`ie zqZea1lXi|Cpqd-@7Z}KRm|M~xfhtgtB z$``t)rS3r<&MnUZJeG2ePa~HQYnA7J0W7bpaIN0|qHx#4S6_m=ibc^cZ-qln%niIsHcLJ8QI=pQ7G)i`kT9Qu&tS`-%(|@a$seb6^sC?u?cnfK?MqmA2$S$e#}ywU58Qxv z3x-Z}Gadzn$%0-TYd+u`B=7bFIYcX0Xg;_Q24dUs%)^ZT|AYRKIz3d3c+juh8-YE= z4XX^FvagrvO4YmAoqa@&cDSEFCma*#hWiUlg!>BY3ilQ`spR}70n3y=H8;W=YX{b< zCf<8U96KBp=!AO;bi>yP>4dUoX+YhPFHZM%EXx7>jgcY0sZ3P@h!*9`x5wJaSxg$ferMR8< z4a75Frc#$;9kJoN);6z@rBnNcG&j7NKZIHlbqNw32X2)_ZfzdERcKG`TaZ)Mk9I)b zPGsI3|DWK=eavryss9*$n4xb0($E&o*C~kT7{hVvq$VAoAUd?elLR{9i2}RARRSk9 z*o>%d=~LZaXPa+==YV-ke$PSe)C^61n-YA7Dc>2aVtxNE+~#}usd%+b#MiLsn;9th zj|1RPx`-ySjX}26kZtRDEhXeEi6kmJ+2ikm&a+7z&l|rUF3b)4fQ0~O(U+n3Zk0Q=j*FqZSK~|U-!3?);`O$U!Soyig3z{F{gDZ z(y#p%TERo-;nC2CH^JY^HigS47bM8X9ycDqvi%=JEN_eVJ4CK+rkp>)j~(d~YgpE4 zGXEm&6U#z5uFeMv?i>g^=fT>e`HPj-`XV(qO$s(@xk48E-E}#IPNHx0*Cq>n_i> z-RssASFDH4!>J{>)vU;EZu3SqsSf;XbiIQA0;TeJJ~|V&Y1)l598ubBNCxI)??&QG z>{UeKbE+UdqfXr5jSZdIB6XN2D2B6`AP)00FaE!f3%*SBETCGH=m=v->kQ}!yZ+ZB%rXB3LRkxt8+BL{(5rJ*V^1=3ya>Sat_7Zl&K!+* zgNZHjPC&;0J>udNmiY;x_DQs9XM%q`7Csv#&av=00-X^1jPQ4bX9=9tV199h{RMqd zf5G=lVKX>(`rncD4 z%Y}LuNsF>mTl6O1AP7!qBgxE*|bi)e; zc7^8&oK!M?;D)-Pul{Df!*^Y+bEuo9a!0Ln&GV4TlLI}a)pA`?Z&2Iv@|O7pweTf7 zxCC|0ybheFawtw)e*NDg3$=fuP5OU;tARt&!j`xe7BejDNumE{Erc=Oz#6N@d`4yA zRS2A=&Z64b6Rf}HPe5>g8V^gtW&VO64avDqA!S~ms#EC|xV#|sTq3P(Ma2 z?R!CN;lK#4Q*4Tk89d`_OuAk(W_MFe2k*ZpwT^FuM8y@gzd}ZxyVK5{i+tmfM`b_T z{~H3b<$hT1zr&SFP5cjlJ3Pxtcq>v9FT*2KTZI1u?&{O}_~l!;2Fjtyb21iG+nuwj zdsuB?FMS1Usr5#r)6jh7xQ5&R7fa@!V3{copn3fZE{-fP$>N?dT$m@ZKOw@$auH8C zZGpS`I3&Ox*jwuopg=YK`PP!xYx+aAS3o+=+CYm!ljs;)N%JDB49Y*jdoR{`EPr{z z|F^(rya~%j4>8dqzqb53^6TQa#t|Fi>OBX>O$7K5*M(+p@Yivj`49Mb6A5zroN!}Z z^ehZP_-!=U89TfbO@ogTy$76i@W#sdnYyptn&(ZBNZ#y-@3|a|{H}1WTeAYjenrhg z0^wz#i74Ly{oz^UD`*HfJxI#kcyTt?cXCa{{y0cmy$SL#^UzoLNznuSj-P_Nfbw_= zSx}m(ixD8Zoi#YNc!>n8cN$~^(+uI&jLe{t^2!EUPsH1ec_;l#kz}QycooI`4hcjl zOO987q$8mucr)=Z1OptT;1C4|0@RL)*+$8X%=EjG1>S>b%EI`}EO?D9Fl5^--~<4c z@4U*Mk=}41DdXpmIlq-ZZOmp`)5jyBpiIhp16a|o6=sSPF<|ceBPjl1GsD3}vR_ZZ zjDsLmJ0K>*V?xb2xnyQel8u}&B+iMjJdPUWLS>?Ibd<`G%+!e4kqvYfGEv!G+#0I) zz%#OX!UN1$jllJ6taD}j5kx3w6Y_jWM-pqAQ8^`3GTM-GY~u)p4RJO;mVtFpHy>3X z9(Kk;XRRH8ZA{niFJSwW$0bFvSW`rgjAeuBSpBKnr_nIvk=jngl+9~op1ibBI}v4qH7;B3Q~HqKX*AZ#kxd@4yqWR>6df&ZHYt|Z9!3PVvZUBv zQ5q=3_WnREU&HoB?}yK`79OE?k9zBeUE`Ptw|!^!_4cfm=8?{SNc#sA7LM7OF%&Vz zT%Mej!q_yA;aex{t1d?1+8DxvXQ9Bp&d#Y01a$fZXgK3_nj&CjE?zV1hC|k@JozPcV(@tVZx3iHET@FVn&Q&ML0Qd=<|gZ^Go?mX*AX z)09Bxr5vwZ1bLywyP)TAEtE?;J0Z{sCk47;D6lKMT;QaVG20xk&{v=Px5#%P0_vce zk}-a!j1NP85d!IBZK5k2P3)o&Jh>~5Sc!mtq3k_V-3;fvW?#sNfAKk_`%#-PN|ncA z96daAA5e0pDe}i8d_+c$HR^$>j@?hu_IaTvh(;53y4iWQm@R;CyCBui)JB^OMXg0 zaP(y*c9hNl0=L7k^pEe2b(So-Sej3yc#R~39-z{i$FBJ4pz?PFCP}|u4fe6@3WM)s z$rjz@<^(d>S<2(+5zylE`{FYTTz|7$$=BTw!aHyZ--DBa95<$KxXBQ7jpERWNj8@XFJ23 z*t$&WHwJB5zon+mw)88k_!?DIL363Dp-vu1m71He3n{5H*!b@|QL3gAMCfdt5(M~E z6_(QFJEUCihB8XX4OCQ?OmQE8^YhCgM{L`t#dh1_l>(jcDuG?$6#^$U*uc`#rqic3 z{V98btR4R!NJsCF;Co`g`1j)gs3II5{eycqkofljT|$|OT#0ZI<#NIy0yjjBk`i1D zSh{Wswb7Mv6y7Y=-i_T?!OVd&b@6@eRy1)JR}>oBlz7i$ZBt&~DS5KP>jmQBCxLEw zgTO@iZh>9lI|NQDx!F(iPM_xeP<&bo5<0T+>mxEJbX@B@7wJwQJ$>}lk;h-M<*}rX zKfpX zj6A2QLXJVAZWGp3`gZ*W>Lg@r>J%}FlztOc;=4$k4=b$)^!(4@x8!ITJ|oAlk(3-e zZB55iX{8FDgRK_Ilx!BJWOSojY*=!_7TZv52Nd75NP;blnWrUWyo3!OzO`fqK!>`q zD`ZC9*p0yKMw}_(S9I-K*Fo1I@_}2^`fbe=X1=>1JcBQSAqw^k{0bPhZeD|RhnNN{ zsleet_5|6Q<)GivgR8$=g=4?BIb1#ji^b^{ENV-9ygASmj%H^n;Pf0n^xCp31jBXm z{Ek*X)~{fT;ojfs|3vIQ-Ri#G(w=`-NYaj4C`Y~Bw?Kd=0D)@`xs2it-zj)z`+B>TFm|)^v2Ofn>~9r zdoZAFkiCu}ID{-L{JqpSDP_7hJZtcpf}`INZK{7VM?n$GUnJ%}pvF46FtVE%_+to= zF$n9#Y>hKGsQq&+?7mDF*Lci+a6}B5??`cy&z`9fr~|u?YB~FsguByUw{O#0XJnjy zJM_qL`X>ZB;hh5A@Z$m#;T;0I!jB1@RC0sU(zNaL)yM0u^)y7j61*L`XTlj=e+89! z<(#FhaB{S^vWUGkbpLn5vh((QaA=9Q^z~vLLU1kI?2Be0S9y7!1mBOrPcG^2kL*@c zsU+WA&16%&oP|-AUJB?>idQ`NR%>k;!Uob@u*k^32jnN912ubrb7l8r!&5Ca&A;c0 z+xG86f+?}ndMw0WiWzrjDT%KTYIeGpX6$}+Kh{uNd1qWL1--#u1n)pSN%zn2gD+{w zTT|k}HW1(23;5iJ4sr0+XtOt@!4PGs9h?XyMAt^yX%)>VgLLzl&Uo{fV}fDm_$ulc z&(3LvdF2`x;-R^NkzpJJF#91+6NdL!k{r8p%)AltF}B0lUB?u-&&)yHj<$|P`(Hu$ zV(jTe{=O>~yTuH?AIR}oG%|hCtE^V%`tPBl@}Ny0KDNQ}U_E*&9bq271;bdL{Eet4}!BqwH{2zjZqjTyBHoYOw~&t2_j|3V}Yxi z+RDAs2JG-N0-f+afo}MKz(jbzz^?Effs;yZ4%D_nU%jn3@}0FegSWv-6sGTcd>DH7 z{3GG1FZE<`#1{fpR_J!9T*BeEjrokJ*@Q|~y=XfjN%I{9dFCyMiY^y>VCkvFmLT*F-83P&g<@?dA?cqqq*7iVWqdn*u zm1~;H=xd^TJN$+~C;YlVH+)PW-ii^}6@FFVq>}SXzqDuc)yqhEV;PA3>vG5&eoo@p z;pYW9;THtD;THua!bb&mg^viFRC2zPOy2aF*Mp6=!;?|oSX|GWV}a_okazz$xH9D( z@!cOd_$jvI0WqwgBBa;EMq*OVkVVJII93_RR=>NsJJIOwgduhu-+;jS-qLJq=`uds zWLb~d=EJBD=(~^LoMM6N1dpHu66+2{8R}OhPA#KEvNV_<0_ED$qj;VfS`QC`9QD%K zpB^_nfFKbbNPvL_=Hcvj*p`l~7nGJE{bPAa)MSoKO@Q<-tDa&1$YJuh*b@TUUZ@Mi+M!k-A7)L?_%8kP}#T1I=%vds!; z(D7H|cTm?oz}I>^c>9Jl0JbhR_WVTTaCo8T(A?9!s&5Kkp_ zm=MS8v>Q~0BmQ@SZ6%e`4~?Twbj&IUQOTvv34rEA{FF3p>eJylF>4*?OlV+f6jQDSE%lJF zPCkzUa$@;v%!_<|(MUsAxR&2TtWzvsOQyW&i`9xyC_f8J-+8vi5^t~w82rfdo~ ztC>ff65;qWVZrW4cjx~Cvru1;{sZbL)}zhIAm(!PU&KGhoFe|7;AQ${Av%+&jN0+X z))I&lY!TXS2cK$_=OwUk?QR_C4OXDEHV(}7G+uZZgeuu{*FO%W;A3xvilm5G-BGML zh}9Ft>YWh_GP7Lz0QZ&pQa8cW!c`bg*b`(gc9`}6-*f;isuRZ9hf^7aEUU|@$c-Z8 zzFJOZbDlX3=;xwyvo@v!g+86faXwjnZ9dq-r_#6Pge+pbNnYLaV_teM?loj`{L{B( z74s?fH~27b?|6;8ov|&Ox;%}%+44>T+QzHt$nnnvqh=kI8u^O(9BRw`zmQtC%}ua! zTqJ@mlw0mcM(`*?3^B$~4bc@b7{-pFFm@8iGQ)bWg^Ie(k(ic}rKg+lc5kkJ;;E~= zujiiy3A=|!yuKy=*>IMJlKwe@N+p3>1834d7r#@lM_L9-%i!$h)UojRZv=X?HyBM2 zbp5WwT6v!3d>Yy0Oll>L$=n0?TImg@$zn%{XiXp0zOS^XX)-FkjAefABlzcmW8}=i zDcfE8Ap_Z%G}pr{fR?*1a-1bRp3$$d8#|o#_I5Z+C7y_s&!X#IIQnPndX^jB)(I+T zN4h{;wKoU&wro4DY@?5CNgIqyu|XrBD&@X^un43uhv!2!e0LPj+R&d+e;QZqT@fsecE_EWBDaoN2#N$uCkn+AO-uUQ{jI%Q9WTN zlCnqcAU&Kxu76t|=Q4DfG|Qgl%yRwnq%2%dAL_dhKI+!v*(K`+>NY;`7|@pM49vr$ zeqQY(7+7Z85|zE%68=R1o(FQAH>lW{!ZYeGBAg! zuIMw^E5c!}D1-I{YoV!$26P_)*44TZGUytbCr>j6$D>ZjT3B!mT~DA&==%pe|A5g~ z#$dOpeiP#3P?An2cl3gr8WD)s+YszgbZxDS^NQaFgTZKfqv!><#xW8?tif$=<%~Ah zpFlE&#W=prIKlm~Sc3@C;wVSO!H%9Kq3OL4vjkQO<~vL>Dw*#zmyBD%$3unrZ)4`J zN*bZJ#OT53(FcBH7@agWS<9o?U*%F`hu4N1oU+&mP+w5&Nb)nxT!IWJ5N^yZ2eEQT zO!PLH>gVvuLcB!^Zw21x>dTDLH}dYccK@B$7aKb^2d&j_60+`atoGify7M=w0d|N@ zNvS*kBd{y{tH4POHiv7?pigTC+K|mN{MJou2StApI^>*oAK9o7Q->WU9^VgUS246b z8d6r~rGr!8@k0>nZaeN9e-<>dR@vBpco^F)?91;4|M!tU9~Q%InH}7K=)L|F6T`z- zyV-Kr2$jo|5ZTh!w-|KFdmeb}%aZu^le`9iDY+foDO@mu%T$-?H@9_Hq&i{;_eRg(bi=5oc!I>><17yd-_*z;AJE3zk>=|)hhR@lBE77L# z6nxdg^C2Jiwo&Y&+ zh8*T?Ooj_V@+M_GsK^U z6GuKLD6SmpMs}Bh1{Zi7cj`(hXS@?|6&zc+jx>i5b7&LBF^6qKbi}qqhZ8kay9Q}aGuzrn zv^3uP>KQ^6ehY)KrsW2A)Vom;?R@f-SjE+ce0Vsd#0J` zbAU7NLeXfNp7j~%;uh#)>J)^G-U?qMO7MH~dK*=PeYa}?D}z(m_|@gw*-}EsBQLeL zBWPfnA=6}2UbX2bGm^zNpT7e- zYtGLbn4fop`M@+orpdCryUJ>A0KO?}%tmpBz~(3l`ySvWq6lRBH^SeI_sBTcd3!AD zsbE~atV!8({*9nGXWT643JUsOa2}Xu$TaztO_QKoNd}8p_HUwOq@3c9?Y|Fxw%e42 z8IbjU>hN>~j6MWklW2QFG#p0hj!%bhx}>K=28xYKUmH730sNYD+c{I@l@xh{h|G{_ zCRILWQ=OYs(QJdE_@jD)Cl#-K-x2-KaX~u*&`|2p67`2N(qZ{lJutpIU`< zD!D1PrA|31gEcDlCjoMa8lRs!8zI$Grr4a~Q(4D=qq!CFnVk;+qUv|e%+4xi=Yt3u zm}bZ{xs-c6^C6%N`l_;l$uIjG;gv8+#>WN?D=x=`7hz2E0jAG}+i5<65FT)tIt$*> zLlHQ|CaeXek+;8by@ z0#Bp@??QS5(+rs=-|}cvE@+W4^JBdfJ$PbZ;&uzuhhah4{}l7UxFQ%vcanpSML7!_ zLDq*Lzr2b%bq2*o1GJi|Q+4Mi2~qg0Pg>q6e0C=F!tb6b`$?4j(;_=VrpbH+L#Jk) zyfN_AF3jDYT@dyti>O-8*|ajQ6sHzZ|2SBM$B9koESoyh4s3<9SL;ZkdwT>! zKP|+$^&SnC5eI&n`n*^jhV>UqQ@9bIoHHZ5hmWQ7%s}-v@N*`liYuhKDt=dp(Z_4HWE+<})PP z+*F-Nvq`5dT34Q=Nlrd`H6(5`~}%3HmHBGQUddN?UaPvurInN#`*b)G{gQv#|u5e9&NslW!(W?LAlGJfUp9)!u|8AK%7nz zh~r5DyTY=-NhLF|b6f$UFWL)=dEVK?bBV;U!(o9q)glnbS_F25iv><9nOUVg=~JH6 z!vTz56dZ&Ql$xhek_68sGYKhI!{ z5PIX_!_s~N3*nCcO$PsX>);BO6S5Ni7{ilruDib}dJYdvb}^-V5^sbgq#mz_OrO|p zUKcg;T505!*eI{NHs^I|`2ZX}#Fx8K=D`1sdOISC{qL&Z zDTrW8?2GP!n6>W#iz6py6X3cBftl$+Gq@aej?H0h1ScXm8No1uQ-mBNa<2MG=2w=+ z_?5uVf-kP{L=N*g2w!@W%|q}wK7S2bak&Ch{ji|; zE2wBp-U)dyXT_Tcm!Y1qzrdBsM?r+}J8eU;R31%V(^LM+(wqqXY7f5wUUyS>l00`? zpJ0YAhT};%G8&nI}%#TjiZ%UifwlmD^hGj`?7BQu)+*aQ^rt zVqq^}>pV@oN}f)S^Avm*hHh@$w@U`rVS}IrqX$hn@^yQW15aSHTq9qP3KRKylj<-} zA#QbAz`NaJZ`Pv z(K&2nx9Bn~j)%{(l<6iA*FfYNxI2kJeH|?R5G}-?pdA;-dp#)J{f#6 z_KeXr;XSNH!+{6DVymtdeh@;H9*5Ze<-FqN+T6#!>@%;W0)3B9!+Qvo<&DOi6q zeQo6(@@@W4=$wUz*=A|cOLYHvU=b)w&(C7%xeZItZBd>xNaJN;`cuZuwqwO}D@D$Y z6*(L4M9r2oYtJEy|1-phwfUoMw3!8G7oAY4_H%O1ZHM!Mm~$S_OXY=gBscTv|DuUM z?-L$^VG~v zHLDGE0q%WTN^5kz-?naQ+2xBZ5&lmt3+LOB`x1MX55(?c?2EsqZuW0~01pgSaF!mQ z6GBqhxH%v4?eQ$|aQ_Mk=TbdG>D1hzBSsz)WWivQF2ftxnC4+HUfjyxy_J8?41etr zlt8A8OaA|k&&+u3Ej=^%w71Mmr}itVwWW6kksxdAqBD5Ncpv1i_G^%>r5$m&pT)QJ zn0NCcGYVt<8^CP&1Z4fUa50mA2ITNejE#Plx4I|1)K=uhK+1`n^YLvNx!#?@Gir$a z5@T~O==-dnc~O}8E0EP&Q1p2F51WgTHSsudl#^++!RYFApFeM%bGeo^WyUEG_Jrtv zz8}eTU<%nd82=8%KTMOX1pejlZxsLb#Xp9PKn~bgn#dBLl*ghkJ~r#E<2o@AEv8Kn z$#qW&LP}P;hEj3e&xtB1=qyR*a;h--v=KFif!iSRNR@RYQ!uSm8i3@U7PgW5gy#PH z$UWXRZR9>xs1a1rb@di78Ck#t*_r#5%jf(*!r7$s{{@wUspx1U3MB`TbK8o%9(7X2gEK|ua8_zqlR&t~S0BW7 zw3Z9`Rv*VIFj`WYe47kIft56WiZol1X6rU-mgffVMhDUSM4!GKBxc9)UqV4-lY4vt zk|}5DPqvmugOV~E^#5E}UDD@VMG#4u)OE~ipQV$lo;V8UdVqwxtkc4D|9z+x}iDgVC(rv1MPgtY=A1mM*OPbkG!=c95+;fdCimP6V`Picch zih!Pm_M@XNPeS`CXg~Tyi|vczZC}h{(oZ8Y3{)QGCqrk}#xu@RdXag00r8v6lP%Sv z6zq)-SkJ!cCQf3T-WN)l%W~UfErK$UeYh92%o|fT&xGs*Tv7T$e2+nfrg)9(X|}AO zcei+C9F6HP=fsH>U6aGaPu6W5vCZhNJ80Xf%Q~hr#vrsEZq6Z}070dvP71)%m1@D0~- zN^iIr$PE7zs2+StZWzj}VXZH-wjNe6|3YBhs}7#*VjO&tm7%5=imPOUJL=K79Ka-S z%OGA&kSXXjcF+Gu+nc~wU0i+KbN@HFNiK^7vaksRBwUk#0*dT}MN~i$5d>5ekVUpD z3E*;bF>a`c0@khW3$C?lwXG{^U9hdzTCLWqMC;OOZMD=sK3x>w@9)h2E&;1P@8^B< z$(@-qbLPxBXZH1KliT4Eku5XK)Uv3JBJ+K7 zId4ega#^0fHq>m!zRoKyQ&MbQ;dl zW%L(eMw_RWm6g!~{3^OKS`|SVtYkQYTzN5r_@Hk^)K)2O4rQ^Wh@312ULSN$-_(k? zGsN2>&)Z`0c4Nq!*`%yNWreN4E9FcP6Op_UZZrPt`GDIkt%$D|@g<%()0f)x%^`8K z5xfn=ZFnWY+XASBo2ORDCAffSQVaY_J|I6OxRQ~*HMDOH?b~E)4$_e_^h1@QC|fU? zwQid(%%S)TomFmOv&wBmz}H^LcU2erP)qE+ zOI2PUwf#K3?D{zEx|Atc^y8Vu?eHv_-|O8|rn;a@O=pTl!{;hY z_0n3`b=#EB1A?BNSXYgzOk5gNb_;-eeI8RCz7hF~peN^MDBkS#n=-Q^=Idu=uy-p~^2123V$Ns0=vhvKohVdh0#syynxJQ8G!c{kfX3dGk!C9)>cgTs+vlE8oo?iHw|M$V z)%paF)o^XY9>{Ea5Mu}G9PhRN%r^{A$w~<^$>Tc|)xD?`ycZI0!+^F8Heg$<{vY~5 z&I{Q=P8f^Rrt$Dhz;M@nW@d~Nb@lL~KZXyY6Qqw*|>?oA0*NtKc#IDAV#IY;3Sw~$s z>=*CbtdO8_xGK}t>$qi{kG3U;rjQT~p4F~uT>2!s?3}stBwnd-#_7$?&x%0~=fxX_ zNQQD;Yv^3Gmt4`v7Chg{%7(_06$HncpCJy1a-)f{uv4+lNK_JHYn%^~-p@#Hov`w* zJS94Vk?exeuC{AQvMY{G1%|}TqMO17k{Vx^u<2P#OT46xcQ0%JVpxHF*rLCu8+c@% z;Axp$*|uRNtOvzb@T|@36!U}`z(BKqrwn8%lyXVErChHO)oy3F6W+YiBSAH6IdjxS z?PNDsJvKAeDR$T0>fMOu?!DLF$6@f*9j@t{_QtBwd&50&@ZNAwSE0Mb=%WzrE8Rzf{FKUhN?w#LIm zp>stKipsPGx17x5X&^i*63gh8STW?T9&{7^@YDKX0z1tM8F9Wc%0n7FETaPraX!BF z#ekaFu=hx1=#>~jlaTbH1vwRvOB{!YCr3a^2O>Ovb?t#cN>FkT{_J>_7V4BlJm~pF z$kq<3KpvCEI$u5aku0wtZ|TfeNIH2hUSjq^mh)Lj&l5jomTt%v%>+xoEcp(ULl+u2 zEWtO>gNlqkN@F@~5oh5qXp-i+tXZ5uJ+(VVm=YD(DHb%z-c`;%YqzW}p>`m?!~ey1 zJzCm!DhWzUOjQ&TuaqH*+lJNQgXGZK@lYJ3UYSijo*sr*F7-I6uTbiYF33U!c8Uj0 zvUimqNVA+vJ+8+BC=SXU_6AGpDoab&?4y>uf3&pZjKm21lQa>aDCep}H3cohGFfU| z?kay7p<4Fo#3Na|d>JuC=*pu#)UFHTZ!?6wDInu!~}rK!5uRoBcFKVL=4t88hIMPhNCK@3|37C z(S%TPkm7Uh--qeNc|9SZheqPdl^>2CtqK_{MTzN<8M=!KO!cMs8z~cro%W*% zYbk5(U98*f@tU!$59v>3wJo~s%1?6wl~oFiG!jkB6sFhzbi%ir{%@cKME}=fh5CP= zcvxMMU~Ph7^LPYk;KxRnq@opcbSQApOhE)4$^FrvJ*K0kTu8(rk%zc-v@Qf9uXXh9rD;mPAkgu{rc3xH(S7BCsmdy$yWwMbKbBN)yBIjMK%jqaM zKQAiLbKll^A?-vH#~G^C1@@I4%UATLw-Q8N+=4}397ZN=#hE-FT$T8W#9XK#_xz^gMimrkeriLKBUWbXJg(Z@ZvL)~@n5GsRy~ATl4{OwsfIu zq1YKMBf^V>xnh^|4vU?whp5z@dY5m zh9Gg07%EIJlod@cl2wpijHTrRfwD8Ou(S@gL})xJFHl3Vr8pRhEt3^ZFPAr1^&|w= z3V~X;+8<5^TX~UJTm!GlAzV=!ytfU8VzJ5rK})G?Y0o!)L3oRXP*#m!59{fIDpw?F z0`6&-C%jwZx;OCqd6q6CntMsOt-jb(IiRT`zJs+ghD63kP+X?F(hN(wl_XDrI!Ejo zV6DOx^!(CLYL^8m!N~!H>^>4}FvKrBVj@Th&Krw0D!9@@E8{JPFf8+_dORC`J@18M zkKz>D|~F&xqprQ=su_ zf#jyR%sd3gn^*!j9)(6~px=#2NEP-k(5FA8m04C?$?RkIFI@TZ6~I#aazAF*ed>P^ z|ChvP0bINDd+SbO8O!1R@_8h4$2{Win3uIB#BQJO7SgtiPY5@xW3s`Tv<|J*>8&{( zacEc8sequ3`9VdA1{myAP}ZrCpqul8jwhD*=sb8jE<1goelLX=hr+7E6F~{dr%mg+ zveLr-MU89FiZ;C2G+B!iECxsM{yNvt>eLZOvXJvsQ1oTp#-GvQN{@d1eybb&JL}q9 z*T&O8IfGTa)3LQD@Ab@{&~AE`7~igE?VTJ!Ixqa+^qj9UJ}RrU+QvBKW&$*l=`0>) zIX%NTRhcNzn8*E!w1QL$Ulx~nv7`xCkV<1Fe}`^fQW>&ienD!TJnv?zO-kAEq3esOC%i2M$|CQ%-A8!WTc3C<@F+vQRpzauy;U&OqIdLGZ*SFk>u6avFPKI?>o2hm z(d>qF<9Xa%Z;t4y_&Kfp0{IzUac5SD3@@7X(|v01SAd^-kwV$@3$@f`RBPaXhP9+^ z*B@%SCcZ}kXZ(L-{W8!;%vc&9L25h~J$V>cVNw{4(CpJQ&C@cD>nd1B5ar}5*!6tOp24%f6-#I6Lu8uo973F5!z+tz zO!MMthTwLOf^iRaG|d1TyCBW*8M{1vl-W%lEwPq5#ytu_{>}qkfhEZBT78JA57m@N z4+ZJCtip5~EWKn7cNUN`|CGG_rx^zjB4{bh!e55Zm-6^z)M|VlYj!lvnAG@WXlZ=T zGFyXNzyw>V;!}|4lMavYbIEaVchVK?6B9I`rO zd}_Qg;KYum8K+_wq#0^rm!}!XVmEoT#A%*4LA&$T?(2AyXX11swfdUnXn3=b&G3fW zGCE^9AYFP|CgI3lW36+&@oWFk@o3$bOnQjoL;P=8}%zbQ-+8bAp>S1P2%p&`E zWRR-DtvmPO>{hdjX+Y{{DDjzoM&#&cIKRbgt~;js8O8v$Ez@`c8<>7ZR^D_Fn*^=#FlxQ?@xeu4DkAlJe5wi9n2wD4L zA?r-$7u7g<8yk~XP7_!O?x`}o(PZihNZ4fRN*ogRD(tX36(yz_`^xfPk7SzBBr&J+ z@;1IqGi2>5|1i^?DhfodhDdfEWn?TqGmL8p@jYqIyEt(zzW#ip>Tun%0$LT3ycacJmZtRE33EbVafD%5Dw|h77@qTBvhQCw?VS}2QkrG8olj! z66!%p0jN$^-twVhL1#GhYJ2>57Vgwo!uU&`LRI18Oybo#ppz5DB%P%iqekq4G^1hc!Zc$|?D8~YZR{qGt|7PDF+t%wHR_|gBFO7jo(>{G#-fvW zGn-AB+HY;njb?#2;X~4aY1V7T62NBXU&YcvOz|K5kh><4r`Y2~v`e z_gIU`*LiRrq?AY<-}{#Bsq(GbXwUk_n~6}?_#jl$3iBAoN$C73L6t_gQ{j$Y3@Oq2vSnr=zLy6 zf%AC%TG7ig0=Jx+Ovq-&VRgjV|?Vqe&<)37_4n={;oe*J*R!Qbw z%C$9beNUF#0SwpZL5tKvSt>@Jhp=)zXwKXBpqc*jx*ufwm0^(2>p!FJ4f6CY)4^zh z(7`yYHZi*icsBa^AAY|g@5h4|r0TQW-3~kYl4We&T`->bUrGi?+%DAIfVFex2C1>& z4ttO2wCNV_r?lXxt0G~2h?d^fhiHhA*N2D;h8PoM`LFyk#DJ079keNMpa4c0vhw;6 z#e$Cd5T6+Pl6ctz!QYsq_P+jml5Ea@mn8XuOeo@m)=5d)kO9s`(*T+HoY#xlgXF!o zK(>B}(awe3$GU-)s!e3KUR93`;|2%Gn;t*P)8j*gY1g45@dMAH>~lRpB8CGQtE97;?4NSyMy6B9sTETcRi{74NaRmC_v zZy8TMJ2+%`ruuRUAQvl09SR@Ndjai#eaNpAGJnrFx@P|M0o+56@fiK?sU$d)=l54* zPKEw$)7?bUuR9<_R!#)DNBJ9n3{17p3K>gERGpBE@u4pBkH_*NB!6NAet>f74hd35 zyGP^m^sfvRC8=qp$jl5C(^i`zj=_S)1N4fV+>VJEhb_$k9fjtnOD~qCbyG@XUKc#@^wbehj4N_$qPM^ z@}#++%E|Y!qv(v~$XAF@Y1j`Ix(rUl8YX0){jZDZUUR%A)-WaKcYYgc~21wbYBmhqq1TX(`-$)r@NpB|~dA zGNDY`uh(CYU}npjg&nBsH3HP7>S~hr%9pyucZd(j`lhFdaAEogSv+2hm3#sQ(ud=c z>dfa!vBbWt0Y3xCzIw0fthjtm!$QlFPZ3O=G*1GjDo}OZ9Ml)1@wAXqN+Ykn>=}}& zFT02M`a-qXEx=ccwcbB04$mm5Cb5&)rbXwBOjaCNB(GPoxFX1X6uZDaZ&T3tED<>) z(8xLng%|)?JvNy$4SG6i9n&#_Je16_plJFiFjzh!UixU98cPLk9QiZY>Z*cmU+Q3O zG_~PJH|EOoeuCv+<61bc`5EodTTUA_|B#D-+$p!gB9q z(+UrYDzSO|2ypCI#lT^E$9N4=Gb9w7`SJ8@G0!fQ0&44d6;dG_3}EcV0D^6Kt%|>i zWuI=hWtH@F#i_I?mGK>SlR$<-7~i&@9`K^D^<-(Jjv-dvsT4gqtTD;w;0w>es5}nZ z@dUBwAo{f&bPhRa>90L8lgzVk$^X>rFHGL=eC?D%V|G5E0Iv1d6TRpsb?HxgU^!Bn zESp9&S?2Q<|2>QfAhqOefeGArAiA-&xAD;aLpF~%IMO*tskB(R8Qg{gT$U=IQmn9# z-qS*-W)hxOR^gr{w=`#;SNbP{_%S=JynEN^&LNPhc05*_SmlsXG<_WI#PhWK>AAR= zHxAi5NXgl7H0?qdzFsYES^7l7s5_A}C-gC{$iCX{u~{t=r6l9DSn}tTbB?BC+V0CQ zacIo{Ja&J->>)-N^E1(9oOLXwcBRiJl^xfq5T+EsuwT}$^1o+>{fY&h7ofvuyVIO6 zq8XHFtyEo89+3PMNEOK!G3~U;ujSBa?m|(OwUvxYdjP@=N7dnOzq!ggh zp6p%a4D0sWa*?#7aMDZ5%UAWpd_WxB6tgCPEedi{>6B`{DXesog63;Ve>{ z(3(YB-Lz@sXj_UDgF2J6Om@>^Or1%(km}HK8qc8t>p+t1yji3oF)P(95?xm8S8AMl zPAih1AkAAXy*QdlK{WbhCXOdxTI`En*RKr?=i}X}h_2poPqKpS=dZo{^h?)^vZOL1 zE?bombnQMceJ>{neJ8Qd_ad6Ql{kwMJJ3esMs%HCC71&YSUhBgnP`!wY_0q2*KGa4 zAyKCBYLL~m0#l6_mA|%y?_tQ7mP=NiniPeW%TKnIpnZ6xEvm8OLq?JF7X)~Une#Qa zxVlGZc+4iVR&n(mS$&9`@QlrX#sbFL&5ihE$0`-kGOnuRn;IMZ9G(5qbapz(=q!bW z&Ss;WCY<)&Vee$y9glBYBk*bxFzX*)^OqAl#~)e2UC}GMUdL2$|2qLgpij>_eA9>TKZT z7bN}-Q+MB&i2!n*Bde(yQ#(8x)r(wAB0)+4h$<^jRK?0JzgS{g>?q28R5N5jzM+%b zfEgzX-~Jn$8PymQmU=7IT=e(VFJ~t^2cA#Y{g) zUukwUeU;e->F=9en7-Ow57+JIY5Rw&3Wb*_InM zYXh5_M55`9c#}sL%hEzIwm(y`2wJQMNGJE8y);vN>15Tzl*%+K007Z6GjZ&KGz%cu zg=yA0u%W}uS&qUqQ-2)g>HExX@>CL+cnt{(KjCEgpmpy*=cUOMn8;z8%xM9lY37vJ z1!?BO*oA3kl-Q)nY!^p)nprh=laH)VsVFl9Ws)MTn5}bvOj-qr-joYI7F5FZy&gCz zQ0*x_(unDgPiPbkE^c4Yzo4*fZO0=2={u%s#T7-mC(8^qR@^?;z9>_ zC&zB`xcZum=nBfvEzo|jV|l$4CGiabbX90~g(;wtzD+^f;)7Wtv1zIL;S>4Q#Og|l zcvZh2qm!DVXkoHij=c)?*h;*vQ>?B-Q55J6Aa3a7hvfnalQjwmDb;2u?VFFi8>NBy zVfmEy%cI1|%kwlqjvl?_1UO3rXVZq7Stmo>@QRWXW4{_~R|mX`bzU0E5RJ2Tv$;<0fgXo+s} zO%3FrR$& zJ7_X<4;Hod#)Ra1N}wCaok}{E_~Bsa$#^Gb7hG&)sDt`8GW53vq^6*>IDNIHuo<&s zagex_aRxughEmtoqlBFEX+ zvZHz1H?Z?J<{96Gomw(KFX6vykkPACo82>*cWRi-#FGcW^scTZf;Klz@xC`U=Yd3L zCKv{&$4*~mQpxlmOy#Ah1bv5QpguoS7IrtYy}H^U2l)A8v7N=@T5;W8K1b=)_a@tF zBNdF$gOt=bd-=MzQ0ekx)87XwEv!2%H;=m}zq`N@y9}sh#FGmTZ|dBVIJS{2nkR zmr#LyeY~`tAJwv0_1z-)L7mQ6=tqsQiJ@X5{<21QpdL>K{mt6V>p-O4ya9_bbLW6EbtCSe=~hhp zEO&Y-!IacI5h9qe$uNC`6Kx=oh< z<~38U@2LU$0|Esp1u*N9wX6JJnS~m~g3i0pX}jY(5UHe|(Ns3^(!!$rk9#v8+XI7U z`al}o%;&>1!sgK^YK6fxxFbkPf-5SR{&V4e7HpD~nR>h=%!1#8!4{k9?Gak6r$iVV zj%|W{{?vytFwlD}HpZq#TOMcp-wOR{SX%k-3jH_WPw_B1pJVp|s}ei&*B-~d_#MQr z7jBgy=GoUHMO06nXne1-@LP!Nw6btJL6n8Nu_z1kSsUy^7uWb8JwH6}SBCp+XqLEgB)*@u*bvKF^u0^PQ&r4YCJIkj( z6hR;0JN0|yVTd*#Z#VQN#12xz_Jc0?vPYIwfM^ zu)v(Q-LLM$e~~(Q5cOf`0`N%VA@MR$b&h=9!0$%8#5T#32SOqw ztHg_wpJDp2&|5>5#7Js%U3c$epS@1rg|~;xl6RZ?|6T5>cm9UlyO{#TEg5O||D1by zx#T&`%QxMWjrDC?mPjzA8a`6Dd3*W&Zeyk_ZTV~^DYNZuYfgKFhV5y0_~cJ@;UWqg zZFzoOxC8#P?PhI9W5ZZhB*m=aQ7*n+ybX$Ny>x+=! z9D-;3bLjILa+X0|%%Hse6iMn>>lTYa>OoBZoo|0o! ziyE2;tSxM~0L$XEjL<@>XLDD@DTtfD-fyZgz3(blm{(6`nZKuo7GIANt`KpCjqwCU z*2W5zI41E67hhE^tX>?2pBm%7z+oTp02;{Fi$SUvkKmK77ZanakE1i`+drtTN!Wsi z`VpSlaGzP-cnoCf#uHfDn<@`>yZ4ZOiVzCb>GUwVi5{dL$D=6siEZBMz=Ov)Fe|)u z2_G;P)^{CdhzEulPs{S(0B4xN`QX|e-7Q50FwBsZH_TA1%rK*P*d=I$r$0o(vr^pn zAtfZAk&l4CZb4obRl`EAmejc6rG;li%d=C+cW=dxUs+TDLz*Vpd4=5gDYQa9^ffhx z)s&Yi&%kaU8xL9Z7eg`&^_Fg#>DwpE5arLX++vO99-(@jOv8d~xk=z2g1+YRtHz!A zQ+uj0>Uw^?aEIk)8{9|r5`1QC!3QJUKdekVOAwm-IhM-Aestc?;kI4I^z*oQVyl}9 z75Oc2tANB`A(egskkWD}rA1{d@C7CPD@F1|uB4)AnE46lb$j9X6o>W|J&p(jDY@+f z?$BE0BL*o2`69(bZB*7@0Bfit-h$LGF~93jM*?c7^K04ui}nn4IFM4iqrhg?3Q%V$ zJ1>hBFK?)mm+;?dGg^8xdNGCM@mh+PqzQ+yExjoeZ1wu6QeM&vBjL)Ee?u29oYkEMJ?kEYlC`I5 zDt5&Nt34e;zuC80AwGq~L3mVa)!^jt;QmV%W?I*-m}km+ioEW*^EBF#q-bjh)8tSq zd=!pw@7F87B>fwa@`^7B5?4#{7a8XYU<}bDJMV6WDZa$+X4H26y0l4^5+Rn7YUF~H z_^McHYrvs?q)zW|(_N;3!r7r?NW6i$N50{emv6lCu?GfT`55Gk)s394OYzFX*dt$P z94zNNXI`JeZ>&ZdW3pv3#f9qu(yw-zEgS0)@U2em)uos|o0ROXa#ccv5(<`4GY#{| zt!>)a^!B?%2z#Wl6g~Z^Wo3Q9>0OuJ*qOPE{C~qw`_J;v{I#b@vKQz+!ng16s0CI`rH+;4yIK%5vp6q z=ZXhL7zkE9jX-(&u8)$Q8+|E~JucPI zZxm+_$73W|7AL(s#tJ466EymdKq=M5XKq^Mf+`nxX*J~kop6zAoVV0-fJm3Z!fLuky=x_-{4lP zpeX&GtfqG`J4S*8%S^Q`Q-hRzd8hmNRQ|OI^-tVMy2{uv^_?MnAFvgZ;WTNqtlGmE z_N>D5B9t`lf_VDh5TL!77Nq`#OQUA_B)=l8B1w=xkQb3dv-$u>_$rmy(5(JHvi&#X znbqH@f=6EuFAC7CUiPl?uQKbriU%dWg2RElTE;q-AP?&TmKL_<;W-<-$X8<*3#Gwe zfLmtV7V9MkJELSASjxWpNBN<))FG+>E=EPXQR;wL* zHpdY`;wD5&3t+36cYMh(okPDF8UL;PNYuj|r=+98C`dCC&<1~@EH=qwW*4T5WTynh zV|?tLa?h_LzdrobL>|nKkFrlyZ#G-K*+hod8INVVdraxO8^-CoV_cN=(3y*~CLs2|*D!egvdD61agrB{IFdC9&( z&R7X$WHm0VHCQ<=!03<0`@hP2^M$-u&tVmnj^boH=oBa0W0oW?B6+>OUsu8xc#?bJ zS53+tu!o=V6_afH>JH}&!&lYWGx23)tlRGtdmhgPuF7rrfpt%;p+{X4y88kd8?HmK zjVcH6m|ho&af!54^kW6dj@X5D!wOBBHnrW0OqRAh`0YjE%@RaOn&OJQ6mPY}bMJe5 zRcVCA%gFJx^ya-{N!~=xyoFlh5=Uj;(J8dI(7u%JgTy3COj^0?^J)0+EW52hrmQ@s zR0_+IJm4MIF&-Y<0B)Q>w7x!_xD^B|@yYS6shO-nDozZ&D1J00xG2F}(D6E!<}A@B zh3Sdqc(OA_wJ$|n>9mq&hdtZYRu|i0PpZA*&^Xy)&!`>tT>Uacy>`NH61;4mhs}JE zz@j9(c-lF!8Xi?qZ^NM(-ll+P-~L6UE%M2(;D&un;BIq+UiW&tD@a*w4Ygu*)Fkt) z28lzEJ#jIaTeFTz&-3>2w1o3iefdwAj5QmAlsGXzug`{GWY~#j(pUXkrpm{kry=!w z7P~{-4=g!36KB!Uyc2ulo$P^uD0!m3ouTbTwFJT#n_-utX1(=RueC;iI?%v2ZsJDLWk~* z^buj*Z|#cAovdw;m!1*Vj5C(p2dI&=6v`jr_53!xjfGTK&TJ((xf1t)65>FMUWQD` zPBPevCuo^#Ywl_I7*z$U6v>e7d4Ld&zA|o)()!P-aoEdZ_r+TYupJ)0b(NvpTM@32 z-gxZZkM8xvtlInTQpwz)NuZ58gOt1)ljzH1b3P`X=H!gtOykf@T-X8=9J8Uw%BzvB ze7&r_7vDqU5KKJH@fe|VGRDvaCOAt2y1W`0pvP-QOU<5%-eO{9&?L|gdi79+fWxU4 z9CSL$hmk;HwaPY|-SIsz|q=CNm}us2lR!!X2ND^DI;HuiE7>yzJQK@ii6xT@@W zrnbQ9A4S*GXcB%|f_W5Q>el9lVk9OKH`0`Jyga zd21Sq0uilgFy^zjRg8*7=Op2u6<|}aoOfn{J2MB{kb7H2iRR70qK*{{4aAUjAVJ8w zFE2ab%9FL}0N})C66#;L1HI_Q;~{u4W^QD+#zGI3{*ky~XtNNS@UC)h zYIbYs!Qi?}kdg#-rM73|fr{*=g1wPuOn5;(6C7zWW!qGLkI;xS~yBg5AiF(w`&U&t2+|cm;Xnm;YNKowQ^JsFKsJuV{ zp-EN5`>kVa2*wC6FK{}6c@Yyw3;EJ;Uf>@YpMe)5&6MRY79Jxc)i>?EutP=}R4AhL zBoFo8_<#|yo?lke{m;UmhsEDVVfM0}QQ;aJ-dqq!&%tKHg#IUdr}9`l?5)hY+GB#0 zAbX{f*`iP>wE3)RaY=c_8m7T-3x3a$xT{6u?ChBV_Q{G$I(w2#s|5mms z%*!(t7W683zNC4g`nR%k7j930Tv#tolwi7V%P29tlb}%U+kQDfufWFbBJDi9xJauu zKH%0`&?$F!R{a-)K6q91s%Pr&#Y*O`Y6i4&IUaerD;(;BOyi!al$^V#YE=33 zWQD!Zt8y-t**m?sS^JBpr6#+lx>(6DPAJgZt**%EvdF46xudaIlUvN&GOVW*yjF(9Y=^wt^m<0OKRaWNJ$ zvMaC%S5c~+$+!e};$CKe-&kHn0{Li0kZ&QT25;`4IPQQ5j{xgkur673Nx?7GAcvjhXmH`3+l0o(<5}`(B++2 zp=zURkW6B&JsU|{j31d3*-L1HyzL)KTM2Tv!9DZ6l6WcYAHhR3aS9Nm)VFDj>gnWO zg$v_zj40=qPav^M@%`JIG`tr7Ymx6KHAAkWU$fWKOoYrrOU8aTNUcGcsZ*p;?_6ch z)j5xboU;*U;#sC13~Q_n#;xxmP`tQak@Nwg5Ki{c_>*vN_VEL#%&_fB&S|>4oRgY1+yIacripI@eHgoYbz~CHK4cj zI>XQ6;N2*1NsN0n?qR=%;e0X*8}>TV=6i~tx^>)2#kPE}NUkBWy&SMs4sBGNiX+^p zkZ!b5(Jb3P8puY)J(Rv3=SM|a0otgLy{o*8d6JE@6%R_Mi6lqS#W?%&%9>iXSH1LE z9uoIL&jNkWuGr&fs_}FpC)kgvt@hqcik`TSptd{MNTX}69MHIj<~**~q-kI8XZwRx ziS1IVT?k5vF>Nh3$)UrSX&m8^8838k`Ya-bLURk~M-uu{(&Y**0lEbwdslhqRzer+ zUeoSEdxeLrNsQ!~Ahq;FGSfn{pi-TQ5y)knv*bZaSsk@=vCacl#JY^oJi5f*U>vS< zG`ovicM7{|If-eZYdf{;*e-Fln9|*xb8sN1E{J$J+v;iXjGSD^e?W3_P8!k*VE6bVDL7blb2@*}1zUfjNyp--LH2&xKHxK%Iu*(C z_FN0>y^MC&zMex6?dy6h#s((^sq=6RI}18onXv%^O$n{x1(?a{bX@+#=z5h{J>hV^ z96IT90gkX;5>1`-xlp!$$dQviKUUGb1;SjYCO{{BWbZ2HP^&MxiU*|)B3V$|N6v)U4hil~xI>GJFz}wZ2uh6)s7=c3tQu>^5<9CK3HICfIq%}c z#rUcp%8Z$Je4HI)oeP6(Gk64znSVzfv^PC&AP7Bf#6pjytXm9$gT_tZrnlh9K;U?q z!;5hSDK;uF+sNG|sWD`)awQoCKLdLwuVmj!~k+C$8weL*b5k9xVFs*G5of>l_{=o3k zlxyVt*_$TGmzYB?Wnbgso81$^)V4^h8+pObt=?1Qd2)^F!Erem{`XMY)g-Br?9QT2_g z>Eyo{zYYAD%4h#nKRLPNuI1MYcUV6!LTllfAO@?j<@f2$fyZST4|8aYH-@--QSKQ3 zO+(7`GhpbQfoIK*rnj42o_^ZwCLf&mDP@H#*Mj`J=zKu;S+X*ke3q)C-Lfqx-H*Wv z-5*GUrB%jYmlJ`qeI*uUdv1}vLBKUgU@mN$d9|6>VCG+=Q$cBFx zS--DfNq#F%drhG6MG{Zn4oItV0+;)6>Dj5kUB$(UX zVexLk)ZC5|Uc2LF*x_SOcrnh9l{dXptZ;f)%Pp?2Px~3t_8cYYwc~9v&wGnUt@Owa zZ;jX{h_O;;q6PNk0Q1Bv(4xPVxJPJF;!0C-xK>)_e)Mu?t+dF!_vh?;G!lw;;ytd` zcm`$ldnZAmet&>7Prvs7qTj__D#T@7B6sp|a`6kZm+OUcnkzJ!V*L2hHejh>c*f5R*=)l(fK=#5#`XRB9 zdH}PoQ_%EdgXHI5(J0*UtRjT|!s6oYi`$I_xEcw zN*?_`EX%(ig8m;>qr-t(`J#MTyUKZH&yPqH1tQl%gjHbL8wizV9)|&JF!U|H4E3{{8&6(dfX-=)TF=_y5*Q{p=WX53=2zvN%>zCPTkrBQ zpRqSBaoWDfN!W||p-~43{%)C}FhRFXe0O=wy?uzxYY&zAt@-hDCg%f^^n zKB4#Km>W4kX+3}FS2JVorqg7upCI#}XM8oYqZ?CrcgL7(oK;P_oeSlEd%gT8AN=m} zj_&>3obAOy5^RFXC^NJINUmxqz5OcpP2v)@0fv3xSIwt=er^tQZ;9x~Z zS3FccA0O4Fp`-iR0#S~}6uK4q6>k2-0H31@Me_#C=iLgFNV-GcUH*!>pK}e%BAZZgw6j$Pfs`z!Q(D9|4egLt2_ySkMJD_<%wxzTN@oB%&H?#~4(MF(41I*&5YCy<_N+&(8L#V;^x+^2)9 zrwnn2t(!G}h&yiKtobo_)#7)T4|k7lxiB@vU53vP_j5BJ7$Wzt*3MWv#2tN(+$95L z9zAKs+Tre%3xz)doYC&XaVwIe-GJFElEb+bFlh5=*QL#hU9b5ml~Q;vB!%pGg>sNG)T>gY=(-2tYb^O1D8+rQz$RC`x`(pNKwyPD}2rfS^ZV$$SK=1R}U znJlNHnThVbg~9TP?*7fe^7gK$mE?^Ux*D^+8@QmpbfQ}^Sh@fA^QGqtP0!0M?;0%i zQSHRTwt}x_PI6=Be9$<_orM{56=*x=ip^YarF4Orr=qKvd;MV1{PXeVHuI6=MCZ6; ztEW5{%J>GQ1)Wo_2DoD;w3#x%4L(%nnKNYWwMgcq1C+~eqm6OyqoHa&BEv+d@Ccb> z=E=O-B)W87NBH@(alU$i{2$t+)CV3e_g-kD+Wo9i?!B#U-cDO_1kc-v=DX(8*UHlG zE|O;cwoaHgpt1I@*Lt~c1pk)Et;Z{mJ~>XU#1-=udeUVz8mG!XRO>Gj#pXjcVYFEId1AP zPcNV2dLH}q@*(c;l&-n%(ba=C&viFV8$?UnuKiatDW6s{pX%_{%=vD1Om%97m5@mz zMF04cWWHzSnl<7-L9CdYzQ4>vjuM{-nfYt9+TM+yDh=PVOxmc}G~|* z<@-W&pLmqq)6Lz88FT4niu>`B>M0fOwhECcZ$~%0QT6ejc{eYwcK0?)iZ@nwX&B-PPgM7E#*)MuUEr9pk+!?vVg{XT=onhAeeHJe_TeiG=n^j3n@ zQ+IIVXx(SyrW*$8I`KI$ql^m#^$#K1N}#_U?8Ax-Dhb2XZFg{Igiwh=TMR1DJK%&l zg9=?cgN{B#R4A1O-DWgnj4ICJS6tX}>_WEuJHlND_uzCv#q|1uZZN2Xv$BGg85DPY zY_W6PnvP>XAhmw3g!EpR+;Qwq);as32V_{%acpm1{T*!aZahvj%N?y1m|qPMW~Cc$ zn4cFZtg9Pu&_1z_W7+NJjbNqs#X5!U?GE#)uNKtH%`vVIIaW|_R(H+<^Frb+chzo{ zK@pRv+MQugyAV3tptHc72$vg;W(t~1fHoWS(S@S9FDpusULD-QCv+UUg_~p7TfB3| zDQtkd3)wrk1t$v{=$*JE)PLY^aW_Vq2|IX^!fp?t z^^Jn=aJL#SZ=LU<+YLJX96>*D4_gW)rz(ZJ-7gHfV4$EMx>t;s_9qGRr|ttweaJ#V zkGn4o^NP{J{Ee&PuvG`w!NPv;1_si^#cLJzh8r4)&&v-KpKtQj9btAMY$0F&03xhk z(IfT0kG$um2GZHFriu65bffbAg`)DFn;A&H0Vdy{-0=n_&J>kDxw!_t7=|sTig$3+ zH$GCoJn|>E)S$Zz`p7Le%sH)MoGC6XbLFLEnJ?dw{l*n9;*mZC#SBcNVBPT^w3NAWT(2fsB&{1`rHY0Dq+sO+^DcQk#jBHO`8Or9J$ouU1?z} zB9~jd(Z@b?#7=7FjRqaNzo1o-TMhHJ#_^{vH0`)B0L2=iCMMl7kDcNcBa^A`5$WMOWMyk*ez!-aWqq{X0i7H?DJ-Kgrr z8)pb}OXOq1oO@tQ-MkOnWs%Pe^NRBn@7fT$)Z$$q`Im+LVz$C=j06SZY>tK994RRf z*Xg<9dTXR(flBhF@d9SOw?}#!)a#^t=<=9{dRbUxx`(O?B+>o{e7vkKxINOlKza1} z!jG377=1i4yr3DH2NO0d`gCNB#k=+5eJ^otdt{tJCol2PAq7$5Z90e*P{Ix?h(hxp zYy~WI&qXF1bYol1pMM)U#-MR@pF7=~k=X`4Y0$foV-1>3m%G#bDRR8ge70V1)&Dhe zLNBP)20yMq&S1kftOyq@8~PM|f0Ig$;I&XF%7 zrxu(IpA(XzvMbVLkS6bfHXCMyW0b2Rg~1l1GVvV8TeGp?27|6Ls3h2G(5(iw4em5( z_SwR07u*BHnf%duAEABlKtUVQD?DAilmSJnI=E{(D!nej!xoS7MOe4sF%L21*y;KN zj~lcOeeUF*;giPMRCK-24Gx~Nu=^Os?4*5u&Y<5LmC?a347%`q$BWGqgXay}KGxB1 zO$pvM=$CLu{R{qL(DAgC3*EHf6NC0P?H(2U&7ek0VNURGOMS;EVJ-;1u&~9(=c3>% zgZf!+E)ODwIr$ocXrao)|5BcIx>JKMmKK~kwHs~tD{5+^Hq-l2z z`>RZR5sWiwCvIj%CDO7cS2J~}NgtV8tZ!Z=!5#;|v% z>l!`5pofYCb&D=A=!l_$x<^ko=sm;i5nX1`;|BGLt}y5VQs3!%N0SDvH7ff=*BCV2 zpz5e@-*s^7$(4mJ5k1S~yU9vjZS-7&*gl8K!0395r}^ma-eAzLO}j@$?=a{DD`&H!cNz32%jvn%yYrxvqW4(oxqhBfUmCs7 zxV~V#QdklFv0=VrHQ-F1m7cf&saCUoPtjreRFcQfXh zeQw9>c4lOFm3w>1*+o@u(CQMNkDI+uC(MzU)0$Td7oBs=JR5VMd$0QAf-2`ZKe<;o zFgKWa&c6HL_Wq~Veo9*ZQ`=Zr<^I%5vCi$7E{eFl_U+dz;$BY-A;ll98-e*7LaW?O zrjySS_4uUggK?+waD3=h`$>~Nm3cix^X~4_Uc0)fr2fDGa^H;(Bd#|Zh`4dR z#o@s{;l4Wu9+)wGA)Nda895Lv#VFTUJ z+C{?$y0$%5VOE>jZg08IH}j$Ha^GO?gqeq$Ijgt)*O<9!fZTWXm-#?nnH$XgjF}G_ z{wrqgG;?gVa8_FAJi|ZGC@iti-&l$#8qOIOdZW3oF!wrh|JiW*n)}6lMD0T}4>vk- z!(3_ZI&(i^n0J}ahooEO93#lm;qEp*bC2Cg>nOn@g#LOSo38z!dCa7IryD6Lc znUn!05y>m@_qAaAfE#i967~JWt+;Ebo9uAzcNcDPlBti^%y@wO{c4lUhV>6fpF>1# z`m~3@jP=@v*`xnc_)nPf94Wqk{*9QiUXo&5-8TH+9w767%xu_4?!|p%zS2YH+*+AO zL1$X?dnc>DzlvGq=4^Ta%I9v7MAN7J2KVswau2#dskfs{PH+Cu@XtC-wY7luWLooQ z7t8#knZGdex96D;X2jjl-82S%#N9IbHE3QwLhg}gzKQ$G0~Fep8bP`XWZpgJ9sG9= zQ#*6-d2bHy?TE|%G`jm$M|Wlm@(v#kBUp*)Y!h+9Qy#9d2h#4R8+;`*Ea zLFV6N{=JV>tm{pp$JeU;X}415jMK!`p(lxl)7O^8JGqhRAz*%TdShX!>oE7r;ic|4 z^jzf{4hlw8xxs7OjTlI2?>Hjj7A6(<#DjRt(Ji{9U$5!Sr%w}|PwKjl7~;OywF=DF zMpcjKZ8fFJ%^kHr6#m^+)Rs{as@!HXRborsyQdB(^qR5CwU_#i88N;2nfWRe*OP0fQV(kwG4Sl_g6@ETIQ`GBR}rZumgth9au zwJP_+13!YR=8NQ>YvzcR3avio3^cQQ9|wn&c^_KkCiOX!)ZglNF6Lvk7lQv*Q)A(@ z=BLfP=mO<+!K{x9O5Iz>d|W_}Oq<|k9O$O6xP(|mORmH`oOY?yy?sQ#UIX2n(MMBC z4>NPt7`gv!?yKsLCN~cmci#=1KiR)% zvkn=Ug)%-ggM@ExqeU zPHR4m)_Yp>%cEsBn!7vw>9pownNOv;8_n#yMgH^6Tw~@|%qq9A=3uCKQ#2`!HB&?S zgWabqXXD$}3 z->x?Qz<#~hp;~obz@GCgjZr5SpF!KQsLj%D^s{Z%R?lj89X?kUJcqe5{yF#=YL`ND z+p4W2eOz{jW~fGASHbCjRxQ|10R>kc%$vg|=L z+Cb;|HvC(2wqU*;`yWTqCp4&_+?H^INX_iLCh*;wm` zz0?9c+xvBR*ssHmkrnRM;9c@1lT)AJ{sTP3+`f~Sc8j@7Xn&-Qj`;X|zp@}dzy1mS zwpG$bK7Ix>7?q8L8#wMnh?5?bkq z`^orVeMxkam93PrVQTQj&d-}9g0##yru9IfA4;ci73(h$R z^L`uc`0?AXju;6iQ-_SjeDmyygx+F((-uY@>>ID03{9E2QuO@Dh+AEudNJbEBMBXX z8F3GtGZFU#m?~W}aOZ2@^SNzR6}}%N_)ce`kzuFd||3=Y#deLx)*H0>{TLj zYnv@#9qR*+jLL8q8GeI=Wm|@YqqpVvN@$HXK@>$#K_@L1R z?QW(`8`OSwSOz5T!^qeeJf0`lcHG-my@)COV4n2$u$UV_FCTMvQY#~FOvy4R{JxDw zSyvXkk{4IU@ z#z;Qr{{+97@sd*f5_kMS)#yRTsuVp`@;0jq;#OrTzf_3lOp1z?pW+oIYV)hxO5Q{} zYrVrV`8l%Jw^z+=-ID(|4Fsd9YjJ6>yloNgvUa7IsdmbjT#oEcO%gpgGQTCyZ-pvG z$K1u5M<8!6+^;d>;^e}CGM|~(7oWpVR4P{%@Im?;*kHf)(f2RwPm0izd^Shr zs&(s>k3&xv;v61Vxn0!e3e&dwh#ePI_h;V9tcMd=i?27G+=3on4K738!O_czn@Kl+ zJhPZs8qZ|f=Lcq~oZMsPwpG9F8F6ovD0ER9_5PxuQGsIl_PjNI6r3D>E=5VPZPgvf z?&Zx$nqO{nl5Sh|LomM$=l(pL{F<9j=fON2<9Y2~ct&*-5PI@?y=o7L5Y=P1Rs zC0)U6Jx1Cc^PzLp4u2h{+RW|reVH(3-1n zi{(q{L1C@*oFCbX#csF0^ZCnkl4n*HN|NR&S?GZnxt@g-c1adeyenEk*SCUhYX#kt zg{pW6VVj4Fiza=aND!mI? z<@j4)d-UU>0}8ggi)g>8?FUwSlW zho&2Jg*#`(>M9<+Ta`t{WFvQ<_cYNxC zF&*8$9x8sZerr(Xh8T2K@muvBT$!8T!z{gWH$9A}^eWuqys%1lia}Qt7jND?rn5UE zgvx-ry7LYCW8{*CtHyM9*Z6qul7@lBd%L?0+75I_(8K*Egrtd{t|f$|v!3oRVZ47G zz981qE$Jf}zUO{5?)ovk+;awPamh0tBr6N|QP`Hw7cZOGt+(rJ(013c^VTuFU400> zJO2JLech=B`Es3bXL_jknh{%rggZZk{=G=hrYvT;OSnf3+HSd7<6a3dzfAotTI1df zq14pJ$JDs@v+=eA)%O)=K3<)B%^>OQr7?Bxoe(Mm8sPq7kaYI?nElEkYs4tASE=;K2hIfZsz7W2v2VE2GQ+lv);pnKFqE={}x z-7{It2x0GJp^wHK=)TNCcgBXW<}S{Z`rpPJLd=2%-AP<(!CnFN9`J=46%oGK7XhWumK0Sn96b`CpDX z)C~=xBTo5#@g(42GsX@LSoa-Jp$k(yC85!ECEajkUX-((4S3H%-_TyL9&vox-p^Cy2T(AC$x;>IE zYwkVI?Vp8e3KzI@J>(?&BKJ}j8eYG|^%M$4b?AO0Wa-UO_w>U;d& z`%Ik6AjqJoIFPgA0HUIzGRr(WlZxUzD>-%0ZBb|_>n z+=)W71!iZ^&1HWGqBcK|8C_79Z*O}!E_pEV>BW9tIefvDJ=opU>6 z0Sgj36KB|kEJV`uAthZFvKUF79{V*UhowmB_t>968G_g!tM$-DtWfGY%-^Ft&NfT( z?_LVDT@a+xjXlm@v{8t$gdMa|$L4wLsEu4hm$EZ9@(x|jz9Py8E02V(X202VokQ0$ z*RGg%EYEaf9SbHZVmoGa4=rR1h^knId%6KXYNEd?7fk0y8;uDqwWG%er90H=iUzfH zt)n>&OBMWmH~v+*tZL{6S8n@743?>L!a|E#g{08DXdv-drN0&iYcAH%pU$)FomdOh zoangIYZHAf#jG7szWLjP#L!Kwt0c?BbRh9}LT@}~c<5#uZJM#k?I{~Mjqx{2Y_w<2 z=+LbUZe7D)F{_N33KT{p+Wa;)l4t{as_~-GZEOLNXp!65S|Tx`Y-ihvu=RMc?d%v4 z*2A*UXW5@ZXV!vJ0g*? zoh)AHSlh0qSdsqpPu(F3$i1Wb88=w<^RW$bO zwGxeyd)aRk68po6(7mizAgaYE{1OY3ggty8{1!v#a1`FhW)g`q+sEb;6|=Jo&W7$| znF37YW=Dzg&8tI8m6PnGq?_;v;z@Q^ zhV%+P6mp7Pl+-NvD9{&@H1|^F9rleR4|g|sx89GEF7_`~PP5-6eb?WOon{(5wTEL} zyZ$dboMFyH1*QQl>kRXhX~h!&7_MLcR!32|Lej_CqRS2V+NseF`6y z6I8QcT-YTxBMeE{yv*i3K&y$aS*{N%vs`9dB;6VmWL#lyNHP~p3%klrOPVob9?%6z z+m`K7uClKr{RdjsRd!ntPxTHmuCj*V6gxXPEXeqRwIR9&y1cL&Hb_$8Xbw+RjgfSE z*7~ro*i1>EuDxQp#vYfnB(o&!Yqn0($jQ6IYT0&48F5!E->|(lS|9c;tB_O`t2o|Z zr-{T2`#rl#RK)Tk4_Urv*CVLR=o;ZBn;U5@vx=~rY`GxQA65{z*?LLK2lq2?v&}@J zr`~2)BwJC&+93vUO%LMlG2wWMM^qdfD~_~WTZ4nuaa(DtEk`7aR z6C_m;O_y|@XpW>w>1cD2q!-D`Qc1-W-)c$Tl(HuzEhZ~lB;BEs*e)rDY`!3=jI8XH z^epKPN_w4i6_VDH?zp5VCrsHpl7^G+tfYQ)-UUemi9VO)N9nvKX%gwalN3U_JCYtJ z-EWf0DF$VLsQ1wn(jw_5m5Un@_FFghBg?aq7kuY&J5dp9+vk(8pV=LuGx19QF1s(O zAzZcIWm+`GP{ckBxEywuwIvd>)32;65zaYZh5gC~6X6x+jj-R?WSj2Cu=^}Wo`);W z-`P${*vkK42W3dJ@Yk?E*qf3(ffzqSB<661tMQnYd~@SM*tg+MM7idkg}xSrdlD6! zmPJ~)%9{`snO=(=fm#x6U@IPrYNGKjL}JF%crX#pNA<%sewe7h3@Pvq*ZG^05(}CE zU6JH9rFFQ$uSxo8eMg|1f@mFS@X!R2PF%&BJcdZDVl6zCNc49{K3o!(gcBbl31?;} zKAA}5-HFd7DmJ|{{llI3Vo6zpkd{eWFcfJGk*IekzFq2O=kyGB<~xb7j{1eW@CqCG zoAvkyL?UIb+$|CFP{lB1ZoDNC?kq%xyYWtvJb~PKZy6F(?a7mgM5;ac5+X5oc=CuO zv{}U79hemE$+r^~vw-j+;a+@~jTVJB5N`qevUp`UN*#<9$`|^b%B$R{~dxSqH&%=J(itm>6Z8TCjk*L2` z{H7%Af33Jz8m3J2;?}$q5w?k!!dvs9L|9{o!rSmUg3OuAkA}D7izVfTKB>0jTO_Ru z?Ht;UKPzb>%&6`89!a=5Y|jr8<(qgt)}Fs1bw6cQg?HdplAOn$0eW9jYp~LhpO+LA z=4&3GH()meh1Di^$_tRuXpOyIR-rNEpzCq5$48j`Le6ZtLD ziBUL_-y_1YAQeL5FKuv58xTG`B8j`$XiP*hZ)l^b5ox@+jpj!T(hzwgg4|#5jc+^JoGGB}sX``)4*_KQjVG9|}my#8c zqtSc~kr)R@^DRU;g1sCunmqn?b%4PB)uMhG@nS!PSf~Cp@XZJ z4gdwnfi$p4V!p1em{$bE+6 zdAa7^B%~ms0y73;SjeLVv0oOtdM)IeC8;THo;mzYNfTh-JBOdK(Kiu``E>kUE3}Yd z5PL4qvC(@xk4Ha>Ix!SHJ$Ghxq-hj z21CM{!M|H%G1s!_Jabe`sj`W8AcFCwUwGsu9wZ58!%aL&lKY5W+Z#gdAKCBb=XBz;CUONerr0WE72A2k-!BFbzNpFo6dcPN~fD`{Hh zsL0K{M25uKcMJbW61L>0_*X=@h8`dJ6u&LWESwfu!qssYL$T=z^bBt(>CoV5k=uDk zNk61di+q;%m-GVYN_n!Ri=ca+ParB_?+4C{+{w2~dOa{VayLIsRK(t#yE1YQ|6bCz zxe1;2abrBjUc}BVPUv)icM(MMSUHa-61}*b|Az=iH!pUOpC!Up5afB7Ul%&|U6;bh z*SO0Bv{}IN;NIZtyuBbZGyut867J2s&U+DIxonDjox|${;1B7U$O;}K$t?U&JK8lD|Gm*!5Hj${Kw|I^utcSPw5lL7N$N2|DVw^b6LnmT<8_e~M4@Dm5(L`1J zKxhR}p``O8k4IMW3P}fhz7u(Z-;@*=RuTC&Z!ih1h`w@?HzN`;oa7ydu*^D#p5%cd zr1?=8>@V>gNvB}f=oBxJbUx`^(=Z;f+m?WG#PVRfh&2@Kut2T{X__1HM60#Oe+W&hn=vrK}$3c9xe)n$`Ww$Pam$q=nsUfeuRA zy`n>dkN6QuZ>$*S_7Tm#DwS@D%Q;C^d_~Wjk)PNozvtaZd}}SfPq>QD@2N$7N(B8@ zALZ#1b;(AThcu14!mB6-F^6B}?}_-JB-%w?6=~2J%>yi!(Tp0Bmzb)xfVIRxy z{Jx~~p-ZFw#RVo@=92<*KA65QCuI~7 z>fVlmx5L@#-~$Y^Fk~^?)_tN&JtbMv^WB?RT$OyH4Xk0pR!2AGNlC4M>MJi0iGJj+ z92LZHP3x|-nvFIK7_MnOl`KiPrfs0?l7wqoZ{@HgT+=pEswCl>wuy3160T`|6qb!P zi&#YLyHP%hi=-#L&qp;?e29wKSHYhFrQ7I>sAfu;jlPX)p|pAotzgKXqgpCgZKMup zs~nwU)wvJwQ;yEHQp*7WO3geg^%&4g>A3)i7qRVeaRWk?sghQ89XudXSte;2&;Vtt zq^H6k9T1}&B`Rj!bH)xxP(DP096c9)J}OE1T!#E2ZSsI5#d#s>aK$-eK(gXzqqzf8 zlp#d9pwr>a9o{)2WMddH)0L-)#1&?`vO^M%t?9~6A~DttRLaG9&?c4*7zpnZ6jpAH zUN>Nf(#}c)#~8zu&5Kbd&Ks_j6BV=41sewpSN1(lI<|cE(*rV;3zBxl?ihf-RmZ<7 zJ)rmV14bwvmLTC?(4GOK6n`SodPXVzZ1ghdCJ(E`z@+cERKG0aKN9Nvq<17%)>AA?cLIuLB-arV{0{F6oZZ^ObEx)m(#=OlO{rFr5W9!gQ{(5vFsU z@<=|VnqxYjPy!`kI*XM;qFmt+A=RIdY7_>sFJ68&5qu!R7g4m<3yQqLsF1OPV^o{S%xuG z^5#7&BKImLQ7+hA5&e>qMYNQKdp#9>KzT*d3(KF6E>~_7VOsV@A5ts@XhmGHS19d> z^38sWk40A~U5P|1s8IR|9h~ zy{R0Lbj5Ra^iky`5vKa%=wphil3y#W20g|RaV$2HRh6XnMjo273HqfeV;ud=8EFHimcEIuv+mZ z!t$ILQ>|C@ zAq$qs{X@wjDrWb(G>QE~ znP;PRu}m$uQE;rLYK3^-29}VX7Hd(xHwf}xJ3rP{y&%b%=f%3IsKGG{dro~DVbAeU zlQ*JnBm3TKZLF7?BPnX-GqDZTokXIiHd6OJK$a)TCbZA2=tgP_Nf<*DHB=DCdAg|@ zE@@ln(Wqu>B#{_(95gTFeXsMRdc^hEgW>0KO^&F8% zXDjs*QGt0P4TXhssG3yfkaco;PeiMeotB}jF?bLHbMeO~A>#-fxu3JdQ?k@i!)=zzt=o-IN z^mA+{^{S*#8~+g7S^ZUzrSGgiW4oxzQ+VDrOTsKYu8V3R!XDrp*H!H-bi63dCoWK( zK!j;&6W2p6Cn{oB69VFb)Yea<6+Ew3TrV}4NQ|F-)a8<}{`#s%Y$3zr`m0~q>B3c` z1g(hkBGq<8V#FMv=1a1qB*ew4n83hL?I$U51X7%&;Um8C9HkDG z6u)ARlBtfDl(9l*nQ9JEE}OCfb_CT*p<~6kKd7E1s${RhZuV&PCJ~l(UfdY<7jYhx z1pFdgHFq%h%cuEojG9GM#QH2;5jRd9@GRUuZO>Lu3ZjuOTRlgFb@ZROZ1onAusK(C zDaG?}Hq45iuLcr{Hn>nNBr1XtY;W9Rb;5rzWUl#GVJ*v5*AR&|n5&i%Q7drERbM9( zG32RLk}!s)>IEVZLxCFjJlSN&J&(q%R0}07$$URNc?ZD=x*YSNjuT4By0U zP^S}#RBuurmxN>F7Ih7gh~a7VI?-{pq1WBGXVh*x(dKb=P>veEU5y~B`|}V z=(g7$HE_2GnXuBO!Aok6q>`WomVIiaq>(dTHukB`Wf&4;fM1rV%>|iv!~Em-t8FEP z4ebfkMbgxHeSvz~&I<=hCn{zq=iQ1fS8o!D8at@E?y<&DKm4GYNCa1I6O-c)sWXTw z`Ifw)@rTtMsT-9)HNHai+e_!Mjh=Jj-&9K^^&eRne?q+=sagJi;!mqXUJ@a_JzkIh zP(2~(Zr<7W3+g2zxD%82Mf??Y<9-aef%$s<9ABeem6REvCVZ`i96(($%ZhhQs8#P1 z;Tpvw;afH0Wz-=xPxwJyNK|01hWmea)TKnQ9~tPEa7X=C=vdPTFZPT2r;UE^e^15F z{NPHbX+%K6Z)&QfgQ;N&f2iXn-CqX3RnX>38Xnxq!nHL-Vx6UE&q!Tn;}*V(wx39p zwW=L`fC3LYD?N2ew@YWpM|NzF-c(z?DTt;}7QP*1xlXA!dpvz1FaO8f8u>uZHOSYtM97`O|&wiVs?4h@r0(@ zK^wi7&|G`NMqecOY9}StZ}M|OORdI6Y9f4k=S`8$`b``YTWdZxYM9tY3zGCn&t{2j zwGf-GOJX}M(nev49kf`YBIes9KG9DbM}&DuN$jL86J&PoIy})|TPq27`Teygt-8TT zTP4-Pj0PUcpxHzN=Nk8}_9hcOTbni&|Z5`^)O461i zT_6%Wo&nlbBGHxtwCJOvT()|Qhma*UnwQvJ`+*4i!^mbq+Fc@iuIv4Jy|kKRc-}P& zKCRVTTl5xE0UJ5_LX+OwDk8DV*jw8qsbZ1^-WXUaLYgg?FR=91$|OCTj8raZM*&iW zq&U)5O8UP0%EaE<8A*;kkj@E$bQS^qVWTaH{j|X2lup=#-<=qtRT7E&N0C~MB;4(d z(%dR359akj2NI*S8X{3<1GLH$q=Og^Cl1g)veEIxXze$md~?9Gi;3_q!zvNq$jLQ8 zZbYIa;xuoeqcV%rT1&b<=m!Ydji}0O+VAJYc&(2h=30>I6R#yma`(QUn4pc6^hLN+ zQnEIIXahXY=be&G8e|6_`&?e==#D<}QeI z<1}9zZBH7nh1-Rkq{R`55}c%^*+L#lnxu`k(OXHAwN*s3L<=}vt@F&_5qRT#gA##;yj3< zL-J$V&o=6sJXdqRKsG_wCwYO^#71Gs3pGDMkcYJ7#abYd$ireS*cNgq=;CZNHu-UF zHc`I$jbHYYFDzP3?m@-of!BIVC)IrFvT6bYAp%tXoc2^NW`#0>n?NvA{%>w?x>_o%O6YGrhO%8 ze*WT=QtiH^xhuWc^O|`HqbOkcVarl>YCR>L&Rd+aM@y76BXwQMOWJfvW8l04+CoXI zQj1f{wGv4QVCArOTGC5kr9%5s(qypmhNfK>@r?j0$22!d%fQNU&0kWV#H}e++F(iA z>e7@`+H6T4VP5RC_PC^kg)gSOtNlk(wRe!`S?z$NK|trUHzmE{?FL^%d51{!@C(`n zp@Z@~ka9uGx`HXIVP7>)Y5u9UPg0YiZ>4;ueMD5uj%J-oxupFnX)n-at<~pvp0IgE zTSA0a-frxQwo&NVhF)78KeyJV%Wb$Pb=6Ax;k6&8)X|?_S5v;U>D~n0H5)lMxSCRH zqb_kjrrfYmg~$Dr@3kdYF)cXiKMC)UT~AcS@K>(4wC8O)o&BgCC939qS8{eoJNYG? z#;Q5%8wPYn(tfW=>?f^H4e2c7a%Z!jwQxZ^W07O(FItMEG4q$PyV^)e-J7go_q3Uk zo?rAd`(0ZiX%B?_Lt7^)7efB2ZI?99V>?rI?JJQMOqr@@U#m-*sxOsH1AOouQwstvk=qKOw?0dq;QBe5Y1@Q|DQFlS=zRkS{be#x)f#90zs<*p=Hj99orF!Tg-yz{I5Zb1C>H~-{ z)toidlcmnxJ217OUPy%Np77Kr`Zu=o;!}O}TXyF)*Y6XF*3(?S`aQ-VT2FKRdm>!n z4oz*LYd@e4DJS(2y){u4!+XLl^*~8@Pq?)nPL#`PnM+h#eK1im+^PS?Xs?fubctxJ zq*MJ-H$~FFXrn&R#eDNlCa@*-bBzg!_Em^yehuK3_NeMM=2N*G=C~ zge|hIYoJ~ubntuM7bCjsS+_8MRScg4?5P(@!Y2lU^e-jhQ-Qtpn?z{EaP6(T+!p7d zuCMMY32pY(+e<>5{q-P8Xfs4#O@vl<8DaWUQioQ;^%6;FC0su$39Urx=Om$(D822E z7&}_okQ%M`AgY4>NX}yPAW3K?M$eFhR^s$2lF&-L{w5JxxfPM9UlU~Fb5?2k_mc35 ztTg>+NnPRTsWkl$N%#y_nr_^ow3xs3+nSoD*CP_GCrxiGbPxl)dsJ^ll+S)uo`aBC zM52eM>mfg(716`f^<+sn(hk(y{amLTs0T?x-5~wWFLk;>I{eH5{xC=TQU~jPg4j-v zBdNpm6-2qrcj~*TBlI)BV#r+fjeBkCD81`%f^K{Kk(#BiArdJYuP?ceI+3#RdZ8qY zeS*I6&pO=%{aGT6owJGhL82;nIx`?*qJBmaKIuDA|6CG2={rgPS`t3#J4wGO37^BA ztha=>V?g^f@j2YddJxeGhEG0B(dS6Q=O?D=Ws>mui5Ys8Bz%5imVQ+dK0lGI-;;z- zOgyH$bBy5x!zU)@=zc^6Y+Dc4v^hF{Hw1eJwye2&vLsw_&ecZ|6|u+s8>Y?G;RV(Z zGM5$jv`Cw$w;&R&V4faGgyqr(bgPM~O#IF3LVdF&{LSk^eXk_^&FexPzS2N>$KSjz z)Zx1fL|864`bUzmTyk{yN(1Ol(6b|p^q(bR-XGW9G@--1=j!bxVQ%yEP$H4PJbk1j z%wL{9g-Fz9o}NvV&z7nFX?glncDe%nS(~nZT7iDVrqkIf{Q{AgnOEx(I;I6%RxMkt zZ-lp^SZC(d`aVfGGq2Xq5LH`t?6fWVb3|1PXP|9*xg?yOcIaOa z<+ABnhHI(b3O*i@I4N80;(GLb0x5A-38P$$O05A<d}66x{LY{NvQi&_wH1u`&4fy33Z?85uNLFpXuq6P?oy|_qz{pVy32Zb z*E-#0{Vk#b^N*Q&`W5{hN#-m!ppOJWe{f@;>(_1MlYUj-?2lFo*x5KQ_LY8zD3`T< zw0-*5`h@_Y!+RlL>oed^Er!HZgb1Cess(87ZqztKM;DqwhL5bV0&@91m<5mj^C zXLmNnNW#(E*_dHF?>2;-Pjrpu4i{s!q+j4#&BZt@$l{nc8>o_~+Jf_gi*Z(l#5vr> z_>u_IvMSxhxF?A1AHN~p)u`W->K1h6ja`klf?yy2ej7S>Weoyd>!@paw>z2+2NK1XqeiEm1DJGyDm^hK5U!H7z~; zyp5)U$Yx`s7m={p*hrLwHk%k@L`bkXoB0?kh=ffaqfF=^e^dRM8Wn=bW^>~Lk+9j^ z_)ZeqY+)$9C@o~u*Jw*5Z2B7ULI*a>(jPHa2r}OtelWe2Q7A(m7!F_QFpd(5(X^FO z0`Gsbjv=j#GD+B{TN{DFb-LC@7!l6X?>1>;3?&k+pskT330py1W0^RQ>bWla8zq^Oj;D7r?n;^f`#oKZ@%<^JrFO}O>0J$c8yuDd?)Uf`izMNGPk^yn z67KhOGqy^?{hppinIzor2{K-jg!?_cj5CsOzo)O!IixPteT`@$u_EhdERlpOvVKNJ zD25b!CH;(fMAeoTAe|6W5Us)b8Ox;(`&d7tQ0nGQI?}1X@wp`I#UaLZNm#d`#s^UT z)_M;$u1Z2(m{Ad4rwcRANJ3q>u|1+r7jEp6gt`c0No1Wa!dORCUh`a^mL6@KkaT|X4WM@=?I!xzcHS?byCaDGKBV5jIAc^4 zrlo-8uJalgZ|szGu(8*`1mn6S-z2YriAIY76cS?REXip10CgqGXOq?KpqoM@+F6oO z5nq?vB;$-EEQw@8ORUo+8=jI-mtx@O|EwjSVoV|`FlWLQSgJ8g(lWRLOEnfs!r#26 z8Tpd%H?L{N8lpTG5jXCz^6M;q-1*6BtYL6T56#+Wjw zPB+HLk%YP|W9Q&HU6%2RB-D*HRt%}rjWyt5cGfVqPQKq8-D}CGV2GO=d`}0Y!WJ(> zcfkSS>r{8GE{vAPvJtB+#y7iWDNf@cZ&4cUpy!E=*Aa%S(o zoP|C@ig`k>b8Q!f~OLdRoXI_F@%S|hqv)#-bMY2I<@+sR^+kiz`xqhOtIQT3z%j+7yqpOg8sW!#E$k4 z&py%XI}!=*hOiJHXz(W;ccMKgtRJ-s(M~J@fAtq3 z#h5AFVjQy{-|XG?CA|MJv?hG&dX2R`2!CNM4eA$mg-JdUZZX%`r%j~itL0dREyvd7=%1|F_gN9od!uIL0&&7kWV+*k#4IT_xXHAR@lW5#Psj%(P>QtKP82xdE z{`PMCN(EXFa#;}eBQd+#`=ezA-dK(yt!|vz#T<&|4DSPnS=ib>|E>)GdoHT{(Snfn zGroQMv3J{--aonjT2`X3sjLOf(RF7jY;IqSeI?aV49x5bEA5A+m(~kMsy_l5yg%BB z#<73b3Y&Rwmcn8lSHOb(S$}5Q_Ahf4Ke>>{}OXFv|gLrIye1$ zzi2ZD&#kM|zjOadJyEo=*I-uV45h*br((UJR{X*4*do;8FRw&@f6zT{I{Ke)h+*p7 zPy(}r5B8(;4RPMAoP{%BdkXm+wTe+xN|;XNf%#pO=l`AmFqkP+HX5Y%uQsi@6Dz&_ zP=hKnX+1eD7JKM=SSi8V`^jCh7F+MDF_`|_uv*~kbXr}SMSY=1u31ZyqZlYzB3hVFmpj%~2o&U~9V{tD3?60#X_5PdIV2xe>XJH)J{Qskn zCTjrg17so{tZKg9_ zJz;qJmani^$JP0WxqHw&w7*~uw$B(^``Opg?*lRX0(X>8uSVGqR<_ob^E9~OJxtWs z#9V-}tMI)iOploF{@&keL1uk|ckBR%Ne1XtV&n?h@hB9Izb!07btP5DhQApu_3*0LCXfpi|`e@51rp8)JApOJlRaEy5_QnpQY8&udBU+SjqkV<#8(L>ylvRU7Yf3~OMLMl@AzH84AsOEtEfo7>c-)b*%DOy? z99he%eH^C5q`6PjRAeKx@HnhyRTloQdeT5b>fd`Klz=l@{rb^cZhqBH`AW9%ke z5m?K|-lq>;+uj7JvUV`@YOKpj47r!`o(p5L%0`0J7`{8^pJKH4x5j=LO3bHPmG(}|?3+!HiTd}#(=ZD^Cq0ul*!?z8rXK{8FN?2jnV$nxPY#W@J;pjgKY8-6B znt?Mhk_S>B?>Pm1aAa24R`3zmzZ&h5>F_PKIxVJ9?4DU$#o90&IkD%WKdvwA zy|w?_Ft6mJ9khnA3^Yvg}>@ECNYfxW)(2l+3 zN7rE*(n7FCmc^sH7nGR7=E1dqO1(^DOS+;z`Y7ZB{o7o z?^c=EGmoIF+KO;2a})Lf;G2fj2gP;J>xJlp(i%&hkNvD?)mp7#`kO&IIi*ubg^i;t z3rsVtLm(EN!Whg0u8*u1MEXT6yP-#0`?VL1w8ed}g@`h_pNd*B8~&S{Gt@pPZ}dc; zsX=G~Yve)qPfgGVV-frCDy;`Jxrd($J>9xKEXcxgv)==;_i09JY}{|*>^oW~e3pzQ z^C!%|8Y=|%Kl$tI4;UHXS_ArsbvHn)(uK7_G)ka^Ssv`G>wYGdzi?v-rx#iM;Tbbpp$&sxZ@(}4pj+&nin`kqf+6kY+HCZB9af?C^1+m+ zlNRNJ{+J{2$0?_Z%&GlVe=?0K$7n3Q0Ftvhx60a38H%+B$_MTLK_eK-2mM7!ij;Sv zmW=YjFxAj*p(TKP&|jQemxjMfPuza;S@%PP z8+R~NTCr%f64qHFjW9xsqm%V4dpF+QP+4{;wn7_jIf!Q0M=5J}=Oo9=*9*qHY30~*}4ZV zR@!2A`0L)gHT;jm{yF^r8)5!^U;1;JgC4G5v4?;=1}g0sSZf4VO5$$jgX?*54SRet zYP(V2L?2Dgt)jGXp0)N1`xr$T+RMLRvEY3KTq%i=!Y!`N#k?b=C~a{yA;zd=NVCdH zsg53u<=?FBt&e%ZwXVv7pf_o9tttZt(*N#by~-2iBd*=VH6xCD3d8GD zm99^%Aw{aHAPp+r{n02TV&!ZdQE`@0$=})%?9akfX_Ru{gc-SpU z>|L4#a7_-Y({7jsT(P^AUUgCi9TP#sH?)ao6$#%!y_qQ_VQtC_9LN~ryN$*%|s$R?nnLI%=p*w z#5yL35#!;wtUmRik9)9Y@HN>sAOqkC<&UsT-V(k>(1{IVo!BrqM!*ruyRgyBpN)fK z5`2?%8tVaJdc)BNj$n9IZ7_uC%jU5DYyljLSqRHxVc;JI{%I_l4}x%m;TXw6l~HV~ zG6URm*%NFo#5)(l%!T*#%wtcn`Ro}uo`oZn&u7oGMQkq|2jB?hi`XG}ZuB)c-hd;N z=d!opY49pI-hm^O=d<_NQuZNR&b*cNtT9{9_Q25qj$Lr9Wrc7Q!SMtf8{jC0)D^Qx zUJPm30{kC1o`>TFICjDDA{;M49$o_5FR^v-KN9{Y@O|LFAO0VJ|1ZOF2#&*Wyaq=F z97o`I6OLnWyamT`I4a>d0SEk!8@`^l7E+wR--Eor2e#jbbi5C?-v_^sn2Y)mtFNAe z|L5TU$MFAS_BNm^&PM;AjBHE;!b*%d8(9q5LxI4gVwI ze*(V({-48f6^?2+uEFs&9M|Fa29EFG_#TcQ;J69LEjTO;pBt?YQfH0G?F-To+5rB( zp%=+ek})JxNDd{LNpd2|nIz|v%mwMiR+4)Q$R=zDNDe7Sc?_g4#0~HHX7%~<$${|A z8hkFY5&fp!hvB!KTd}L~gmWu~&*8&Yd>1_q@-jT1?8i>RbIB?E6L@ktg`-ajJQ2T! z4dsO%+uN(B!#XS0KVQ!Y>k>uzq(In7&4vgoCE)7)pPvumM^F^R2OH-at(a7 zu2Q|k^`crsz&2!C!@4G&Zllqu$`Nb6mAtb%|>W?Git+ zx(&D$coUUHd3QBu{>r=XW*>iL$Kvr?sB&oaR4oQ-8Kq+$`rvnoW2lyE;9Vvbeurw! zqI|yqW89SBMHceG+HCmxg+GP2CRAt5WY{-l>5tG1NlMf zN$r*qGWvp+q6Cfp7Nl8tQ@dxp6ZR{($4=pTiV{xpg~2y9?tpdStYE1+D_BaNO4Xwc zbWiDC1i$n4A^WYAK3R|It&}4(CxdJ{@LR2wf^DOfg5RI_q1b&Wc0ULSzagZMeiX)! z!UU3kAo&N9g+S5clQfoGdR z1{oO&)}1fZW{5FG2{B(#rzoSGk`44pH%=*^n>~NHkqz#nMv+mv;FM8KebeILRP=#y3;bcEa<~}$3%K(a{6^Ar zxTRDEdy;JIkfUHLS_<`U;cKAYXTwa?vum(JsIqEhsd7tc+qE%-Y}+-=0qw^-U_10; z7nR}gJJ}K{^HM0WY==^%*nJVms}u4-VwsmxiIq^9mr$8===+@QP|{azawvneRjTD8 zh3Y<^Jr1YXG5Crl=Ia%Zvva(ezbU!M6r{ z)o-J*tzv%+Rn9tpt6o$hX7qsYW==oQ;+H%spyY#$as|Kt*hs}utH|(_Jw4vMNbR!{ zV$3rwN=(dp@L9ipi&;kPt&G|j_VH)UGgM0FsFW@#!`9Abmq7cg;_L8Hd=raBX&I|S zzj!ak7u+*q+K}vIxj|>$p|fyo>0?<*V@s%V$(&{hRcf5GK|TR*VZ2YJai3DFQCVp! zwi!*uo?A*S%9;E<)koIvusEyu%}h@fzaHtV;ukZWRdYcFxM$2b2@-3zoZ%NSoxx6! z(MrWMw}KM;75ve%vx?unEQc@tT!HZToy&5zB(nzGBPZVgiQlsLP3BQ_E6dYzZ+^G;Eo^9KY9F zWE_n<4;H>ndkbXi?jwv`bX>4RyxQ^7~4Ax8RT>kW~EV187ihE16slYaGwZRN^(6&oFgtm zd5(gRN8{cHpUT2&vhRlNKj1LLdmyBqbCGd+Rx6OsiS0pFK;C!2yb$Gl&v-X%q;nR< zIE7@2;xU8k6CGTW7D32$(EGBfjh!Ny18oL=NeJ(jx?=I<(=zusUo_rXc7^0`Al(ML zxm+}^t!wU*p?VeuxL~~g<}HN>40XYrX1e$~ycItY+&o~q3-*P%AhAu}hZ4SGSqf<= zahd7RY~izT?%|>Dxa2}V;w)Fkcb!(M@ZKtC>{*=6bT~aLre2IgXJ`Z1CI{EUI?bzx z<+h?;t=h%=nR+uFPON?b-BjbH3l4(&_ulYz4b^4(oAu5>dA<)4dk~JC)%7@}hqH5F z4Pta?KI6A~)e8P<##ajn_XLUany>aj>ULJGEXi!^n(MGJt~1CB9(`ReQR&rC`p>Be z-Vmb&G>jpD_m4 z>diY0;fMOa;kv_Nn|m$16LdVd@!U$+8!FDQH&jf?4HakDiO{P1xn=U7QWM>Z)cxbr z-R5ifi^u&Arw4xv+7S2#%Bv0m;Zxm?IV23ub}OP@uu{s_@J-B>+Ww;D;E!^LhF^Nw zrA?jl9Juj2U^}#tlTW$bhtYU8(=;4gG!4g=9omUu_uW=%W!WzEFG8;=aXIU-HN~U8 zGgvNhDbjvS=~lni0oRbX9CpXW)Ze1bnU+|;f_kOJVM*rL`kvbCoH-!h8oaK)kA`jA zQ#%o`1AMTxx6;-(zF5DN)_C!kAjf2WQ{NBbg>|p?Q*@>3Lt%U%{CcNAu+zicM_ZB^ z?vAye=vQ2h&kl-0>@o;W5n_4HRKjIOWxLqEmw>bJ~NB?iI=c~(;|s8;ap1(}*Z{7Nkg z+W$6?*y^&N{l5hMIIdn~Z5!9JOzl{=H^C=v{5ZEvD#IyM8W-892_Jwzwt;E|-;7YL z;2X886@0%zwSsRls8;X|1}RF?lm(V*rFsSW;~TQ86?_*qu5)}X{_3sdT81O4?&Yt( z26GMO%hfAXe|s^kNYyUkO}%=VzNrCTp&*02a@8U6{Xi;-abELv$GoW^@!Q}tbu9mx zaIPEM0{v*2*B0tWTc95$x@A*)%ck~rkvaKrmQAhhB0C-QidT$T5&VYN4&|M&_dv$O z+GdAxEaSWvj!U<_Qp^rR?|L0`I5p}QhXSu#9T0T*I-eLhGi+HmuOPxTS-{U%*$Awo+Tsv&>RXwOk8pxhV}NnmxzQ0y~fT z7c}(O;Y(W{XDH+j2L|KVE&WMY?@csY6l{W!&kTGP}WbmRGkTVifKu%4}Xyixd`oOtQH43Eg!Q>MN zK4q2&@~LHA`Z+X?C;tfWPi?%zJRLBGYcW7cUa3o&?A%mLiH(&A&135M&s>w#Z>9|Qv zvN_IQ86?Yebgv=zQo3fGLb5`~v8aUHm0;&xI2Yf?+umW_tUFC!HP_9$*W`?jYp^pq zuECC(IQQXtueVPGT@S|7xxr+)mh~K*>T?e4z$~fb=y!?SHDJ@iZ$Mvz)iU|tA^$t% zzEAG^)3$_w1HD3*x^zJW1|;>s{^?VUmSooNiu z8DmT|uFV_LyjG2CxJQ{{VEdl}7D`;I%_oLF*1X!BXg`_YSGAPUHdMmz$UIK3QLa#OvZRzO;MW z7M|i=ie^?$-xh0(FNS4-44*WkMH!DW7l0h+G^t4$FLIs@Zx6y+$YA&$!7@I?Wh=-A zc`v9NjjLYIw9kAE5GUMFP zF!0BHtunCxIJ|is+YHJm@W-95OsMOTzU4+%&Q{+FN?RqRO;a#cm6WO?b;0VBzC~(Q z&PTqP%Kq`6`c70ZZ4(ttm8M|qnu4)w3ckarm9j}|_J|KzXr)YZ>cYrzK&4vtxXXMzGHC;)L^TY5lWO91ah3y))o;8)=PwfZ)dy#7Ep@* zHM8${t%!QxMvA3`3(Wy**4Y6|=8myRd$Z*o1F!u( z9k3*w9k6~q9k3ic9k8rC9k3jHXa(rwu%hSfmaRzoflnpO@7S9zaa_@H%Zb&&tpXiz z=PK9Xl*imwz8c!})zF%+b`@&DS3_%;ppLfs22)BRC?z*k3>iVO-%v694HaX*0S{D! zLG5Sd+-Mc=fGd+C6;qxLu`l$F2N~Zw16IHLv~xIzyIejdUM4=w|F zf7!u~JM=HY7Z^KW7wdKKSuwmrgI;R-s!DLTr7&qQ*Z7b%9}`z@z7F>iKJ3`a{I=&8 z9i8b8f*)vagAcwP$j=-!$?)@|)CR(gaHmbMIVGr>U$D6hMuP|w+fqD)@9CEg+O57B zpiTG7AZ-?C54D&A+NpjM6@2^7Lm@*(Qd`HgOD@ z0wGKMrclTn3OR*B=1|BS3YkM8+ryYv;(}KbFZ;z<8uYC2^Ea?Bw1?Rf?rS)VoUC+O z3c2tAiDg@DIb70hBZ%U9CMWFyV>wQ7sNE}d%C#|C!qlwx^5xKAfs?Syw4 z3hsnXOJS`066R1GA(tB24N&5|xzu>H zvufz98Ux4b8ak_n&Z?oaYUr#Q1IOwb1K;OTtsM9K3?#mf1Fv3VJFkJS*Nz1D>GT<$ zaR&zOR;V53uk5_hjDT|6p}a5{+s4K8K*w|kye3U|z$?~t2fSk4NcC7kbyrHIT1sVD z1~mm&) zqx02jN@)*ezB+ruk7^KNUl*`>rR;ZwRqjC`B zX5|a8vju$I;jS~vcR{M`g7S4Y6?V110qte-|BB>Kq`eFN^IMC+>{OuD|lhdbOSL_3=C2Kbo9DUi;_6_9Sm zk03n_rDr|nZTN!pF?xe+VPHFHWsC%OJ0lyUpRu~9$UkD10;lTn2li^HiBg42{_l=T+%~jzNU9ClLed9K26MTgo*i$HZi~P z<`&4~qn0Mn*WR_D&9fvgldJ}5GCxNXv?-3L9Y`{h2c7%Gjk&8!M-2dnKfa*fNaSc4C%}| zvgRPWvHYQ(Ss(T)$Z&QJWE`sonZ~?^b!Pt$WnTgpS9P|3?ks_X?7P_n0YhR!b~PFU zlYvAeJK%;oOlBr924-*ul8{6TLbPf%TD5L%1tC_e)~#B#S_dJuwzYn(T|etzD6y?; zwbpKa{ro@gbMBqFFr?r2@%znl-}AihIrp4%&wkFmRI8o9fZ7e*qwWF5)uX_J>gT|A zHMM#*PGJ-jdDT6*i&u>UmVzlMssQe&_LC2oDB6JPR^N~VG~0h|pgC<;I>0d}i54u&YV(!L#xRJSpNc52(ncM-eEbW=V`e9(E1vH8G*h)?K1AGLkt zhbRw$Kd?YoBt?rL@2DZZ2a{gBar=qUX@Nt=XQ z^0|*TeY817?JJNAiUt|-5Vb?p4!NZkyiJ==7=kf|Pj-yl%Q=Q66AbDdF_%oPDU09y zF_Lx|}piO|<5HU`hHfr0cZ71KJAt^mf`BvI=Qrm5!#I~C@M``mU zZF(6_A8q=`A0xg_?GX7PGH(;#0TvW}Laj5C`H(3gJ2U0(ZpzbuXn&v;loFMb$&yd| zT-xLlSJASVHXhn|Y2&5V%P>nRSJ2W=n-G~enKm+q$=ph&i_B3nPm<{+bBxUEWCq9# zLPn{kJjB=z(PoJEeVg(pw0Dn{G)@De=8lzA=aR`Mt|DJbxq@;HY|zKiGC)2=j8of6 zZ9BE?{7o#Xgi#xc&o9o2c`#BV;C zRb;%hDJ4@uCO{@YCP@1br@uwoF#E~6Q==DkEqS1HkW)paTT@2)OxA)k}oAzP+LQ-pBSJ`fZ8CnA_jpNH4&~hOEI(xO#!GML zA@3#cC0_x=sDpffe1LqA_HE>ErA-&*ZrXIyCNaL;sHyHH-$%ZWd_VkRq(onX)DBTQ zM6EG_PhkR|!UTz}Yl7J4kk2KbOWs4qOU6s4269P}pL~FPfP5?D9o4N9qy=cBww+8n zwH?46)rTo}(x!_xN692;nIPXwzKjKaugDDDihrlorVac}KOI zOb%^wVS`#sCU+v+=ZSMvplA^-J+$#M94~E3sr8c&&^|=IjZ8a3YbVprJ07OoMQu03 z=_b=n?NQ2!iRH#U)xEUoqfHkC zL>Xzk137d+O)59CE>V-juQ7=^Gf7hIoWz`&B)(je#NIVY?A_#ZXqgL3v~Of`X_-68 zYy9L;9_{mJpAQTad1&vYy%)^dqEh;*;l2FShRC#0Zf7`$$#jwFrr&Nd-Mm*fZH|&j zFq{Na(M$V2GJVwc(Q<&y0Br_oqb4)elbPzt5_9)t);==1lbJd)xsxRya%qzXW=C~C z`C?jnh+f)z$$M#8O1X^oe%b_R6CfX8m;qXb$b@OxM$7ieQYPDJbC}vLYP+cIW;jR5 zCm>^Xz_j#{@2BN4Y6ofmHf1%X+Sqi7F@@=!BB^st;g|%7HivvJ`CKx&Q-+Mc9V!Nc zarG3*D-UhFwDHoWhP;1@lo0ZII7 z>?V_-+)L~u4ibl^O1=%j=A8q^G{$P0FwSYhWRuAu<`VO!NeuI*T@0IIG9IEAd`VFa zWk390aUeh@2>G@HLE5)c+r|*uslASJ7x`{750Xic=_U4&A3&^jR1c6DBo2``rZdjd zr5(rf_7m@dv$nePrXc;EoI)mYpxsFUHnJ!v(6MKn$#8+rDNO_28%w+0_u9*^(9Ll*f zCA}WXUSbW=PYe*lv~Q){Mr30YTL*1^_EHWI+lifXq>t{V z{NNnP!^E6&C(&42jvq-1+h>a_38Y^5%<8 zF?lbsh8TcNNl_5m^NL!@w9~$mayKzS>>~~khlpwc??}uh<`Nez;1gLO`BqG(hH`kp z9ChV^R?VL*aSNX;mhTXAvgJwnv&H5*$R$Nx*%H1hhvS(XY3uSR=TY|Lh_(&#bq9KZ zYl{YQB+PemB%I#&~5gQM&hD;6R)>Fi?>lCS9U1So(elUea1C&*+_%(>x#A0F% zv6a|KOb`c%Do=c66N`y8#8zS_F+m(4s(jiLi-|SFR$?bHLF~_$eCW@Yd>9~eoXl}D z>Qsh9%sEwZAdgr~ri^k8Wk0c%*hx$f`(aa1^a?Ep$f$+P0b(|>nCMw3;g>CxCsjkH zmDov45RC#pg#rnora*GLhH^jo{sQS?U5h0DU5iA{UL-czi=^EsCUz|nzX@V5aez2T zREtGBcCp+gn{p6xK~d{s38#nh0Qtei5>Is+({h^F=TI&tmXN8T+JP7%X1IL$0OpY&+ zv>Qt$<~d7cT#*O74Jf<^JZc27ZK>S7i?C#(6U1KP0CAA0mNO5D*~=vr#l#w7E3s#} zq&h*H0d2WLEK61h-?lecM`kK5c{09(w2INB|zllS}9#^WIEPL zdFvq4OJ;`AH(h;ziU_Z*2;KeSjI1n#IFBy*gW$7z|jUVP=P7hnGM5?YWi)8#6EaKgZB%CfVg+)DNddM7yB}#s=JgFLDE3vCsVyHZlmSSQJ zv6HAa2%k+XHc?utnhk<&8^muHv6nbVG`zysc*Ulb*yWYj_7Vq)Mu{+O#Lg12?4q0~ z5x>2Z2Ph9x&MB1~@R!mTv5S}}l^7;UC4>RuAo=W#5>C!Wu^$8?b(_S}vq=~~v6D>K zCJEU%S9lN6f37gC=dyO3%QTWtP#z$vGU1If2|1f`4&`FX9?BldHN;k8Cow_nrOhB^ zbsooi=SduLh$ZJq9qFQ+pthItAkion%j|OTm0ix1k}0NKLu@6sk?$y%5lbiSyU6qs z`+=APf=4cqF*Y*}L=Uk9h+4l{Z2XkFHcKnlwOQ`lPi6pG^eJ2DmzW1cZf}vC>>|?x z`JDs3ln049Tg5&Ph@lg6@3fnaiWGBjcd5bfAb#*<6}_60@# zWK@OtH7dluxI*%$q(UtHWZH;{igKg<(q77g#OzA(l~YMylxv7>WO|9JNM}p&PG}2?dMOWFAaNU{Y+NXo*%vZJls!a0F$mmI-9a3v|z+RqH(D(ImA35 zVt%Q#)qXN=+zawM2YP^49_R-m=Cm<< z;>+dZ+{8CWoqlB=%`JiCw@yHBPNu)$oCTa$qdw?e)$KmJkx* za^oR?FXaKq@A?NRXJ5{{TrQSvmy2cR<>f}ft}e<6$o^fPJ;M8mt@VWk2~gVh5Qn%Du$n zWQ<1fn?v*vgN+hS8|BVMNqc9bjDdT|C&(no^wMU4%mA6=v{6@xFLj0Z%DF+Fd62T&$9oZT_K9UNOb6t54jk7uSF)$RQhe1A6T|`VD5X~kW)t(Sk}yk% z9mE89i~z3^zv>HuC0~$vL=9!tDj~aCnf6xEb`pD9C7c0jRU3V^Nl#HjIoKxo&_hOD z%@D3;&Ri{)#l#w7@M`hZO1TF%NPD})C$C-PR>+8dhhR;I_-*ZY&zKVI1b!4u0FQ+R zfY`4IK_5Ft>CIgUPtykB)XWZM64Xlk6 z1J_1tfD;;n*GMU9h5XaTPT;LqB!E}P`pFMKj>pxt?-_fV@~)G37GL*}I^0}xo%Gi= z*UgpnUSfhcKvdTYpG_<#)(~5X9oNgsVJGFD>m{57<$m(&2J!24`;T)%&cN6Vz z5+-<)gpjyN{AM3vsWwsW-g87OT{rVCH;dd)`8eg0TZ9kZB7F9jSrTq5H$G|(-X^@d zz1x8`MWE$@*H~z7= z6L{&q#GMl71mrjNsk=m5OibJ*sY~1?Aq-F+pq%$rwme@IZ4I&Yt76kZzLWBC$|YYD z%g(P!_ya`sbqPP4nD=!_V+Rm6WO^tkDECtypsentFJj)kVqZe6A=7%V#H90HiNkU7 zs#EM;os1{tAmt8X53!%<>XJBQcZq!sF-WE#SWg z0Ff5W{FtE;gTxME4>1$p=qz0Okt5SN!CB~B?esb?ckXjOnxkKLJL>c+H=`PG=AG4G7IIOCR#moom6F)edv=8rNxW3$E;jw>B^!MOTy9pi2o z_rSR4$Nga3PsaUr+=t_)XO(2#lhu{=qb&FMS>qRsFC4#S{MqBTkFOoSe|*RI2gW}+ z{=@NQ6DlWMJ>eG8-PzhHWJdTjcar$0OW-RXawK6A#R z85J{pGvYJ8FyodPoiiSuacsuWjQ3~!_l&7C=giERxqRlfnZcP4&wO#_r!$RNvt})t zwRF~jS!-q=p8coUM^Ae7q$}p^o6|k#mvjC(N6pQfd*0mh=QhlJVD9hcel&ODy!?5~ z=Uq6@m_K9ws`(}Jcg+7_{=x-kFSvHWZ3{kIkahBklj~2u{^UQNyf9~HPHoORIh#)z zpIe%{HMc4E%G_&nr{>Mh%gbAyw=?guyxP25@_w23UwN7N75TpWru?V!KhGa?YQd>3 zr+($subz78!uZ0@g)c6AW8vQxjxCr`kW=6(s4DOm>?!Ch_^4p!qOwI_S~Rd|@#5me z^^3o<`2EEhr(Jg1Ri{0&UD~qrwxwN5pIrK*r5`PwQMjV8z3|S$`1N8UptLfSzI^?3;wS`E0>~V!<)%1kb1yTzF^=aPIcCz$-U+fTxsiO5*)nH$%RjIHsx!^5?U} z*B|G~9kpdA@AX(?HJGnnC|Z5rQ_4e-Ggn1`D~X>q>`!VpG|PWa7-+c}xMq#`(sHdw z2lQ`)&>24{V^XpPVlCcZMGZ{_vp455}HIYBjIp`OHn? zSI6y^sS=t_%S8uXfc)@k@%s(t&tEPQIkHY-K5MGT9~TKODe42x4 z{DI#9A8Q-}b|01$J;-}aVmLQk@Bx_lO`ibYnesXCuf%JJw-MjZ6#ibymk^^w$9mzX z5-+?~EPFqdFhMmAnQ16+p!Vyi!0fdnlD@q`Q6o`{TEYxFd#PF7dL``YpuwSuN2hf`PMlHzz=PZ z^1P8H{Ecm`V18V_8O)okWy>RS-vc*%5quT#?lm_-e(8(CTo%0z_%bbDh)KxVl-FH( z7kK|w_X2f({%yxm$hXdU9C$_SJCt7lzU7tJPMR(F$WFnz+ok1cy-YCnMY;Q}bNXP} zah zj)*+%TES1x{{v9h)B0;afc%T?fj-;G@x*Nz}~NXbu?5atXDofLi-%#G90Vef<_{E0WCL_Fn|q@*AX9!qD6p5K)RCzp+j5$K`_IS%OQh66`xH*mH^C)&)iW z{%%3k5#WuN3C{Kk&aafdz+Q56S+bWOT_bcI*~s#*Yscs7A3@C1>+*^EnzLG;guPDh zUn9>#w%^x&$MLZ~XeVBs%Aa4ePqgFTtACOVO}~{}(YT!+-u$3xT^ZD#N?fc%K>ns~Dp*{O4ed%^VmPtpHw)H=G^#y2Bda&A2DN zZU%IyFXJoj21aRXA>WSsei!J#IC3B4_ks97D;QfE z7*V!B{uA=jfp6nq3Fc#YGkAQ28SAnNvJdAQ{{1kX5#>M#V1xCdv z!^W?GXX8H;IPevaH-P70bnH;;jkkasj6t9m<75X$%5NjbwgDaZ3dkQI?*KaR6%c&q zRh$ zw=oy;JwS*0hA|)V13-s*&^Q_LH-V^SMh@hMfe!U;BNy^hK!f#*w_U8vrz{8r%?`cJGKDFIJN;Z96NxSjtbydM-_0K z;{sro<09aAM>TMQ<5J+M4j*u#!w+2H2mseQLcp^ewZO9-VcZbEXV2<+$u+Vu6aGCQ~;Bx2fz!lCr zV7U^AdgQzd@@gPzjq@I0ne%JFpz~f}$k_$l?d%4&IFABvb$$cb<$Mr$pYtJLxAPHT zkMmLB{m#dM-*7$&e8Bk>@ImKyfZudJ3w+4=UEt%+7l2PVUj#nw>;-wFb>%=sGd2hN`YUva(;{Gsy~z&D-00uDHT0~~a|0X*(}6Zi+` zTfjd$2Z8T6hk)-o-v++t`~&a<=R3d;o$mqv=KKKocjupgpE*AU{E2|3AoKQ7g*z(5A?fE243#U0oJ>6frniAz$;w~fmgW}0l(ln z4cO{h3T$&N177V~0c>}z0(Q9801vy)0AAx-3%u5KHt>tCbAZ>mih$S4cl*^1E-&y) zu2SHQu1&z3@Lwk!>WHfxc#CTb@GjRj;NAG&5a@Yb6~M2$s(@c}UEsj~6bGUOa9sp^ z%2f?~+I1=LJ1!sa8J8dUV^;u{uL2$FC$13W*MJW7AFf)+KLz4By28Lg*B;>STn*rd zfOw{^DCD<+4)v+)3gF*dap1pP&A=({eZZ;i7T`4ZLEv=vm9U=yMBci;0ND#fNp`mZ zYu)X@M)zUhUiY=YL+KG30Fb{~cO1K{MX{G|y3mZ(e=HS*14MIaXn; zajtu%d!MSys6yXNi2YQvDd%rv3?RS93C})Dd-O<}%>jnJa)_#lN;bqQ0J4 z4(!Za3%oD$Y+z63Il%ifi+~SgdVt@=zo$E*9?mSq80%XI;b!$1Lbyde0r?j7ZOC6% zPecB)dIs{X>N&`_s^=kpMg2JQBH&LltARhy3;}z^c(~r^EyRf`Vy${QyYX8_} zzyo7fU{&o9Nd!as^5*h2zY#KHSpcB zQQ-SyeZUXL`hg#fy#n~>u~iti{RO@rQ-6i8C)9sKenP2nD=>z0j9UhDL4I0IhWxae z3i&%~I^^%DnUJ4T8zDcZ&V~HE+79`7wG;9SsuJ=G>U_vAs>>k1sA?ehsyfKM>T<|0 zsd~sSsR-mg)d;yy#US^qCdmD2FXUrtKjdTT0OaqhLy*6(u7dosYK8o=x*GCN)Jx;` z0sF^QVbu7Oaej;%GqaWf@s)3k9mhldwVDX|H)>{)w7H6#jF3DO0 zEX+CsxIAkuaAnrnz|~pj08h^<0-l-W0iKoR1+L2~#dx$h>muNWtZLxKtV@CCX8C~U z;Vy5g%~=89)~qUwS-0bk|4;429p6%wkl#}0Lmp5ULLN{TLmpI@Kps?=LH@nE3i9t& zE95_@t0DhEbwK{3x(4ze)fXYZtL}vSuDToY2dW412kL&vAF2l+f2h6*`A_O$$bVAb zg8Y$s4Dv_n3CJI-Z$tiAJq>vw<^W|Fckf5pdPF^iXLby$u>Xni^amL2PQyrL3C0oY z(eLjtYK*9{-)J+wXxw7lZFCzC8&4VEGrn*9+<4P?+xWovtMR#!>6qe}Xrp}#~H|@^p zuS~ydM%B!#X5KLK>ocF2`Nx?nXPq@`!>qup8)yB;thZ(vvnS6!b+%{rp4r{Ae?2?v zr0kPgPx{tLiId(rY1y2+<~%&7ch10^KhGIAci!CPb9c?{nES=Kx6HkJ?(=hx&3$+7 zOY?p-@8|R0ocH^Af13CAc~8v$?)?7wug?GF{I}+>T=0bjoeTcBpy=dtPu_L%BPTz7 z@{doxF#FozC*|Ch^FYqyIk%kh^-~@?<+D@vwSC z=RKYGV&0PcHTj|Z+w$+pzb}8!sqdZo`KePEu3mV~!i@_z6}(pP%Yrux&RO*RMOllF zE&lQ1*BAeJ@tLQ2PW$0$|9RTGr%hZkbIHOb%a)WZ*}UY^C7~tPFFCqo{L%{xj}$tV zWi2aMR<>;Cvg&2AWrvr&y6l(B9$xu|gEO~Ofd z+DhzB!T%f7c5;b-tS#$RMJAYrg-BPTgjP(2GGt;?Sn2wvUc5(#2o3Zk73)V}%jNh&J-G()g z+p#P475whNs>z*L@3;%C)7@CjxCd()U&ZfhSV#Ff+N*o<>%^}Mzx%La(T!h^+KQgC z0oj ztUx@2RhDP*dk(+vVin?f{9eEg)%UO#@gjZ+RVTd}`mZ|lTVeE9VYHkP^iL7=OA+j5 zHL6$e`yqZm!tclUy^6JnpI{B*HT?bqzn|jwGyGo1@8|ga0>5A4_bas*J=R|ISNqTs zA5d?o>(S@jgx=(K^detJ?{P1B4g60QVUJH=mz&o!&Ffj_b)9)#Z(cX^>cW~;)s0fm zE>_3Sm2j>%^sWFB%XH&9 zR@$_Gx!SXY|J>wpCI2~isoS5sJ{m82!>z-?m3qUi^@jVS@oY!k`zMH<)3n2tc23jI zY1%nq=ce56n-?qw6lz@OV)G)eB0Vfw?B{xVE|8K%Ds(_e<^ zF9ZHE=|e7DEg>z-wN z6~AZPt23T+JnxE(X*XQ1BmBKN<^|*0jOSg#|2E@@@gd~Nv`7?owJ;8;#xA{dDpfHOPw!FSnGVwam0AeQRe?DjaWS?^d zel?Si7``b!=Mz(A8GoPhyvsH9J*N-Xe@zJOopbf0s_bf4=%TtC9^q8UDC z%Z#J08*sfJ*C%GY<+^O<$F67b`)uYv$NbQlmGJ}oKFRyo<;X`m^UE?K z`S}?S;`b(gzt4Zzz2Ve{-G9q^*!{Cp^E2iy%+J_{-yI9@8S^x*Kf~|Cg+AB67W$l% z3VhDF1&?NI!>_s^KjY?tzKr9zPFR$mv3k)z$CNI5EhCIyJKR6P?^pOa7UyT=EPgHH zjKv>h)GYoq<9hu5bMX=5_ls9&{4MK-%$Juu?|O5|YZ*iM&0l(W%=JrO%lHF+;|pKQ zD8SEC_>0Wv9KXTu(~RlMmS>!@?9)u|vQIOD_^LJJjGLBC8~fI>{EWQiM_p$w@5?xU z`DtVK;n%wStc-6j&(C-Tzh5qYE#s5rS?F`7pw}qGZ#m9=EXQ>PT6_Gh+Zc^C_?tZO zmPlZI(C1sRT&-Il@cBx@@y2?8i?`k%kFQ+r1A9R%+!R`0>+@0A9*u{a!qLe2{`%%n z{E#+TzZLtJ_Ttms!#?~R50O`%GEZQL8JuMY(zsP(YZTH39YaI~EV z`n}<%md)YF9$HaHt5srU=_{hmu|Vite|&Q|-V}<2VsTp2rZCVHjfs=4kx3-Ep*dV1 zEQ>USViAA6q|_4(dYj`-(S}fLd$c|r2qUH1yCh_F`mHOP{IMo0HoP~DhUEsrwY$qA zi02`iNrKjlmU|>cyW(_FSA?1_Smo6ZPHv*vkx5!f+mWm$C8#qP{R7RhP@y*ps0hWv z{`&9%zdVb=vMr&8U7^@ke?!O{jqDA@kSnmGlv45T45%zVJW3=--h8EIad+(}f+8fh z3{^(=gd+OsNs!cT3MF%LgoZhBrbHh$l`(%HgnUQYl&l~v1{8GhLA2x1`q1WRZEc7} zfV$F1GoCB_og4B8&7zX@y<#nMCm7te>vEJ%6jX*zRzkPbo~EW)cvrK&IZ3l*ORQ2i zqy~}Iw_=@1Rt+h?jg9p!+ZrX~OK%ScgnCDgh*`#OvoYS|t$k5v|JUyv3P# zW+M|R#?9m_qdNanDXTFS2X*Z%rH}4B$A$e{&2b`nIOCRf^buvzDqr8?f=SXopyF6M2@x_=xj7o}*NY<-^S5k|Mnz6OphkZL&eHvjG4u_1 z3UF9?zO7N}qUOpx(kglD!=XsiM!&S%Ei8ed7!zz}uw^ZUk3r!dD|0ExL?5vpxKEX7v(LAhFaVY;n{SrXdSTzh^vv=26$ zLQ(pLXj!A3N7jSb9t$^wRwy6pS2M1ArO#iXYC}!FvZhdj)W|b@zI`!&;|k@i$XmA_ zmAYQaK^%Vein_t)+ZaZtTHgX!TFbN&4FJkKGnh>k2#EtS0loNe-qYMv2ae^>6A6kl z8bc4VQ!0Oam~CaO1x+sc^HnPu*HVAHsj5QD7r<8JO1bx_0~=`rq10_4gi+c+uyKw! z)~~^EK&@*)sYVlGy5fOoqa}x=*htHow3M8!Xo`jW4VJmx5v>ohOB|+?EJ3%R@3pIW z_wJ;ljv8Hh198h!U9`DAxHHt$9E(UTv-n1HBx9Ndnk>livaZ?rkmWNQ6Qc)*R8 ztFEc3(adO5AJf@xSxcoiWhn&66Hi><8$(ODq*-67+wGOQU8!tFi(Io(nYDN&%6F>r zTh()=Di5_VdE5Qr7_7bZ(dJ;OWNPVt6cK4ll09)8`m&NRTLnLgFRY`HKyxex>tS@V zRt#fV)>org=-M_<;>#03VIBz`<1?t-S#C6OF7q9uN)w z{q~*%#UzH&t*H#{4}|n+#3al@!ke+4nf%DA3hQTRI(j_ zx^lHzw=1+89h;;8j(~1sQdJQg<~%4@W)_%skx%(fD$kjSIt93F~ zGZ_fOO2%p=1I~&N+N$InYmKU0V~+t*n2H{B(helUf;)Zu2NGjXyA9j8 z%BYa#GLo@B7F`kx~Pqu~W*c#7?TjV!D1x+NNHt`DtOo4l$tve#2z51aiho9Wsb zwK>j3r!~SEx4A8!Rd%1+k@T5zYMty^;ob_6udhH%T!&CA*)r$WKu&d9?TZiFoC{n9u;p*QPe=99|FfVIu(YWMWp%$$$r14-i7!iBT zp(l*i?==mq+&7&in9kW(1(enBjtFUZKIm|hL7lKsMz)%PS4M3OiuoAq404?VSsk*k zc9=6QkF?b&c|W|ZSN2vFqq}7LE{WqXQ7=5ACrhnDs;Wj5E3OnZn`+x~h#I!iz^7+r z^6+^GOO(AQU{R1ZT4uy2nvp287L8JN3r9}q)^Pw_D8uG;mFw3RZi(&gpc@MeNK3G? z4zrygRO{B)`+Q-&_Ln3v{^3;0^eQW2lA{>dgOPS-ID>-ZD+%rPH`g}}SFlMMP2t1n z*A}D%P|>_A9*BiG(#2hT@!@VUsSHK@ktQfH%g}%D-F~|M{>RZ*F{nuQxQsWSg%3^Q*K{Ok6p~j;2A^OLlp1QFfz`V z5=c{Ol`{Qw!jalSEzxGXzokBE+GBxSA^&A?3uzM?{Fn&ljd$87lv0H;n4!J(9HatP z#p+8Vfv9M(c*iSSb=0O!_0e7a`U-ecabH|664|mirh0z#RYA2q+!(44M?zQwj-UyR zHJNLuTcf&Ez+^;JHeg+14`_}tO<4zume*X$4a$--5?vaRCfO{}@e}KP;eVslfur@U zO$%`ZsV%LW4)bTu0xX>rm9n_$eS}W?s|?kL8Zf168SW*G*4EbYtz{gJk7UFSWn)7~ z&l!;^DEUb_H8R~9+Kq}_rw8b2i$Au<6n(OEAfs7DDNa#0bb9ll4kcDU-wG|7J)!PQ z%68+CZs3v!tULkPTVlVWgWndznj+RN5PDEgd+~(h8(JE%c?EJ?g!K}m9_$Y3-UXIn zbEBsoi+2$``{qCsY)d0?S$otA#c-dGo^E%GEYPJmvoW{T4yfaWI{bLy$i?S%ru_!2 zhKBr+^@SKLB*XtdhBeGDmx8MzasTd+JxKjfQ@0Q|mIzZs*e06`JV+^$6Wv#~TR&C3 zo@`bgD9tdrqCHZ#F}y#Sab?LZ9jUW2EG(;yV78rHok3m)xp8Q>v@)H`eRhS_O<;jf zo>)+A4ei_1jO#i*NM5;qkIyH?50z_UI8+aXxw4n8NL!#uH%X4e(^bO<^XYmHssD}t zVZ;1%?>af@yiQFz&)acypRTjd1k$z1X+gTmnj@rZcspytkgk?tyq-Obu1jaFel=Y) zqQ6Tw&>gN>G|PhN2GX0Qv*?%7$+8o-+@l!}Z?Q+SFq_cPRHL@nqZy8DrAM}OPBemhC=22A`mX5CR)SpPR zB^>!TO8@?Uqcm4_(;7N?1nCL2GG=rw>JEHiD}Qvg^tm|nF}ji!e3U!Nl4yE7*j|=4 z$7ByAE$Y$+ok+)Bk~AMyvPRcdG=>6LBO6`G#>t$oazb%pGjl98x`7^kAR=6BPfwI> zw;)|vf&m#038bZqv(;sO*%cv|8 z+Tw2t)TMhueIH%1{e<)=p=`#AO4BGji&y$ht30JA(69&d?8ah||3nu1!c7N4v3i`o zIDy5c5ROVkT27$l9Y%>#`3V%|7#8_YpxcNE4NkSlYGHba8)E(g;rbIOu`+|hI<~T? z4=~|*hq3&D>9iNiRJ$-@N)LBiER0DCPCliTQe>++s7Tjgyyy>Fn_lT^rt*ZIM~=zT z{p*}KVF2bMv5l_MgD}?#aDoeS#ahn%_KucH+d{%N%mteC)FVASSu;y#&8g3}NV-Z- zPU54f^e%5&hT8|>Co;jtRTw8XX770i3WgRU{4{wWqzqK)&b}yXQkQu&g z+NS9+O2STW)2KS#9{f8C8K{PWx*w6Dz$iDsLCn$U3OVvHin%u$jRn!PU|%*pvZL(a zryH@q8pZQY6rfRPIVd^`T@q@-*5N1$6tZx`C_ElbOD$Fh(j%nzBzO)%jyy>%9L369 zk4pE>Qg%YEegZq1L$Q`*5g#S=ig-QCP76aD#bA3BiyWiya$K@`6kdi(dQm(*##k(s zlaT3(O`%c9vbZj1$(1>*7o~fx^vAHUkj`)0y&G#>>AcPtbCgzr+Pyj45FW+OZ1K|r z(38t_9=VM5(sbUuRl34jc|4(k%%#)4>CSR=U9vA6U45P(r{_jjC4F*C5E}K)wn4+_ z29+3-r$<;i)^xV2d~}}o*MqDR7^KEnqZ=@lqpL9N+UIW>U1zQaq{kG;)JKW`cAVfy zYc#hGKjD$4H+M7m#P^Tle}inzqdD3T-Jc#f#{W1Ol@=x%_!DT#;yaro5dA zi8jaUM+rf8ztY2%UL&2>EA`$woN`w@N`%#MKMtBuk8EsrS8Bi<%34RGhO zpl&Bk2Cdr&2JM;;cBWojurXaY;w`J;+{ZB~vjCf}nBJ{1UBlxu>~yth(ZIv3YJ0R% zw)QSSXR9KXfQA(NRq;4ZFX`+x*L2KhYPohx_E*S?4pz?P^z*jZ1$Eed)|3b9=&>fO z!KY~?WgH~Xt2IqeF~|dpwAOA?N^DETnaSxY6h$udq>S~xSIRASW&uzY*iQ6F3|4q$8^LIV$0JdIe1(mR&JSEo$75erhL#VS~W>yI^%d}OR zk~E)s+S(yD6w)~{m32ZK2#{md6cMSUEP4*Ns0mriiYzcv*qX7o0^d@>ZBCR)OCtfu zlA~_lL|C_epU>L2qK2(ErIJuUEc6Dc@->J<0!Xe-s(NdkQu8S7vNWk=kA{L+TZ@Y{ zv8_a^hSaL0)}LwXB$-6yu>I(%k_tVH(9hmHI)i6vFJ~63n_eEB zR_4gfQn8mxwvF0E%tuhx_O|7%!Hl9Ley1O2auj+FQ(#M07SS$-MFTOFJ$gE@S6!#Q zjW}LzJLaSGu~KPplShB-JCk17qE;xp$-PRG2~dHqwJfq16;^EsVb#Tyb#rCC6CoSw zINKIR?=J`X&-dfd4R)l_Kyy||*?Lh0uOjI8nZ!Wvr^(2{M*4W5!$#ncG#(bu9hq+x z*a!@B%-2|wFDLMRDW3iRaOKEXABJmv{(U&it5aYdAfgL>i+=M=;*KiIPwdXX1IBh;Dyl zqaJfsVDKEMBPY?=h)$Z0-IgGeek3v)N!nNu+k|tYjbxKuZi=#R!&^^6Liu05185zw zD6=gYpmJa&A*I=TyN>r}yXM)A?T6Ijg1RupZi(A?hM?zVHdaP6RVXjX6ej1#WE$=J z8&XEdBB-#I0w@hwvW{q%D@QLl-40G};>R9Om{#q$o=4^qz|zR>|qH z-?nk6;;BtUwM9ZQ7ypvRvO1RRx47&sH$@c~g|+TBe6Go$%!ON=I<3w$=bz!kh#HbLceFGa|cngbJBQ9BJ7+*-|ilMB+ss~?TOfFnf%+` zzJPwChVf?WN{JmQB{OfaGD+vAP}63tSWyl~8k@CbFYp=hNS5|r@Ep@ysg04pCIkvn@ z#7rIOv5e=Nyq0Vg&{rV5wG*< z>LObt`t?5h+kMnsuy3DinPH^BftY!CTyCOUdfh?IR6%nZNOnW4!zm^V77@5Aeh~UX10X)Ck4JApxY~*&`I=1INVTDOG~X+C8Z5W9>_}$Tu{!jkvmKi45rLV@i~YfPU)r?b7&p2j_cY~ ztoOR*PuW+=_zD>=V}6+=r!+~aO5UGMx-bK1Mk3|ibdIRwn=vVC9%jKem}@0On=kX- z{S-4I%To$#&{i34vWFnKWgn5*J&YJZj8NevMhw9*(z1;sQYI3vZW&S>IyBjtx5aR{Ol<_Wa+3u8Qy@7%~@`jMSotRRf-PFe{{q-qwi@#-8NG6Oa%3RVb z!$}UV?WHt$FDklkxG}062A?BYly1G(lk!`ZdK(urdc0$f?{1tMM(MHf$;e!QT9)!^ z#$z~{EV(H=>&b1zoX*^xPFKo)tbE-DlNo<~nia>(cz1t0j&+3jJ%aQQkdK@OGmLaK zUbC@YAV?{PJ*^bYg9nI5{QPh{i~@_d0|148Vy8K0EtM1AdLknS z;`LWZ)W&*zQYYoqRg{t6i5-ajlx%t{7g5-QIRBjTXenfS0mnk>Y%136l%=%*VfNH1 z1^XR-QXs`i=cPZ^k>XOfLdPCyNh!>6K0ExT@UF0YXCbAv%9RWp5dHl&l|Pvs@+z>Z zoyznn7L-K!lwm^i2YQVirJ2s zF>iG1qOJ8{)E4O0W+|Dep!AenyU)Wev)yg$I8pKJnmRmudnha-avV_y#5ARx5@ie- zv`%lgXqlO)$H1DvlfmQAGG=rZiCMoEv6iU?DSde6Jb><(H%2)L*E)uJBBgJyeDeZ* zJYTtEe#u!mbM8rzIn0xC$*mPRHfO${rUy&1XKht>saiJHnpue6S`fpOHMxwhWS$?x z!X`hYA>qidxhxV4?ccVW5h}%GLl!#Ci#bUECyjza?_P_MNL1!W{@6|wIC|QKZx?CT z33eXD&{QQ~cu?}nG8d&q8~2HGYji`jA<5x!BxU_{%O)IiWQkj5yDv^5jh9gWIsi_$7!{Ml@Y zI*L_IyU&yyF!jiGY`+dCFkm&`A?HUCtdQizO$icSOi5mc)0`eti`F)fqi7~yROVl2PXQQB%jWr1ZxvW!vnp zkb^Y_8}~KxTG143+^3~ccbW7;s#NAs(?)!UPFBshwkk1{{Ll`}zv}eBd@J5Pi>FS2 znMeIlubN?jsOc0TW_64%1-&XoQIg}4K^^KEiAKwdKHiET_QTwIE3PbP(uj?8e(+@y z5|9L7I?>db5()$A3WftVLw3kX#+sI!20k>2ricWym$rH3$s^0Mo=0%8rx1+G`o6-@ z7W;M-B|g@XTRt2fjirRae^Z_9ysajYvGyajB<-haRYcyICtX#}AX0%*N*$V|({@gl zZrdprg*k&2R4mNrf~r9)yg_I_4Ph#yg1TUf#9|?W)J(IGi!-J-Y#ekXUFL@Y zMA?d|H$d(hjW&|2g{cT!wRwGXG zGEM2BG|PtzN3oV<{qL>i5hqs!(3t6%>Bc9Pbn7NE<;J(4w4qn3Az!*w+%-k!av8%c zoF~>uccHbrT?aIVfO1dP3)WLD<0jAE1ld&HUCy_kMW*+$_IqVQPne=nt zh#Lm(IO9<&pJY?fM&Bk>I}C0rv6YLXOcuKt70*sdG?Tj|!%m2+#^EQ%twD$$Sjql; zy+x(ga^r=gs?BXD?MZIAIkXqv*{5pJS5HR2Yk^U}!n9Oc3wu`=gwtCW3hXgw$y~d^ zmX)5nqlr%2E5=|5TP;eDi14blvd%?|+>D=9AuIT`Fod)rghkIFh6MODnYr5`Lk@At z@k{jdrVE{x?jlUL&nhLR+xj$weypkP&9;tAmDv=SzNB>;&R9K{X|NMRc-c}y>uzKC z{YM>3{iPC9C(|j3x@0-lW*XS0Qoz}!2J`VLe|;??-&EIt0YDhQFBMeawOSkp2u2%l ztU+HT6d7D$2OhK5Fcz9Ik0-HPv)d|gh`wnz79HelMYy3ESO0!qW#gUENWLh59))j9 zZ;Oymz9pbSe3==Gzsj7;jVR6Hw2Cpk;*eGZQ-$5QrQVM-2{Z{Uhld~%A7Q3|5M$G+mcG#&9n|Is01)5#AewB~K!FuID z)3*1)mF>KRv~t=Y`P~sEn~W$qnof>jbt{bRLd`eHVyyMnxD3Vd@dvb{5ye$xd4WRh zm(RmdVnS0Z$-`f?u&*nR&@dy>$?>fVnK70`WwOKPX&yB-8R_$MQ>@H7rew-JY?Df6 z9p-)&Log>uX6Z=2z`+M#d!d8+(N@W@d~G&aR!DjqL|P;iRP5fs*IVLX)@UkP2eSU0!97cqFGD+pvzHDW5DUXwiOG7Ob5( z>4WyjG>q9@lI)UZQ&owom|Atjqp-WAakPqmnT&5_*sp_RQM9S8;^MEjd%`BUpC?MJ zP~-;5AgvtH-`+6425pg6Hd(^}eOox*<=^W0; z7WQz)TD6s7A07dkLd;u{soH5B5eV%zKPs+lUxn2}z*JwYd{`5)InC7(bRFpBhVdi5 zL@h&2n;ru*3^YcNsS0Vc1Zi_=e^{=ueFR-s5ifl-*%JERnQe7Ma%KRZ1xev)M0s%%?wMxtaSuPd7Ei-6|LAXzKZ z4fJqFYC>7$-!;YjuliGzSjtg4 zI+7hZU8soYr?4RuHMQnKIhA3F<;9^`R5e9$^ga}75m`;g~DN5^u0hoCP(Oe3&d|4k4MCxQdv6CAaN>*Q`9GFh&=uFX9 zr!8QN9S@cW#FuY0s4`tKl5TnJMr%B>Y9uY1dFDj^9|e4qPA*@JqQis+Lx*T=xXPO0 zn_p4pfoASn3tMwS)`nr zRnnTiq>j}l8$z>$$|3X=CxcG;M>Hu0k-+kt1gHlYJl>3ET@Tsy(j(^~Vv%H%mDy5_ z%mHZxEFDIvDaR(P*2^(^1m`!eRx89!qnO$!Uk#06F-Xv=?|f|dlztGW+(29Du-wUa zY%F55fB&LngAoB?wOYb3`@j^D`Y3yf(^DQ;mthc#RpM9+Pcp(GbqHTC)eiz|N$_JX zKg73(%tdid2u`GvhS%!r5R5qWh|5OetAXZ%CE6bUftIr5cB;Ow)f>e0#Mt^~fZ42= z^*LoEwJeR4x|v4$;>obAmWBh7tqKc4|O!Nuzb|wDRK++jcO4b`AVr2H$sX0aR+q%QQPm1-fk>4kk5-I(b`DTfP zHtbasA@qZ>S^T^ErCw1P)mLA*I zto7vWl=!y0b;n|7g2{vHac;n4QjTe1oN=s-Hu>wfgt3$!H(6OB9Y(NQKpP56K}gYB|?vMjDJ*!WpTS$s~@9v4N2#9!sA* z+fXP?Z}MY~9NL0N%|UgK85e~m+Pk!PvTe1rW>L4s3~`+AkP~rOVvyYcoquwI89w#@ z%23$G7NGNbxFQ>Gs@ctEM^;XJ~-zecwJ=KU} zT#P8v&Kxe;7#Ut8gBs&n4>0JfHL^DZpRGQU$^D?Z)N}omH(f; zZ-I}is`lPz@|a1|Of!?F4@lZ6P}@?PCTY_qNRjkG8|jNC<)PGel1$pryqX7XdFaff zVo^}4a0M?YC@821_(Y@#f?o0BCr@uxydvlo6uw&(KJi}E@Bd%x>~qfK0hJGbAHU!C zL37T2uD$l!YpuQZ+Iyb~Ty4^!7@Nw7V4f}S$ zFxt7VdejMJrM`cjco0)V@O<$gEFegaepCf+n*kmg!Z~s8fShosQY4T@tXA7|z=8Cn zJu;{K2xm7=9ROoHePWXwYaRJz4O~OT&X0T}M&lH34Pm#5zr8`(&;YF`4Q*?a9JVjU zkGA6mN1Y%W%vpT7W#HrmST}Nk{OX{UU9K|uvn}9?3(z{-pi|A?@l{a_d?QtkNqRr> zr7^BnAe0*EyQQzCFqt;VjLJ*Yk|YY#-HDK}q@Hr>l5N|Dc6NE36;RQ*8G#elIBvRc5c$4} z%}FMu=(couT0+~vzDRJj)+n_IZ>qP;>~d%z&IMF3pVMYwPf{op%nxi?56X=T*`!st z?x%XlN@6J4cn8k0;S)YG$okbDgDXJzc#miruHPjK%1u7p!#!LLST(FSNvk~}fZFwc z12K?l2>=eRmg5Z==wL0e&;xc4ru#r`fk~HmAZ?T|26A+56G$NNKvba7*Q)E~!9bSo zb_NoxX&*>(yMmG4jUL#|8*hv~eYD9t2<;M4es>}F8%NkvfVvdNzXu>-HHvb;G7NiJ za5istKL8F-8+ecoD@+Hfys6KyUyt9u@KbOZSrj|u-~BX_jAby4PafGQf@+v>)dxZ0 zMGZ7$vq?f(DhJY3OkH)qaljVk(m@wb!4yyTdF3cB!i=^U89pZ=Ab_?^z*MqHI@~Qd z@MS+(PP-rXp7p!+wwN2$PTItFadz1lF<;f!t`1_oBbMXlfvY6v!|2$(l5ggZNyi3C zZb2~-Y%>FNyV(dBfOH}X-LatE~Omex=Ch>5t4f{V2W>aJzdZ)Pd za@2<_o>qCdouS9Ss)jL$&JaDLLiAeuamv3BLg{P{_%6{*p9A2SfjpKW(IS=VFq`v ze6`*FbcgY56us&~HPRLQoI5zVYly@fl5c@w8t{G^4x2@NKLnWLo}N;sUykt$yE59YJom1$X<9O-_fJ>Eo3^oD|nzNhDY} z%7L7h;_47D&Qp@^Mv63n8g|xWQJ(xm^>*B-9fLb+;k?)E+y75tE}qZpt<}1!E5@$p`sNpT0I@h0im|okJ8?82l3K zW?b$H8D1_WND)ro?J15+?$~qt6ThZSHd}?0g+P~cp>$j|imRZ#Py9*OC&+4sS8?<) zC$0s!mVd%OtNTViBMvzQ%( zIQ{yD?S$Wo)UZ3|LAi6kmk^Y{(SA+$yw`YA>(y=wtTiCQZv=$Zm8cD;=o@MDD60h; z3M{UC^XxSn59+C-!EsDuo09G?XOVY~2Eyx*_GrNb5CNTzw$|vz|BkAG1}7l%>mU&% zb+G6ur`F+|rG7+YJf?(twz*PGeS9K?uI7gN$o)}vo6hp1Hl?KA=rk-}xlzY6HMpK* zYm2skY75>Wfc}=Eqm#YQ3E0YXZ`!b|4DF9b>%kp&4@Y+5+zyRX%JV-5%V9x>Lje|c zV1;3Eli?BMZ6Sa4OZO;0oMua&Q)b?E8F6NNOGSR?T4nKjk6ZZ z5PO`LLD;Uc4Aco0U*;Ub)W|1q3rix8JogXDgyjZ#a$QW@oRd2k>xS6$7D)Ukk^}^j|Ak{s+vDA8^U8VOF_sekr;8=(vN;x3z4k|iJu$U;IjZONeq$16 z)d>qCW2^53?QPiV7PE)FXr}W4hPSxm@WZFF+?F(5c}tMpUyDyC%ZN%q82~BUb~0U} z!P$eeF9OAA;r@zWQ!k!`)XaUu$~ zvDrMFX2Wv0bAlf{+c;oLiOkr@kX|3ao+@r-VrN!=nbSHe=q#|)CFOqHD{qqF4oyHu zK<4=|9Ld$`1fwbWfa9OL5h}Pgjm>qZVjK0u$V&)(TgIjh1g0A_(9Q`D?+aWRz!n>j zaU+(DB12&98;(Bzmx}?O}xIf9mC!26%rfaV>6!_Y<*c!n&)Mqf-2GvQ~z=ye|swiOL z9SzwTN@LheZ6C%Z9(eA(OLUrp5o+Nc8&-nQ;2bawkj1bssuB7Mya;#7G&yHAEgf{z zI|LRKH1?vg{VPAMDU-kH4@Pv7#LsM!Y`)V&qxh1DB>V0Sjc-dzG9^xzVJ_P>>+bPB zZoJAa@V*?Uv75x@HmK&t=sLotsGq=I18q9f`4vMyLu?)RlAyudd*?2Q6*$_N8jzb1 zxi0&0aA?6EnETapH&?*sT%R0U#(G}H0q9AEn`Z}oMPJ80F9~Lc8&>t}{Sup3LX0%) z&vjG#xqrS7=O8Fky$H3U_rhs>lOg!lA7rCjj4}DdBQJIGM^Cv8EH^y;V`$95k}}!D zz?idBa)pCA-cR;I1_u2jwalWVb32S-dxb_K!GqM2V66j*xK^+oS=QdR3y;78Be-oX z-LzkD!A@KkEJ81ela=yGOq@^h$iHz3=y!nnZM*&*P(^ag#-vZ0v06-N)0QgZRKBLS$gN`CTn1LA}&!@X0Z`PJ*jR z@NfY`aCabyHO03rgR3DC2b{ZV>g~`3ev815L4#w0_KRW@KqIchKuvr&W86T~pd0Xa zl;kjhdqsKdXDDojJ#eQ2Z&P((Y>c>y4&ohC4Ztb4nm1%|wox2(z2Ieyxd_@#LOZ{4 zbH_{bk+h>lY)mMx7cf-JybQbM^b%}90p!5MO+P)0Dd6M_X|QT|aREo` z_H)U;_=e!FRBt3AHPAaXT!%TV5%7Ae{F(j(aJ({3G(FznMO*w&!kQJBxV#Li6GZkxE8z338uC9!;QqR+Q`BpcrUzkDjw54chhcok44VO_<*mWrTKpYn%)(~mU4Yzfl+f90F52&1hl;_+%}LSVa_&-j49D>5@!=;3c8H*;89=E7O7#J5C-7pbDecCaL>WR&A|GfCI;2Ct`zm<3=7*6QB=q>&Iv+O*mqh?2reh zC~d)8*=rCCw;Hh67o3pB6TbtFK5=x(SZ0lFl{jO|4r#amiZD4K*kY&fQ@4y>8^WYL zu_U*k&E>&1PeyH}KlzLOCH9282|Z!Y*n*bg=-AQnQ*^XURV&KkY$i$%x#c;kI;Q4W zib^l?$di6A2T{_*R!N;CdeM#6kW#c6u=Yrv;^wzzW{eMsa7NR`q;In%>vD&n3&YXn z4hy@+0kZ6)-47D>6qhuoqLd1vc87HoT@^rzWjj)ag;*@Bf=+UdhDX*WygewdgGS-+ z=D;kPcwo*#X?&&t@B*Yr{|mdPV^1z4H<0Itfeg_ltvm205d0`Rx7*K%k1F ztgOPD{8)|jEvQA_vYnZz1?ICBOC}AKC|gV7Z#>AVt%zq5t+t~yIv%dYvj*dSKI*a` zCNq~^WAjG`M8&LEz_L3;;hm<%Y&07X@<+G_o$p4eE>|E~51+_DD#bDd)lAid)x40v zC$B0rs%nXa4O#S(1)34`Wms6XD1~GP_!V z6O}gyPzP*mAA|j(n2+YuO4Fum@(E z4Q<0TrD|iTS%MNnfJZgS5ake|X_N}e4Czh0Re72U3&WpQ0C|>8we-?4^59M;OShTx z1tKPxVaq!~Om%{@3Y&Ekz=f0`>*~a6vFZZHbO9R2kmEqkNCI1qnMjY>Uk@Y_w+nk%PU^HfMQ8 zIoTQkzIIn5fRf4K)S**#N!hk@5OoL#lZKM7a)WYf>)K%_3+)R?XTlI89TcDFzHZ7@ z`yAq2%&iP2z+$S7=ZYD*N1!V2kChkgmD;^QDe*C$(xy=R zO_?}_bplg3*;=+A3){z3TTy#%u1v2^`fuY6(|9QQU{pC-y={#W@;%9~^1~T@k085H z)T+*lYJh7e2xT5RofL(t>TRyM5V83JMNKEJ{y2l%(lt4y8{N{rbzx<*36{r7(~SSe zC!lHrsLAzb0Ry$`*oKvUoiD9nPI_<{UyJQ!21IAQ3*IciBRSRHJS~yFNsaa0rg*_l=a{#dVs#uwmMhmzF=8ml` zWhVPrNG=qc!e(w=4wlSMFs+oVNV+P7v)z~rzlxGeOME9NFb1dD)EAmdofgcu^?e$Q zSKp_?1ofx+?WcgDoi)vjV9Tq6ITf})IpwGM{mLm_em*F~$*NaGl5{W?@AT5>Ur_3p zKuJs0+>(~|W?Gw!+lAl^t{Ck&n;9zt=?T!^%Q;pTXLh{FQC=HWO)@gUJg!l7T+N)Z zHT@Pn7<0#i;kWOVgCE128_heWB3RSw-L%{~9t|fC!yfi~Zem-^8Gz~c+LW?{#oJ8Q ze2cR=*5>5mDDpJRmKu$tD<6|>T`Qq}c~3%T>=G$sKXO|z$DZNkjD~M2{91v&O$*it z^zc|t6Qn3x7}ZME>4Cg4?Mw^S474;Ow^pF7*<*QjREx)t$FD1MIpFx$g96<)F5l&|Jm` z+CO$pPEJm{b8>6h_D1o{{Lv6>t7FEmLfhpcXrC|D)0F0#8qoW*#@FVaR+&AKR`*K8 z=*^;?;Mot;a$N8MjnmG z4Q9=FrSodxTZhkVR<19bI|n+SE<_(YjI+?sZ;TMS)VQ?Jm{0l>2JKA;))?bl7L)F-g9x*d zma@HAhkU!2;LI4EYscLwvKFW*;s_*R-5S_(dx0swXAKyz|6`{kfXA1vx#)pBTnEv`L;~?c8!s=_cSue7UV;DmJ5y z;Hc5t;b0fRuJEwqa(t`Q;JQrx{tLl%#8x4bT293ly~pi z>Z)x#hZ$X>v`=+qNGn#oSk_TKcKrxSAKQd>#!4akV&37eY=dsrUM#k_z|&PrFSwje zbGyEvYoQ=||PCyr_ME3^AL>GVKJ7l;*AzkUU*0no%ftCp=f?s<_ZEDeWq*(~m z8*H1aX;T{XlbP@uk#7^;1j%oO!*dfH&@B>Li<~CNyeZj)cPqFZn~0^WkV?Hk{a_|< z#GXqlB%V%dtUTaPR2_i4(o=wi_W4x!%TI=`!LD47e1hmN(w6O|3vThr7pVH;ZIh1s?>v?r2k=KJh0h5O{TOQhve41LE<-! z8j_Xzr?0Tc=s@M7s?2D`jVp2A??fTtYM89xd)HqZ4a+3sBZIEUW}zAZ zN-+H129V}937K``E}HVu3s;oi`uFusN!$Yh;qEz}6i?p+sC&}>P?=q-v{WgoLuV|B z)xk_*Bva!D&_F?@Dt!rdGcgN=;fV43AX)>q9pc5{fBk2ln&TzjvY*xjX_ zyB>H_&S@{v_rqQ2(Lx9&o=lBSP0V=#@nuI>ZxKr8)LVJ9^Fc6{FR^3iJF*nb|SxPhRi#h?X2SK*I@~cj3tx%IL}F969k~CUeKi&c5I* zu`YVV=7C*TzEZ}AR-`Rsx>{Wg>Th-{hw8Z$T139<+@D6~x(6GoUCqdy6Zp64o-FQvs6SY(5#PnGWpeW-kj?UO zTAZWW#kV-Qu|b=jQ@U;@gDzO7(!Szm808dvaC|Nub#Ap|$1P~kI{j~4CUGfbx0uL$ z>`HEB63@4Z6v*gh9xVeZ96bj^@FaV1&v7)0*6_6kxGD)%HhR!Rtq{NEwO~&grJF`| zb_E1hCrL61SZelILT*Go%iQStEbRsRPa)ql3U@PG^EZP~goQ(`qf4Z(rVY<|m2$*m z8nhmQ2ldp}WdmoSlz$kZNxDIc*xz+i4z+x%D@P6l^(G~VgjLPJHN-0Maw-@2?aN-< z7E0ValqN20l`sj3J}O#Dz6nUbB{^SrYH~FMOWDmL?B0dBeMMPq!d4coe>q(F1!NnP%bP(;h*H(`@OM-16l*#5rZlo3J`sms>7IF~}(u+kiH6+MaCNcGpQg zcKvG8M~lwUoK8^7i)^NIEZ3skU$O#1T_PvsV(Wk*wW(!f6W${{Xi8X~-hu}48tJYo zg^+VD=O$AT969QHj-i<~UTQV8uDkk6f5uJ&s-OwjHtwUR3Z6`0m#?~_ z@u{!R7sN;zHbc78*XT=GuDVc5Ruw@t_%zsBD{50+DvGc=^5z*+@OHp6dGo=ov?DIW zNOS}-wv(J*o(rX{$svKr>eCNW@|WjluE49$#fNZWvrZpUmxh>N#o7=_Jv zbHj$GiMgS(5+%(HP7Kw8fvSAFC^id72OgE2XhB0IMOt)V8Az3jcPXcNZV}M&ZYDEE z_qbBs6nQx^(e%?WgVR9`2ebU$?qZJIp(coic+y-$i@neiFI11vRyfm+t~N?maG|G8 zJRN(sZ|1DYNyS~Gab()ab{x5kQx!)|u_v$eNeT~zsMw9-t%~)~p?YFFPyX2~ zCd^{|<(_=xbVgU_XiAKCaL}wAP1{@?)TkvM{>pH4KO7f^?;hv_#`dJNT6&Z&-P%-J zt`88ojYD3P#mY3cG1{$wWrlaox?9GO1_XQU8^{wam+WHOwn2VKfO>>LJ(0k<@rfv9 z(jT+NF3nI{E3BaY2LiDm#v`;fO|3aQ5#sj19R-orn!nOh)YTX3-_tTB77|2ab~|bi zD+a(-&$CQHU+}D?Db1orI1rE zu-?!eSoYWn)1QVN(%HTZ=${VHQLW3UDD7Hv{4&0E*o+=;0cEJ-lzDmAi)$vQlvc03 zJ!C3K8`|K+#@fARGObgV(^Frj+~2F_86~O|2Rn;;=8q!Q1LV9Re++VYCMx+Mj?0^rU07-3Hw>ooC^96(c8N#rVY|VFnZO5*W z;M@{nJ+{nQO?TULO-IX?=`0s))z?f|#4O5%)Z>bSUD%NUQkWm@+|3&$e#<8Pg%yGX zo1i+O9B~_rYd_`tdQYQj4)!Xz{?mzqx{5tg{xFMpvZf7Olk2%U9jSUUA$Q$t zO2{BwCxNrYKcXj82pcl7dVFZB(V`uK7Qkg$4n1WLziE$HaDYvDF6J~7%`Bz`ORbl< z^$MFcxp6f#X?W^sbgpF?=15YPTd7zHJjklNM%0e6H(2Fb9aAj^2HW-hAG+@Msp|Wl zs?i_POfPPkm>tn-@DZ;znOVUUGA4eq1Fcd=a6HUxKc7rWsikh;2E5!A|7@*gSNNox zkBLxeHr=)~1FBJTTo@%=V0zL!jxz%#^sUj0wi%w^g9OK+q5Tnb6;KrXeO&9_Vo7xx z)8i7XOC-t6I=EJ+Pz3C@;`q)MRnOcepfw4G$B`XQbxNMmZ0NUWitGgj6Jwhsz<@9u zhz@!8S%6a>9UC1WEL|i}v@sP2T4fwQq*SdF%&7)=C?j{BZAz;_Je@#jN9vk^uzX*# zDbX_2vL^i}OE5K1)U&7OJb34ovdE=7$rQY6O>JZ~h!RHCq&*=*qF9v4DU?6Xy1^?n z7<$C|V-*s5qHaK7D& z@=62xgWSF0a=R4JT=8XM??%l!4g{`;pdwG{)lTD~eg7B0hwa;sgSh zAQ0<8>LqS!Bw;FI>8qVke!`$uMLd1269Pbl0V0;ZzA&1|N7?j^PGx0bEPXRkDTMzl zmcA3E2``M?mz~%;zW?mL5kH6VYY0f&N1b?PH4`(MxEC+?8YK6^)?4pV8MVZQv>!xT&Zjo_T+$+>|>}gl=;xVwtOLlug(uD*)s4 zJvQ(l3GuQcu$l1$Gcq>7l$W$kOYy98Z({zV&oQuZ8@@`6ES&6jE$_%4}+ib!k}JZw7`Ur zSZMO1_%ED5gar~#G_N3x@VZDiR1w?l6c-oBt0qgwN49{Qqw$fg5fh4!q@q=o zg@*CeB)66nWpn35ibKT`L-)_)@Q@d-L4XXLz8tabh~yU{oL7i!pdQNAXFt%5Unbh6E2QtX2dd8vCN!UX0|?oI5;lzi2Qp3`BC&f zGec28SpYy;dCn1qktra9NSz`n8bzr{I1kvzdZHn)w1K9HjSLrnQrXiYfYb=qzq|-D z1cP9f8pq+-7ZkGq#h2OzScX{+LeMe14cAK*5OdFY!65a(MB3u2xgF*V%b&5og`Sfd0{t^P=TvWb%BQpBji@Crx4Zx z0xR)dq?OoLDJ5yr&N{ag-@$4p~L=$;v3BrdUDpQuuVFk3hmv6*d@h0c>Anjs= zMNu~(5bKFkE;8qG^tXm$>8IkEon@mFN&=Y>3)Cxj_(pRFfjuflqhM4=SuPdJbU|n$ z6kSXv5E49#!HX%;QkZX0v$7-%K8d07uu}kZLS-6^LCRegl>`Vlb%LNk_?gASBi$xS79g)F)h!S=%hpe(jlp+R#}pO;J6Wr zUuGZJ6i+H@F;3YAiSw~lNFa3pOS^_^uLa;_{4(a!Yn zu}O!MnS%Lc5W86BOjO*Be&8KXe>D`Xl+?>0$MNAJjCN%l_zceoN2=oKo2*REj)+83 zG=?0BB1gprz0d`RFOy47j zgO!0kpRp`vDKaO*(KrkY4Z4{l>y_{G!0NL`?kvN&Pz|%R43U;bFe2SE^TQY_AGix8 zdjQrS{`t}D0a!1QQW!*>E1!fW5fdp-CrkndAy7le@hXNnBsvHBg`-7MAQR>gdJby` zLjpTf=#@PHVuteYh(LVJFtORJ#Jz|hAk2{p$LGAAoik+R^kdYH1rbziWg!zF$k1q!3#Nr42U zgsHn;#Gn+0^O-}=qtV2{0+E2aL_j1KD>u`_(TK`Z#2u4RB!V>+7n_m1NQrR=4gyyc z&acAUM%fb$2VD#34yJV%ei7z+&f8U$wg7e2$RVy=(NqLhUlr%}s)7iN3W~AJ@=#CN z0&x0YqTr^gf?|_bRZtlp#w;3!B0^yix$IS(X0tJhOZF-XLMB#8%@4H_HF=!9Fg;1N zxXBlj5XkP9gjf%l5H_Ma)n@)ejrhDYIXMBnE!22kl{C~()`6^jR}@bcizlwbVLd>& zvZY+vP#*pgqQGWLX;X~+Q1lz3MTIcP6FWjcYf{%#Wxf zUMD@{GoG0qk#$oBl%q1Olr;uA06i;fb*XTRRJcXLH%a&=kOgY~h>#`Q2(++Bk7bt= zpUgwF3J@j&_et^lSWZlCCpPkPh`kfSy9CyLwke)n9nUr^pe8m?7K)Z6s2MaYUH|ng zET8;IUvpGcG+a(r@r(jZi;YR4nGWgF>|!>eK_DB?epOm}UT_(CQIhV8gRg#H5YMiU zXNTk2o>+Ews6r;N(W#h`Fo6>Zv4sl3VX&cv$U7nR7?Ss61x)J%$!ha(nT2_|m{S{g z3hA|^>cCj!M9wX>Ii5)W3miV~2aDZQ2|V*4ovia&yiKk31Ya-%Ct1l^S-=1^%n zG80oOEDkZ??D_&wZBY7+T-YI_OO_JWp^;OcBiHIN!cWpUVCE07K z7vlSis^Y^{vHhj0A+AL_=F<=~jjoCh%ODm(Uce#{)pK(^3rhA%sJZuz_s?v*ctl_}SPVSG zl_L8yg$je-ngfFClo>z|5#a{pK>yNy<14tRlZai^VIl{WYu%+CZ3LYeVy-GI(r%BZJv%!DjVvjbJ9+zZ^{>1}osj z66$ZaBIYw>c~RH?07P(v2SzH;EEl>$`@MFXh6h_!F_=is74Fj-B$ z*97t1Uq4AObF*RIDr#<=E(}$h;F@^$Wva+wuClT(L+`21dl?bT;@RgpL%DACXk`S1 z+~0&O3?ceoF0JGinQ9x$O{Q-n3!(!q=+1wTeOKR3K|8;O2PfDPJq>=lF#p&=0MOo% zq(pLdLUCLP22g!XW!Fs6I=uoVeU^7Tt-9 zlqCww;jQ+kL(EwauPXXeC}y0k)>p`q53Y}R_M4!v213em8X+TUNc7izvCMtY1|zG$ z_R#U&{xk|Q)&kPgGwEr}E< zDLJCl#Md=az~&mH6ulT-Ckm!X{NwLZ0;qa)ckxCSm{g@YsR0o=nRi(Bj{gp)5 zb5be`@=~a=QmFY*X_>6ouolOvN}g~DlmhQ~=IOHHLd*?lf48HL;&8qjEyZSs8^oLu z#R{yL9FvA4G9#WAJOMpE+!daR=>Sv3(?D_#*Rz?~=o#&)S9HrjpPH7X+048b-1iYT zT{Sz%!hf7|_|KMA2qc(*bpv)+N@44xuH)Q{FNP z?!J{wFS5e~Dxkpr9&~;Z0AZljd1;#g0SPc`yoAgP(!vW~LY9UW2SHHuAH0SQS2i?fnWee8u1VGCG#=hCW3_+7n5?NF*Z`` zPU@MLVFI%YaIA{)NFQZol#?J#%;Bo&G+{dAy8E}<09-{}$Z^D_H9vrX9%-BeQv*r5 zPfB8P_low1?4#1IOn(jgUg@u$3OBWGva*N3HvL_+EB!+{U(*lKzL0%cIH8`5 zr60xiPN*;x=bo6|;uptXL`)GvqGzTH&ycticm@D_MP3Uf39v9?RM(=H(mz2MsK*e{ z=2_f^#m1L?EZGn}#2#T?Er_uW@KY#1L=F>xHeA;7F0Kj5hH%+TXEL2*(k1N-?br09 z@_dpcc@o|;Jl(E}NpT5!Dv-XZ4iLULoauvQoUeo?YzY1lVPQ#tAHNXp3UmYq8h{Y@ zd9^4keprvFerw@L;o?ZV8yi*lCs^qlt4fJK#CI%HAIsFDF^-Pp$l4$M#pJ;>DaF7K zS-jNkA8Te$quG&ph<1LDD6v``t$@8=k3D9>&7QUd80h9E5arIMwk)7*d$tV^6YfQ7 zYcanya5{H9xt$6FkKo;u#o@5qgoW)kCGh?5L!_0WaIj2x!{1fyfrkd2cMCA$m1g9J zHiuiQeyqa9&TB(q+~obO4Qvc3o& zRI?PJeZ~#7D=WiAoG7AL?qI8tnjw9qP7}Iss42GiRXjO>;wXGfxDcLg=@Rrj2*Bq< zu$N?K6}yJY=}2e4k)hq^Rt?F3#fa`GTBb*JsRZ{`=4*Ly?8SNnEOu|OR)eDg_F1W) z$7Gw2GY(jQiUqS5x-&MiSHc%d_+kmCC7h0`QCQ5=|`cXDEG1Kb<&q>1k-Dd$DZg2MDWZ?F!Y(AUIhhy2D*R1zR4S! zGIjiX>WbL@_Y2q?1ndnGz7AMo$qG=Cc-<`cVB(opFcOB2&#UG65GI235%i8@iX^^} z#uti}xGWxxWpA2GZIWsA`UV$<6r#d|ZjyS~zd2}odW)?bie+!%$~t?l=rz3P8@Nn1 zbh13Lf>nGxyOl-u%WkJckcznr%cS-3k(*><%bpu|eI?l~>OG{fB<_uK1^yOlpZ(l2 zj_*IHZFRXz%gh}#mm`(od@40sHX>Z0gC7Rj;@NxZ!zJkEdGTxt^qzwhzGw3d#?d5s zBMJWZ?EH9kA36;h$J2-7365Wt6wa=X?Z29?c{f4SDgdckRfsa9pb@A8+nBJFwhKpg zFPDP6cBOxZ}e`=+<_2z6f=8auRY~x%8sTd}~MU z`^w4NspP@4qq855LvO@0-Q(pQ*1Y}W<%zFuF zHu6Pyz9yLhSRC(g?PSSq+37>O`|X@4X#8+Knja}&Iv^F`}<9OS8DTW1p3TIQ#NTwkkDx&uN;leo&s zsl?PW)n#|Vy*G|Jv)!itf?Kdk^xj?c{*6|Axh1C`i&4iU3LeRDuNPy-=WID?Bnk-f zp1EH(|1jL#{L`0|;ozf!B{*89s}D{NVao(PI&#j5Ybw}hbX`Sj=#+*S(y-4S!ao%9 zyd=TJ5%3VtrAsV0&}^kB6$GsWEdc92QaPQzRKW6dfUORd$aWL-)6=BS9^$Oym$QpK ztVDn%PZZ%8i}=P+@On|PhcNo6#He8|%^5l!;ckgmV!xA40iNyRX%6}+80TTjB3VgY zA|d0Zu?$lH1BBGFwDDX)k_1th1j55+;({TWT^9_d9j(RFYOIBsOA_pRga($@!q~Hx z%nBnFu8?XIga`cMBNb)%6F4l4R;3aKkja?FM`j>UEPJGK{F4JbQb8-jml>T3pqzES zA33iA%F-1&Pq5MlMe~oa*FYQZ0!e^sMn~M5+lh%daY*@*Mh?eFEslHP^h#xA5srPy z{xVMlVN;|Wf&w~{_G%u2xk+H!nshhmB288lvRosz?21AXWCbB1DtwtI_3T~{2BDP- z%ULT_Y^>~FPex0)^GzEIy9rhw?A1aS2MWPC@esEy{6ZJY%#lq8Noh%uRsj1w02cCo zZqds&pzQsjQ~Pm}T+fs8kc7KK$O9EHP>@Hz6E-l_5eL(V2E&~?wZc;B3df-5Z-5#C zL(&Kv*CNx5Ic|a3`Ua~=I*6+8hxo=I2=7V~+=zIi$4I3BOHBp@l%2#`WJK-514Qh3 zn2&eL$wVT>H7}BYKjyqNFy|aRO%)!JwRvScN)wYdv96TVAX}zA*>fUi z!0ZjIoW2YH6so+@p1jdq8Y-AwVbf~Nqv`ZrUel;La-Hl7aZ3oZfe+TAiFYo=WR3w? z4+!a@ChdbVxjzV>1#o+sJH#LzpO|$~!|Gma9KyWdnSdxnvkGT%>)j=;J3oEZvd>+| z0Thq#fn@T!T3-*z3mywVr5a!|HVUffh(%xZ%_?#hMk>RM2}bS{jvcvaOxq7e?s&(x z_r;zpJ~{I6Mdg3{;liJvnZCiCU`&46n5%GCqA-L9;+tEVYE3>|y!gN9!Y5Ds)^9)k z%NwtmyXIl1uw`TFN59<>{_Trh=bzmE)8D55eNKF6r}MdAz3;$p_RidW`#+Ulc6arh zvu5?*@yyR2T0GeSN`sqROK1HI~u-o z@wPADcS6@+KYsR+&#d{x17$xx=YyL*eZ?hD)P6Jkm%8^%|K@Wq0u3PO;1N2`6zWg; zh1QtRT2t)*-riLICJ!$!+M7m|ysM(ukroCnAn9-Ey)Ag9a^hlBd0&k8?0CJ{|JqW1 z7jE`U;_Vmv$&84-Z#`3Qck(V+@Rpp-o?^3uzZn(P?+MzA&VZ#~4~W>pQ*9vk*Qzqb z_CDrzT&nqh`$wEY36npa%t9^>y~BhSnYiB7;$=7cshDGw(&K#rHqL9rdZ|yZXbu|T zpx`L)ko#8pEytO!{T1nZM@;zk7fF@-Kb)JNb)# z_r%=%J9nHlHFTmm{mr?jc#n~I4FY~Kzx+&F^P{- zKB9a~=A(>{7$0#y%K4bWM+F~K`Iv@B!f$E(F9JXt>jzVpzOkXWuT(oJaaL-8q2)`e>#A$3Yfeh69PS<( z9!M?kO$`qXB)d;aY#MIE&$Huq%;opRm$%g{?yT=z)>&KIQD2i>oUCwKLuD)h!iH=Kb^dR%fgdAUy>tsyf5p6Dd z=v6o~hT6Jhw&(SDXXP|*0L*aA|nI2 z;Z;fPgtVKP1ajbpQv4MBtqK(up+r_LSY+K}!KmvHz&hsKz(+l!=dpu&Fp@hW>bA=- z#CZwn7!UZ~5n{o;ta3dcH-`#K`96Wkm-Dfk(OQPCVd$HD5asMJAGih-%kE~kfs1r| zWFCRr^FXAB9N3B4CV8fZ1>Dm#GZ~)vRE7|g2SzGbZp>kmI8$?v$`Gp;?Z64XvCI?7 zG^KXHGaQ1|L47%<5SwFihqJFD)V=*-N$k#+E7Sjnrba zy6NMwI~iElln0`^Zb{#Tvbgff@xd+x8$7@+Tv^7V!DIEzilH_7-7L7Dxc`bF>Dvnw7oK!vuX$XOIaf&pt1*Im#T|Ft z!b8?|>r4J$spNLDHG@HrXB|sp|I5sI%6B_)`ZAZo^K>+H= zLXGUBd>q0aUBHWGo5&tQ=EzAdV#?}Ehz@0AqynLl83avN3{owjzJVk>iTzu=IrHQ=QI^N8~sj`d%w+?usAhu5KEx?HaB~G8HUL}_L=fuvD`sc`j zAl+*fcUxwYy5OkrvB`!jv~XBq=dK2>8s4Q8Xt8zTB9u8mT#NH@_(Ft?F7qB972_Kh z8oWeqJL5Dx(;3v$ry83Cw-D}Y6U~{1Cjk_lSP#xUY1hFd%i#p!rB$Jf?7xzkG+Vs9 zq!zbrWOLR%MIdvN^iZd%IK5%H^He#=JvuE6r+IpRY;8UqPHV-*vQ}Nn*ob+G2i9?6 ziC#fD^nnof_Tkx(+pR*x^yPYdpVwW1a{=IF^xSk0!k8G9)Oc|_4Oe~CFAU{`8qqR4}_(!l(PhxeIXnSq$B()6xWva zl^8nMl(2BaFz*TMpx3HZmFBT~iLb}JHSeOI>(Qw$AuwX5~vLM5z?HB0P`;{F1G8DLG53-g?0}l$s2VIB{DyRox zzrZI?P7g&-0Hre1f!5b__Z@SV9}&4hN*t^>s*pDSh%h}3A@$ZXln?ye2A>dyO+N># zNKkuDP|H_r^GRBfi21&7%vZSkl_zn47S{;U2Pvr-#)A@!A`t{YBD4XL33V^oFgCs3^H(aSOQfAxUGc*x|qSI2w_B_e!MUyYfuyE zKtOBu2sgceTUDE=RK$l(h9xiUb~g^vGDcwhPnMdk?^nwMl~UUDh*k`4_v@qjUJ zEP!#bjhTLx*BG%IejozXC!dqRMNOmuH{1?HJ`Nlnn2Mw$b?N|=Cu;13zQEu{IwAKx z36+h3V>29Y)IF>(Xe`1$j1k1I6OaLTaTOHfRRJ9SX9TZs0!a_yd=}cz{2Zr%GQX_k zz7mQ2bF0$9nsQ_W)VD!ujVfY`3q3%S+JoVzh*B)$~#5efJ6=GH?w> zj%Be#zGy!;k%|!GjxFN!K{N80>Hg>4o7uOg$c7RRk)F84|@z zT!c>nI1$WhxIc;4OsBXkFHZt9LzBw#^WEUgyl7cLfft#XUshIF7>Ld+h?l`NO#m}- zZ*pe-%z~MPQ_8Soo|`l?TmrvrS&{w^;lZ6q>=4PNNr^=uN<~GSYC(X~8lf0e0S-^P&z?Jad|mW@NcG>GQm)GsQ-&N{1VB4!Mof2QNR2^2)=HcZjcxM1N%IQeJh zm&xun21NuN<}3AhAjVcujwISjATmp>L4 zqtG&13b#gW5r`!~p(?N2$UVl@Xh6caFw=}Mb|_)2W!J;Ff)Pi=Y3Bp&$<#uDZix0c zOhKds?-#)%iCneEfE7+i3YNsy-jX2tgfsO~m?b<~uj}raG|zOUD)$3NSw_dgZ-kOL zAN*iB+CV}gQU(mM9aAFHao*35xSg2FLtN*$1vCwJ@AKyvY~zf%jHh7yQXGKHEvO9h z0@Qs93ik;RJC_Nfq_EFOQm3CZrYXSnFxK7f$zY9$gzOC)d|&~0OKBpYmC*<|4D}e1iPa6D0M3;_ zFhRHU;RsB&`A`dv1kgD~g<`|<6f-fqTiVPH>+M(>qSN5h!97MAXAv%H_$3)GAED^6 zC5-=PB)HSZGp+|j@w@pzbPBFNj!CRYU{R_iL0AEWq7^O>ojct0P+6it6KqNB>*pqb zj$mzRpBW(xC{8HhFpX0CekxWN#My7gMiOEiBUo992-J9GG&;EkG7W)7gU{oNHq;>} zZnt?6o$MjJz&d;Z4i0Ki3E+Yhe6c9!oh!j;0$wl$%05(ijKN~`5N_(gv<+tBfC?uA zIX#|z5{!hkJPx-cAV9H^(>R(v<(Ow>ds#N8xkv4#@s5o2nQ6Kx!|Itu1n0~{ZW@P0 z)4*xCB!c-|F1+XgZ*JcM%0mi_FRlr2W{n3cfgO)#lg*yMGzK0)0PKxtnQ_@vbP^6d z1ruNaa&{4;rIe@bdHW;=MW1^MMP>JCETK#BDHAU2pqJygD1ia6;kb9-#9KIJUa^)U z$^r(SWMa6jM0Q^B)-ZPE!rK@4Fc=GR$-=;L{W|BgJdRxYr|qA;R`%h3y=Y{myxX z_}xF^cc1t5Q6nM^?#h5tja59bEb^A#v&pZwOKyPT9U_hu+?FAr=0kA4VN)B=) zZnn%v5w~1yC*r&lW1)K};{FB@qQ?yRL=iVx{OY(97yK&Oh+hR) zKgL$cLjTzo<@+vKd=4Z?6iXTM96E!ch5Q1nhwcO0WErej9 zujS1I38zC?sO+;RL}bZLOAj>Vongjt;0??VU4ml}vQ~*8o6%BIo_SPDQ4F47fP13w zkHR|&6aoBYGHiAp;xIJup%HWdi!A7V_Z(~>DZ**3CQ7T3SXQAPV~{I+`wr7d`btkE z2$Uz-XIt4wUkTZeLRaM$qBp`TbQKC6CuqLr@)u|SDMJ1Vnbe`{g-S<`l9Q7TV1ma) ziWDB$(>A7azRJwECM?uAZNt#9@DPoEPAF43MNDM$SI%_vGz}_%cSR?5hz4vhl@_zaWN)bB7?T>i&L3MR-GlSd& zTZ-Qcz%lM$firg_j<4&%4FryaJ)b=RGk*`(s8GI97L*R z#z?X3VBbQ-jEoa%VFlvaR@r3UJlyh}hwo6%!}N(jad@80SH%VMz_XVl8OOLZ32xg6 znwwvQsJb?pAr4f`wqRNcs-c!*yv% zCC3%cldptng1Fiw3n7Q)(X9yaa@}PSy32rX94;?5)h~@aBH=Rj13oRO4-Zsc1b5hp z!*i0I@AYQBq`rbDC59zlknj-!z!dr{nEtA*qm5?rT{5ztAelTTp+i+s;*?p(O4<4n z!N9ffnZ8%jua`2H%kvsZ8I~u>h0QcRVShyA38I(?h+FD5Seic%W`sveSO)Vr%PAhO zGTohk{US%C2xd<=)0PlQ%k0V4GfzwFWnMi@X#kBW%}c?A#ey$*3E7Ag!5kC>ZQ-+j z*%N?!r9eKwXZi^pUuqQrqtZ*bI3P=MQ36;JY|p5&eZ+D1xMy-Zqct@3?15zehQ8j_ zd)rg}+%Rt4IncLf&_Oxwa~P9pb4=#ErVFtXUA?jokJi-S&|qLQdU;Jv-I5yqx1>Q{ zjT)<|Sz1#k32uIUUH#%EwTo+6Qqmd1Uq@|yM@M^GUE|V*hPuZ3#fuw~olDx5Ep1r3 z6g%9hrL{|vZ5{RX^{JZ1RA*bVp|h=_A;m~-=d!li_V#2d)lrvf=xnH4+?i}lr8*aP zc66Za+GU;XHMMoA2J*ho?1G`pr4fb~@_iaGb9OIaZ^|SLkZOF?;DUkf7yKsZ%%cml7lH@7CWZ;JGUmrEn1yu>h4YqbnVzVG?*Aj4WQ8ld^`gOY z$3$zZ>oE9uR4=Wo#o?YMj#Y4?eOWQkAZFNgi^-F8(7cX7bj-hUB>+HnPHP+VD zFIiSopQ>xDX;VPj2C0*1S#<_ZV>77oU$f0Bx$RAhkH^WeBZ#S9ox1omCZni4g^Rx1#NDS`m8}9B%^!5!U+ENLOa({9l)sfhPQBU-N zkp~hM#9(z|%U~+e+Gi6ILw%3{oYYBOkP_}@Z5-O^NbE$bfYp(z#)!5!X1!PC%|HV% z*E(jUQbaUt3(oH(ySpwFUa5ZPU|+9N#HObP7M$XRy|J$al~y|D)CmC{4Ul?c&UVb^ zHv*%zZ$(#ca$w)8^mR;F z|1}t6yy`3a`f<$A>pJAO!7+=+$A4&G!d8hjtecwGt;jjeYmElOX6V`RYN_C@>PqhD z?Hh!u7+i45N{rQzmEhBpUEQe;&z$vOq6eECbH*D7xgI(Q)4vB0j5N`Zj)Nl^X=NYO zVsCCYX=|)ny<*FnG0Ja|cUV+!!#e zThja86RQD&S3^46Az{_4FF+5!)EW)DQc`BQdrlenn%lJw(hnZ32U2W2D^lG_{Low%s( zlG5Uf7GKh?_I7e`FxAu6z3=42MN2M8e_PjUZ?#UrpBEUjV{$vyuJV8mU{uh7*jte4 zj=lpALz3Tu9mtiMxmMTb@>OEqMN3Y`a;@f)!TG{t>H8e)3cdAoK<;oHJE}K14D|!Y zl)UA8FlYQ8B-*^ z;p%~bz5)7l#INvr^8P(sY<&xkPpSV!ottB7&QB5ZegDgW^(6U_q1qPwZs81-qNebnndVZZn+q?btd< ztZi-G)I#Sm1L&qwVGIfOBnMTqV}B+6zZ^65E#KiYb306zN~#0y@Sfyet3a?1WIGIh zy5)c|eHUvM{mx8x3@;eJ)%ZGBG6!3+;pHx}2Oy+y>|qnkdV0aNy`5b{eHV0rlGTaUef=p|_%)X-b4;DO zro_J#*g|RHmYcWnwBVGcL1v1N7+$hE$1K!(M_uI|jyXBt1#<^^rLM&nsN>VdP7w!F zt{-re6LM7jrh$Rvz6q+GuTS-0!*0U*aAGz)X4S;#)6KTAw|id;m1}Q%>a`%X zJLWwBNS+(`^)@7$+PNJe8x|{*?K@Ml6{xQJvy$DzzCR8w$4eZu_aD*5=}@q6dvpR0d|0H(Wb~~o~AK$vyB0Qq29dp`vE#^Aq-PpKJc6y9AI_90P55*l@@j|xr z4G*-Zc$NWstP4&-10Gi3nKu<4MiqO28~%^*!`5$4GT;b?=k`s92|D&WX4iOlj<#$#)rj-N+pFdXzdPmM%2apxVo+J(BC;a!al8SHktw_!uP zChLZAYS_C^8wiH{61cJGU8+S*L}KoWl@a_QrOaKIGa^MwU6&lA9(-cx-pmnrS@>sf1YEG z*KBqAbJJmEci(V_$b6u^BHXra9!m8DtH|Eonp7Y6&#T>cpvqJ^{}j#VQJP|DWFc$d zP!0IQ*jNZe)wl)U0*uz*#COp;>YgZ_Q8%1G+uhlqOKcW{q5`@{bJXhe}4E& z%m4Pa8*e+V=UrD0&Un{jKYjXF7tjCh?-%^#xex4{_wlDrc;D^&ZvA}txl{gd*6*J= z@SU!2NB^?weK${k)j|J^*3|2g(a|3e>T%V{p&TamXlkjD~q z90dQ{+_I`=%ICg%*Qw5qGrn;6!9!=yT6`5@EZVjxIWW}KnQR{#T-4WgzI)Du1G~sQ z548wKeA*GmOo7u?fdbY29c`v%ZBt$SQsct@(C=K>#DD8QFZz1J#{Ro{o?X1+i@?$T z_dSLaHkSLoD^SjuZNOtyclY{aSFh}DSkzf&wb_hNv)O1iAl{7U=?L?`L;3&t zS1OBZaKdTT^r=|Lkn%9>cmHo_}>Xq zs};FPqz)oKiOE$!oz0F+LYv1R>_B_+^8Hy|negxQ2J zKb6O{Uc7MzMyRED^h;m&fwD0@DlX##z+)LaGlV?W_G5zM~_ z=Ti-?JA3V%g?9Xp{t!{lAD3#kuPMOk zKpB;cG-8-AQFn*bBt81gKH-8Lpu!N^xD~WGdfHW^bd$hO1fY-$_^q))!IB?0>_E!~ zJ!k(nx+OW1#NX1LG4hB3#0%xqhs0jTEVmy@hfRRf2gt+ty4g^G3c>mbK-d5YYz0Ow zW|hIINBp-R^mV{f!TO^|!;VEY$}RwxE=4Q+&R-kGVkzGBc-G>%81H4sTZVUoX+(Y} z{%=Hy6rQ!HU2m2km+utnHX_sp98Sh2frFk73YB`0){T)!K(ceWB8UfZ`TzgDi4?dm zPqsJ?V`20E|NDQB0=Lje!V0G*JNFZXMJHam_R>F`hM}Q*{1Me>*U6>pf53kS)#BWDEXQlg<0h4S86o zh01X}FSPkXi$DL$)qiaK8HXsenP6RHof4q*-rACyqQX3UGpjtbrKPsKCdNply!dRK zwuPZT)Yn^ERug4nxEzPsJ9_$hJ8EavR5GQweEgH|wexD;#{9hUz!`BlFx=9$qnDoP zO)Hxcbv3oMH8ZD`*45TD;+jCi;=20AcOhDbXssKq8TyCd=i;9?0sb{v=eQuDFm`!a zXEMgxDGp_^6nNxUKl;d5UjFa=pWXheSuY*`g^URv_8Tb}s*lPf;+t!)0;yC0hK z(8)hubosh>PXGR=Up#Q<*XK_A(vfZTr+wjLpMB;7_bz<(u}LpHyZheHer0{4@QP^D z=kHj#sqG`jU9|MbFaEfq{*t~8i|+m4H&)*|*!{a>Dxa$Q@qgd_vEP0B*vFPUx#+>$ zUKoiU-thC6pWV9XrgvWa(2-Rie`V|MueI6X7L}MS-jzJ z&2M`i=zg~0BBys8Q7oR?D-=j5~m>tV+u32-_>YA0c^K0gkc}mIycO|?t`-AxW zA{M}XiOpT@eYI0-rm$#1d1>8ZTwOUDL`YXXUT2IisfehBY^=zH}vTCg5Vio;`c2d+faixu4L#tE;bna8dg} z_aa<)02hOY!M^0)ZG0@OS+=mIp&I!$N!w?~$=_1bQgfz_*Mu%z{kjdHTZ6CD#8Ay7 zB3|w|f6EWS(#sX*yle;?8qLeTc~Zx^(~?j8?6i;H(RNSfBxlF=ZST7Fl{M$qUi!%V zFHC>#z~+TR>mJuzy*t{*BzL8;-@a3-dEfHnfvd3 z<>_x6e&n4qcAWb4J!gKz`Szr{Z=e6m^QKrnbT-|YNNYPhmt*N4x2{DyfS{pqYnPWL9uThIIHr(XQX=bJbD^`&o}vEte3Yc5~5`}k+?`q>xn`Nm(;GoJduRp&4M<}uM9 zPmPBD5WZsndmnyJ-4~1BZBAW(&R1uC?cl91-TBkY-d+C58|U1ALfztzE?EA;>A$;m z%A7xKzPm2@*9#WC_~|Vt|9sbXe|+Hs-}_zr+)oX?8hYjzKYV8OU4_4BoE`g@FBf$D z=LMVoYg+lc_g{W*_eZx5tiN(k-G4mY5G^?J`PkB9pPAysH$MNp-~XukxbOXB-=R~Q z|D&w#mM7y~HQDfmmD&d~@AKK?l0+e~+Yem+~ae#zZ``1(1sKegi66L&rTu1%l6tFYmi{N}sg_rRo?KVP=%d-201 zM;g9!ZQ&i?Z+z03QoG{u%S!ikeBixTZ9k#=_D?on_x#THJobx!ZuxTYNe|rqlUo;j z>B6Gh|Lvd7{lWHQ3ZC!0;JLcZZ;LPb%@-n@e)N@9-`INi!Rox>FYNr|zxMp`LO9P`>BhtCs)ge?Pn6 zU1hV@pEd8(7Y;lfKlvNY?>YS9iz^R~{N$o9Uv%lQKRNZz%eOvv*~b0H{Nct$=l<%- zw=ewC;&Zn#S813Yd-gd5C7tYcYo^kSATv-=QHHqj( z+um(oUbO$;&c5!vZ||8m@AohEJTUJgCw=6!WgGAR<@;A%_F&Pv?>=$!%0)w0|Ec$t zy@_*9D&M;O>Q9`yaq<42-toV?JM(a;+Wvu?G4_35vV|h+nZekJB(m>i&A#sx$}&T? zEXht7B1t7nl(L6JSt`jsN|r*FgwT7&gFMgE`@FyRx_F zD2$wg6wEgL!JO^{o)SQY>+Y#wxN0H+s{Ov70Kf+k@H@=;2+Kg>S5G{mC(y>u7PrHD zd1Ax?Q`{PyFpxxm4n_;35vjgQA&^#o#@r6$z)?{<@G-6(5`pa&Y_(ux-G`kOAZ7(V zJ&1#ywwK*KT?L2LLMZJ8S-N6T=Y`uI%oc!E@tmS`~j15l}dH@N<326!MT#h~s1US%SA8dADVg^G)@QPI9@W1!YeQXgy zbC8S7*B{3y&~&K}8CROFekZ(J8Lm)6)cs6EepR`n3iq`M>bel49DEw5drlTW@+BlYI1MAWlUE7#mm0vJJA zyN$(T6j!XObz^7|TWil|*Wi>aHmQo_PQgtVVS9+ubE?!y-RxBV?ezlaki>Va`lnUX zn_cl$i9~V_Ilj7FqbkWgnIk9@87|wZga+u-=mKRf9?19KXLG=% z|Hy&Z-7|bT_Fw+uT`>dvCT8FOLJBU8kQCdA$;H478@XHjpFB@sK>yc)eq(&wI~UJs z4&peXPpBp5oL4X9!yj0WDb$-x^UyJl5-C$CRvxa-3%5KbGbh|TLw|y!s>P6drD0@0;cA`dw9T~)HqB0cL=WZ%c!kIK4C)MJe=>83PB9OE5uutOn z%gA$SEsJMkBn(m&4*5?nK|D$~GuJ}u7DbQ?5fOvcbsHu^l_&~ktjqV|;Bmd?_cn6^ z(HHNMBR4kkD#&SW@|#addjiIzEgN&G)LF3U%+o!mjfAuB_zPhJJ5w4{7d>4o!U#>$ z+8QnedYSd}rLe}aW%_6o8E0^a>YR+oLU-ozfQY+Lrlbef zMZ$!Yum!J10nL)+s)%ea`y-c_H(lQ3`)BA{6LoBS5YZIsWrZQKh-rzk?fP!VvlXjk z&|sIF1ac+yN9WaePW>}uD`hlh9w0J%?^OgtqeZ+gB zy2{#jM>|9V(^#UV??QXrw_*H=jPLrF>&Ptht62oI)aigK&aaKjsd|v0`PdBqRSn5n zG|A|20$b;{n(m`^$Dl53mb$M7QXuIHdyy**`NQ`0u)Me|>opEeUl_!hAyITzQ!2;{ zxV%kXIfA@OIn;U``nad|uA4@ae2;U$;f6>Z`#$50ZsLk(4vHK%_5yt**efCqg!L@d zH%{U&IQVHaLcs z5TlRLjnw{U%oF{+g!*l+ks}D;XIBFjz@`hnf}JbC4?ngOqPy*dxL}BW4zL9M^RANv zLv-DLxvjk@{r|SLKdLD@+|C_=kprZA8^tI7Ll3tTF}KV+<{yb4)AT`4FmE?9pq6u` z9u?RC%|yAhbyBap=1d2*;ud>#UU^jng|kUKVC(w$>B+S&5~SXX;wsDYjoi&^sY$77<-t2(${dQ__8P~~xv-&zY;Rai6Y}Fv+;UBXx5%`+davc}90AY;MNF=UnfToFYmKa`A=j zn=9)M1l!9-G&)_FChFTpjHZ)MNo2}rkQGNKI%X$j1yc~(DvIeI#1T#{FSd`mvlL&2`XTZHa}Kq&J3!uR>~EG?^diU9Y^Qxg`)08C4f|i31yS>9xQs zqO-wk%IvkrvlZ15-Rz8xvX((yFFw}T#K3|xXg$(EE_#E$>g-Q0;xV*Nx#mK%)iZa* z6~iB{n*SbgwF^l=8U&*h0)dbKM=wAPy;Bs!75`?0|0|k(z~0oHs`5EZ7Ff{vmN&4D z@(udc*8FuMqP`M0ZU1M_B}`T!p>C(gC+Z$4Fr5?oVXo8e@GaHA+jJu2wCVOkq~m2( z9`XnAbln#ajnvH3=Yn1I!&Pc-CaAg+(J!~2{~D<~+@$i%+guMWi6NEph@X2)HE`76 zlC(86=;`e(ALlam(mSijdWoZUgBh~5tQW=ZhM9%LQM2XfZ&y#-92s_@>b6+fPB7^1 z|9sh4YhmO`eBt|~#0qI4z3Vex&J@p)!d?mRXA=B%@2jGCTgE#QLmn6=4sQ?`Ww<-Z zW~tWA72XRvCV8jxQ~1d#RgdS0H;s{ixsK3;O~s2x6Y((XV`Kd$#KVKQ?(H@bE$ ziGy8!i>uo=SSd@@|HV@)@e$gX{;eXe;E>ICxhKb}eMELctKv0VtLv({zMci`(2?3QU4kIDRvLDnh4^*-r5gQ<%qHzOw48Uac;YJv8G1BWkTfc9?eETn!N*P_XP{6tq69O zfx+#*%7WsCZv=|Ts3?9GK={sVEh}hbpUYW2m_8B z?GNkxn?emYas&tiNMVH74yjG|APJHhH!gg7uMCn};jc*j3z_!&y8ZspeeOUv$0&GH z;4W5((-8vaHN)omXl#~v&YII#D`=mx3n(W{PM3#^J&=Ce?2S|$v~#=E<1g+0mgc}*UTEF-~N_b&2Pll!&`S8)4)sDxa~ zw|4X0CVl)_$wA(EtFuW-JtQQ#zH?3XLk&Yi)k}pUxL(AQ251wy;35+{LrlEa_SAzO ze%2VWMC4$t=6d!I(i!nJUI|CRaf*i@<1+iP+_PW!l;w}4eDw1(bLq`hm1!&y7;VACRT>nCiI<`t$|kjJleg8fV#<>(1p5+-AL?AWxkigQa&2`8ccTN zaheMBC;9)osdoVnDY%bBgam?=_)u1S20X~U0dZeb<)Q@pCG}vtg7Qx6G9L!?$*8cx zkiVJN2l9UcaEfyRyvdlHcz~OkYS)>F0SGZMacR^24?usm^8w%o$ov#EFbG@-5CBMb zE5Hpv5P>gHC`aAy8ycD4mc}kn;Fcl}tP926yRmQiaJmPIAq9wW>*EvUbLH>7heToy zb}ZoU#Yds=OcpOE+@t%J2~b8)mfgKZ8+D>DjU*J0-6=MQZ~RS=fRbIBe%85<5#-p+ z=*w*g3*N&{EOfVo9Jlg18L^i!nUl0Lf%hE)H0J$VuQ7d>Lh{d^NqbMngdb4fEt}j| z8?fON3I1CG&-i0Tqrud#DU&&6Pt_l2^4LVYx>9JDhG2oCVHBWbA=%Nd$$#(Z+>x)p zay$p+D;jbdVBJ@ApnawIorL?7V7<4XY-v@;QIKsGE&O0MFq3(CSgq>i^&r-75*VkY zqHh3d<3I&aQ8;QAKurOt4*;qT#>JW$JzgP1Y}ghPm!|@|m|bo!?UmrNoE;s0WZ!7+EL7%~XbGgocFmlq_laHI^H6@(*9_iY}HR!<$61=ww zhKAy${lF%TLq7xR0fjH?R6Y%OepEXfXC6FlX+^-Qs8Yma?Y_16(77!~_H@S~8d5n)7qfN(%u*%|24fFvzJ$+v zl?nTa!eNB6)P4KzGIgwY`)I_g$h44E3Vx(nC!Ei9;(~8$(?F;CLK(Rr7YjQCF~l)2 zRn$b$zGNd*nu=Iu^DPZLT2@Z_P-QA&OdcKdJm}0Ds(}!_xpRxRO;@xm##ZYF>Yuvv zzl!b(NEd(nWm}ZfO43wYzGF_9MWwcWm6ha#`8W=S(EozD~vP>rqLo?^Hed!a>9Zu_kBCN?BOvA?*N!Px2y^wyUpU$uZ* zDLLYpXXa0P68)l5Aa*)s?64*JH@#V*2G0GxR8mShA)H-Zv2iB~0w9#fbRUB1(TdNr>8X<*fa$Lu8Jp6y}J;(VvApaK1_rHHe;M~#wV2AUy*6(ff^_G3Ux6#2Tom`)J zW)z+n9ew)DV~;-LjPUH4#~eR1T5-nAlh2sB>;4DLJUu+__}T64xlLlx2khoJ`?R>u z1E1UM_9V7fosDPaTefhV1CXk$<*p2Y&jdcglsZ!dS2o>b2$#qsz`(!%haU2E)W!75 zf8#JF$->`8kh?z-$bGjd1oU#xxoQ^REuPZ`ull_20~9(j`b1^q#4}v(G;M z+_OPnzCR*`o8%SgPXEnxoTFw(_2^hIC2dHf6M#4{olq&Og|nmMPYdCZX=R$J183>` z{4Jt$`tK0x6@N^da(w6QOIn;Cy`h{|;f{YEKizXi#>xMPZK(8Sj*}}-hDTVw>bc_Q zj?*$wa&Iy%D7Er}nD0&|k$$i2I9*$~&en(xo(rne(O~7ODk!_U0xX}YZjg!Kc4l8# z1zl^;M0rqQO}zD#OXWrCa_FS5mT~K|!CY0|eTt(ur{5;0Zwuv|fjAIlK{eTGMF+y= zf@*gV!WMJ2wrC1OyY($8My=Qoi9-C{nQ+egUBkKHwPnMt-sd!$%T|MIh&<)iAu}zo zP37$Cl#X?BRO)al0pUCwdf9li<+Qur2JY3i=*EjPJ{T(zgxgyG zJuS^_l>acLMa8c3;ab|V&5w42dwl_@Ra4Xi$IapR@up*WP`MhquPDKw_du0TPr0g^o{`K+pUXR+9DslNg+Ei2IXE+K+-1oJVp&MU`gqP02*1TXc%s;Jjnr; zThY7HVM8^9b|hEcSh+@!K`UbQ$tZsjw)$i%Z5eb0QBHF#~~j`0LqCHtI93A{X2zdiF3K2 zIG3cWv1YD`91L97w2ZP5>FTS#kskd@G1!0vlIeb3x4Y|jY7+HWlCLH zHN=c}{m05*+q3wpQ_Clu6u0H@Defop=Rv|fC=_s@zd|RQdkY9cBoEHjS>#{D9 z)s-t`tL+&GZnZh8>{SRRGPb2_&bns$cd)t4Slxw(BZ|Q+QnxHT0%-r>+}2G0p!EZp zOWRv*9(H?*Kfy=jzLrPC2gqjSnxnW*^e)+zHi%G^i7D6_9X*X$R|+S|&q&Keq}EK>Re zk<|yAybrPvOQC)uSOY3N2_QTfpPUL$0jL%Ni_}l0%W3$i@N|6JI+aGFpUYQ{%Y-42 z_9nm6)n|gy>FKios=EeZMAC8#URVcJn;nGczjM_-3&R!f_mYoJX2q3im9bsH$3}CR zYLKzbe^5@^{{_yOci8ryI!Cikg8Eqr%p4?oQ0CxRF9%w^Shhx0pB9qZ~@Ck>Lpyl25`M{-b55f@&i8>3(*IkU77W6DV zxDZ@DeRe*2lDfMPzR^c$bihF_s7>UiL*z3XY&p?&anQ3&qg|=A6*K+)M;_DOsZit} zfqm_BJ=ItYTNt+LftH zQ-#dcBIL+gP{?!zXr3}?o-&1uyEs@n=hZ^Mu5i3ySX^D%LbkPc=@#=#U9A+d0flsV zh1Ly@K}*((Y@C1O4~_yFODbgNyplnqb}18H2-+v)ueApa6XV+HXK0q7>|p7^apQzM z&|WaOaL_uXb=|vOT?bO4c@$`-6i7+N;;h}F2XQdI6FKdO_Tbj5bAeSLMwbB+oiDYO zp#DmB!(-aAG|$-EQEl0ooGDE(H`@&qyv&@nS@c_h^Xd1ebK3gT*)xZUw0fVD)^5-< zwS@Nc{cl%OiB-#)h7qb-lq%C*$8RH&{lMj zV+{cwRn3%q55`Fa~ z`kG1fwV(s&X@chT$G{!PgdYchjk!)OF1P=t3*;KplVA|})3bq;@0=dbz^2_a(9?6% z2o={q#q!qf!cOEm$RD8!ZF##+D|BAKzi#NfMK6Gq>Zw2;a-AURcQFLysHWGBYVvS+ z7!FfgDjOw!wwdH78~cHp^*7)b;9CGo+p?INT@P8Cw@q=f`V+vWI+c&QX!iGq2-_J1 zwP}7e=XQ5^^-sb>Il8s!kK7Z;k%RIB$T5+LYF4mX{EjO0EZ$x^EgjrDzZE zTcZ!r^+tHD--OSqf;Uxp)8-bs2WoAD(dXc3`DHig@H8e#?6#f0Ewawu&`T%uGF*hR zYJ0BTg(K;kAtRdQJ7@NHcTc;b0@grjZ65-N%bJ0nwZBWeg`a}oHQgF*MQ)@789gJE zG~7dR`>aJ96N}rQ;--y@+dXlixMr-eBuVxPgs9)b?2J%acW#*SyY*+ls_rP3WLay` zXDdls5Uzpa*`!^4E6`3iydTBlu0FYSc4w+0x_WCUA*Z@+3FIZcNZfSEYX)fw)`YiF z7SoAI@MnS7GT9(RN0jT%WxKr5?$ju#8U*@ta9LM?#kI`feE2#bUHP&4q`oEvtu zINQ}9fY$|`yJN)>xT>flhz(GqS*YaDL#a}E3M^9`U=6vYVoCW-G&sR)TUNYwwv@8^ z3-Fdt2gxqAz9oG76sI+|#%K;?pw%e#az1?|f?0nwpDs@oJgEzklvsXib}71PkrOQI z^4%aa#ff7q`1J>&;0u_Mp7Otx8{Ppi;TQ3V(JukzWHfNYFVpEx(#L{^Uo!Oezzr1d zl`m1@UF4vmR#fTeVH;6)lCozVIG|tEth5 zRUIlm5Czz(zY1nP6MhW<<0UWpAa$Vhy`ZaGcB<$k(!QlzJz)32WeFT2It11s3xs?u zsJL#hBs~rubq7Zsq{){3fU{(!9Sb9Q&V?5`E+(xl92XxA8Wn`&;`<@V93|smWsVW( znxh4J=2(HgIZj}QXE0C2q@}|*CkRqBM+$6M0UC9fBWP0k0SHD?(9dO@%>hfawUXWq zTGOz*N=~6HPKT!{YKl9>3z0Syh8IA!9lqXKl-mb8MIkw;dFUfO>x60=pjbISK|9hB z)E@+v@9?WTcKG2pfVWjGUQc={y@r%Qoq^>mr{Yu( z8=pf^SJSMn9z{rlnTX8WP7~;wQv`bEbb-D(Lm+e&TEsV}3Q{yD32aya8umh6kZ4D&J=m(2IlCF50lV&O9whWzUY2Bo?4dU7%~u z7FaZA32azrjhaczAZ0B>WE})q==}<+Cwvx(%9Zk!or25_=oRh&+1?s{4(amvu;Gh9?&}9@{PcLQ-Q+~J> zzH8ZlsaR4u2TPSnwmHt^PxJ8W^EV_#>d@{nQYXJ5W=DWn}jm_$jYJ`!f6jJu>i%K*oX} z<6D1;yb-!+G+|s*be#>6Mz&{GPPOQJ;ZNWJ%Z8MTB{LB@DVk>)&F-nF_4mkGoZ`6p z`S*GH{`)V~%#ZHgT@>2;KcF_@>1MzPp-J#g+te2AnlJPR%hJ_Tw#NOUu0y+XAF-Fg(T zIyiiJQaT@%(s>yfss9X410!@9p_t0@@o}9*3o{L0g`d(5;m-l|FYsv_W?F)tD=?zQ zurRwu{}SA3SD;e>DUKLDW!7l)9F_2OxQT2@rs3 z%RG$NAV2&SLZ`PWacPS@_@!5{1dZx z=rGzMui7@uy40=zOkN3Pp_~Z0M4c%N!;rk%QNzeTS`@akIgM7JqW=QF%+6l{Vft51 z%+4sY^EWsRjL>C-QYyWH{ySJ2tzktY;!5}rkm4rMg#QEypBz)2*y3>Sr7(;{AZ7o8 zOBJo<@Ma(v>w&?FHglYO6_{vEL>(G}>ti&@4M6$6)(w>j2ZEaS@W}?2vfD~7ooCA1=hB9%Vb6;1=gOK7T4(@oAUZ^ zNYZ2YAc?J#3TXz`==Z=&mAS1{9nvVQ-6659lm`)nrH|Yi-GXn@Vq__IjYc6?LIu90 zS5%4lfeVK1o4$$+pp8oUrczneFh?5JRQZ)~6Dvtn?&fLtR^^E*+haSD(i$ATW}?zw zrP4gaHZVe$5z4JBNTr^wa6Th4B>#alDoI^MbJx!d_{;#qO2Ska#OZHywp9-IG_f~J zOWBmkE`gOYq1vXY6r#XsL(Kw*^u*FO8@_g8+JDZpXC&=(8KLlPAD|hs=2)Ga8f_pt z>7J2H=bN>crbqFpk+CUGUpp_cj5PzjYf&X^L(vn5l|-)zvxsudK;POU6Zgpt$!5bJ zo0!sHjHi??Hl8f^cXw9|jbC1Rrj_1|u6F zerXR~=Wc{U`wiRn-R>o*n$aup)*Lp@-df3u0wza+xNvh6!RH3!)C?7EEtG`AqQGHIDkWUf$@PPi zkakp!*@ff{0htDT)rbR#lqN$#u%0Z$Ute~&6B2zG1aY(ae*5h?E}h!4F(L50)7 zgk^l%E4{5@1xS}Co-i-1(yfLMcILODsg923TB|{;ov?~8C5HlPR<5$1RhK`y zcTZci9g?oH_5j0d3J$E`z=r8cD2bsEAXE{%b8VF;u=p5Qo5I4ADsv;R1;(Q=Qyttn znGEMpljv`^vqm=MYEN_hV`b= zH*ua!O3%ZmjI}t=*$XnafK2^z3udwUr}*Xr{S=jw%?MZ;$py?py00 zMp>* z=MxBlA}qMN57v(zTr3PhpGZ!)En?1R^n8GD0X~^^s^lS^s_zS|3W|aNG>RBf_@mu`}Ff7{Qf8XFc}l|^E;7D zeypFwK2bYqp9`TxgJHGU=OTfw*+rmdb`@AOIPV4bhV`Z~Qlx#7(tF@T`&7;eu#35n zsfP9hFV&Lcw8&oIs2;PJpk($Y7}^J4EF^DjF>DqXaz2vq&RL{9bB2+uS}@DCe| z)0}FQ)DRO{^Sawc4~mnjCJc;obNb2@VD=)XKU&L;>MOA>}4bCjkw z!ez`PTn|iK1p(urgdqqR2PX_cz@SPb20>PGml6AqXWCPu$}M@^6$|t!%#GC<+kG^0 ztXInsuelH7aJKtj7wDS%1$yQIfkkt#z=rjvH?j4Kl>Q)-9jS>?mR$WQ#)x60Jp;HC z;zN_j_;AD|XC4xH%6wCxYrZA0Xuct^VVyNbldQj_^pT7Q?YfdP&fBKajzc?=_QwRe z=Gy{2^SD6Y;5-l9i{=r54eMQRYGsqMc@Wvu%luS2pO!Gnd{>}ro)PGoX9X6`Qvw^- zn?}dW^pa|(*Joeopnb%;@f8?!VF1%V`{wW{WG9E!-)VEFsGxL1&~romXt45V3F^lX z$;cW9#^v%Cl~A7D`dGM(EJkTZI9-s?80C4<_T%(Eq?eA<`;tCooZgRgW1QX}bQ$L` zFtc1k3t6OGpH{)n^-#J=ZA3Y<#tsPwN1~5IQp)oX3VTA`-1L-yc893Do7<4N z&hy9-S_`y&l;KKJOL`UhXhdWVM~r@SIg-cI*A<&`K|8$Y_Job3q1sD_c9_7-K&>#? z;d5W6eiTHpT@B1KxOMm|W@12uc}y|jPGexF!oEJ9YObj6yvmpliV!%>#c^APLcY`x zxd;x0{o_M*)91-j-30zLCXfkpGYz=rk4bK$fnQu-w7yJ`PBq-4G*VU+o?K-c_4pl4nZ z=$n@X7R?I+8`itV=$x`iS=lJtBbW~!JQf6nOiiM3uRnlXp-}H(p<>u9T2AwRYs*qi zyW(2(cLOCXH)ICg`m-nl4AfC7?SpQ3ABEIUgu>R;F~i{=%94eL!~w!plRnxr?hL(Q^yO~NRHD*|XAT=Tj>&-_ZDZ+g}jRZ-Ssf=U|tETvf(pfftZh{dHu}&^cBr?1E!d+Q&kqN!#(? zI(S{rSUKpyT=QfY09sj&|F{d;94f~nA`9FP&N8e*I>3bYJ6NisrWh8#Wv-M6iHJ*#eql z8!3%FzM$MYd>S>WOh>KzG%{CqM@;SP9a;4To9d%oY{jp zn+4HbO=9C9daFtF1<~BD#9Mb|T67Mma`Z#_&hIAvaelioPKy2wtbPhB`rkyjq+x^! z7V(y3!X*MrG6NEYB_$&}s%~ljP-UNH`kS#nqGfo;~z#gK}2;6eiZ zGa9g%bY^%MoQf|ja{*mZ)q_Ee{xL8gA`LOv==Aju5V65jEvezpg0>A~GOphxRpx({ zB2?yY0$uZWfu8w?z@qt!z=rk4BeX1HQj_ZUt|^)CNEl__73i8Vfu8xdK;OJ4uxS1z zuwlLP&>Llwnk0L-lx)|vV-8=SYcc{o;|cUlAh2kZz=rkC<7<>nswvxZ7TaQQ>ZhXQ z2i)*90xvwBpcI~AK}gUOo=Gr#KGYhXMKnYu%tc!lIkjYQgmutyeLo9wcSoAtT1T`K zedx2{n6GqND*7ULu3kZ2CZ|^d>T~d^4to6q`dnbqqwt~61GdDEz7ITzeoD@bXx)~S zz368k;PTdF7sT6#y)uk{*}mcKj%SbG;7HL|5i}Rb`5QJP|D?E8h(OK@po73-S5zqB zsEsQ}ZE70y0O*OHqWNTf2i|cea0tOGJ-PvaPzK;MJ&dnDAD^~teFUH@7)Ae&#ow(F zW?dnO*WU`x$`2=VGS4|XE(iT8>^%w@#m|X-g&5T|avn4s>tO>U z&j@SD1jmhf#F2qUSb9+njQRx>Is%ddE41mh^A#lNe9qX{Tk$O@twk^|5sthj0~-~}jBkBjUbSBOVlO9*OKFd#cwBxD%B#j*I-4$%JaI0o85qEQgwaTUi9+N(q4>;C z2^ZuF@oAT{pecK-2RAYuLoz7wqN%N7pOs^qT@=ZsC;Gw8SJ9V&3`&v#X{jtQuIq z5?0d+dcpd&u=)~T8L)msR$2AuVr2rwQoN{sP;J=6Hi)r1qK_jVT!YF*Hv&`oDr7*5 zB0iJk(B@-M_2>1~a7AhMw^}P81XZd*P=TtvW*+@}OWOpX)+4UC?enjdUD(5Xpy3w`1V8XlxY))+fM>L(;={EasnIH8;_H-KO)uakL>&!Q=O*Ff`n0~Q=n_Q1$w4S zpl^x-i)O08hV{+^?37JvlI(p_vZqTJWw1gkWAF_GdZt&PZ)ONAnrQ+X);kaFQZ}ik zY}Y}Wt?r}G!Sw9DQxV6`ze^Lv>Iz28(ZIBEm&~;KHLyo;uWWL8DdZhc*1v5BQ19f= z_Rq@p&p0`Wu>YZdz60fz?w=2uj?wZ3_=MN80zewilDq=AFLV)o1TI)f`#XxZ8brS# zLHOE642{BKp((+`@o7ulN}t`AnxjR%Fr& zzFq@H)eov_w8x%`TyXAt@4c5k7|DBF<7o~uGTJ}^+cn<>&gD)Ez#%MXY zfmXgF8Az~H#>)uIWrd|85}H*n;Gt;R?JuE2YTlCn(fdO(YLIz zAeHx1v$GNXDtC2lYV;&X%fo;-x2lw@Om~AD;PB2w2i&2-4(IBV=lmRzOANLhYKM7E zYKQhu)$5IPyi)K(@!+O`-TG^zmY-khf7^2m$#_($~#43dBjrel!dRhLg8`rnJaVF;ntF91#h41EkW{>14y(5jGos4qq`~js1_HeY6ipV$36sZ zn&XBb{=YRxISbBPOuHPC*kh-2z%di;@z9h#E)aWDW;=nd*F25V5;QiLb^uU^!oJrR7h_GNq3t>eh*nGvN z1At{3Mbm6HXjnMf>HQWYOX#A6@pj{|R5_smLp!9*B7xZR6^K1wfkm@WV8eRjH6oT1 zskkqhXqQZ8^j_L7=ces)&i}u5iDJi$+ZvG|U_6m91W9a$#Q54V$5dz`xpo?#vxryd z#!pt{N88)vWJNZ8vLZQHfsJ#nYua-I1*f&wo~uYLAV0|nee)Dk1AFr1e)}@S_aE1Z zKac)Hj#Jom;`UB=_zPg^JMc-Ch$%H*BIc0`_?fhp9PQMPg(m$)29)(GHN+&?w$KYYH#xp+w zf>8jDG;hV$@@0~~`Kjfab@cY2h6Ehr60bva3K1L(y2k7V1BP2e1Wvq8_KwE%9%dE- z0vAgyQ(8Q|FA5p6WgJ&PL+b~m4M4>0|%`5 zFs!H63SSjYOcLeq2NE1)@Nrp=n z;Ico)3pu$`5*49F_W<#2ua{s-l!^8L*R!;naSss7h8Vo2^FBSzW3qpn983s5$cFc4 zRHmyJGD-Z@cfepyKY$dOSH+1Z8v^rl;Mmhn&NN6U&-(DK1itY<#Y{y86Dy~d;+ZEG+% zJPKi$GAVs9f?^P=_XNbLw7mehPwYE05$1y|m--Y0`p+1H;$$h=(z%ZR-o4R&7D?`(CDomU~H zp1zdn+Zc}=9RYptF(MAP+v?YX!UP?wJOOv(W#>|#2&8^8KCV8BygTD5lpCH3(!7D} zQ{)LGeodnO6p~?nMYY(O&#`cdXFlWo)e+E1vd6oZ^he4p7U-J21$t&5fkm^Yz=rjv zcZM0Fzaka)SIHTNBU3W>moUm4AkZ}j3iQkpfxbCNVA1R+uwlLHMOHScNwSYh$zCpD zltB%VdDY_(ii!V8eRXyI9$zCdoe9%6^)9J6gghbF4tu94F8-#|ZSz z@dAqm8_kHLVZHO_C3Qkde-~nGz4#|=?-T6xH@t{UTrU)+8;*eFstuhkq0{uH(@KzTh%JPG`z`cu(Z=E zI$;}zPFM?0B?Fr^WMa`X#jIQArDTpL06iTNFpO^)(nElm_^YS|(Ta`Go5&PBQ(mcL z)lg}+WwPytp;@4ZK;bm)@@}zfF?+G!5m6E*E;6&!r$BD%pcYnorGXMSPidNecl~?x z^rt#*83)*jI)cDDg~t)M-J|pNPO`(o{ry~sE6YLsP<~Fvr@SN1k=P)0Ovr=sr(D?~ zj4ozIHldLEVc>@w0FC|S84gFtBni09$m+ZZ4})2{yM86*oKe3V0Ezl2z_{B5bX#1{ zBHb~w{tm;V>HRHp$Tbr|z<4uZ2m;3M5{4jP{61j_0>&Q_h9F>IVcH561dO*6h9F@4 zF<}S-#-9>~AYlACVF&`oUlN8OVEi><2m;365{4jP{5@d^GU3PpT>p`{3W9pWHf04M z|CIg_w8fSBKva{ashKoQ#iVKKMd=?j!&5Es2?vo!CE)xdGX}uyjL&oa1xm_85Tp_X zB_{Z84F8>Y5Ck5^Vu$w#&rscC!RHY(jWpLS28H=JR`1X`@&4@YHhXyUAzoa+A5J`a zk`9-+VN4h#I0kT1okS#hJ`p(weIRBtmN*7|f=rZpH{WLU=Fi z;Upb0bMs|lE(e(0=y_BEUcj$lP>AM?qd+PFHp;AGh`3^b%$dBw66Q)@hD1Zo_wTFHHw)ut-vW4khGJ;IYrug zWlk07n$rXp&B+2A)|t;mupc00&(ql+_zTR(0Nhya_6+-RDcPaOQ07d5t~pDfXCi?` zbB4f%^~T#1jDu7<4$N7SUOtKAcpC?X2061rWGJ&zpli+%=$Uf`7R}iL8`c|NO=KLT zY+tz;_aZP*3iR_3rq|*V>j`V9TubCwLiB{TUFNH|Gm1npFZD);sTq zGd@x_PogKvJ~5St4@nqhE)wXPO9Xo6Vu8N-u)w0ZP+-G)=hbw|CN-(wKgr7eKJ~L& z!YG5LTgDVu3-ru20)2Cpz@oWAV8eRneHF?krGH4J?5Fe%P?KB7@H)WVaq`eExGix@ zA_y3Y4AjMLTR)A^;CqQjLBQ}6h9F=B2}2MtG6_Qv96G)jR&E$RZpmI&ZukNc;)XBE z_s96k*&8=}NfBsXm1wX(G zlIZ}b_;G+%>#Yw$TPOM%YzjSeQhsbywgrNXC#}Qy9N?5x-TJuLwKCTUbj|ewJ@W~H zMe{L%4eO1Mo6_z{O{!C;rexkIVU)Q^pld!Q&@(p+^v$OQ7R?O;8`itV4kKlgva)AK z*KCYlsKT|6+0or8{J9kVhZNp1Yux|56dtAU>r(iADST}Tep-;_GKAU2K{VH%3 zgg*x`n=mJ8xDUYMsIRVbJ>tTQ;yu9N|PF51hSeJ-*J*_QI|6rJ0bp< zIey?%4KXja?j_fv?6n{AZJ6?bXejH*>wp?!Zo^+dlAMKS|8;t*KHMsHuFP!$UGrIi zp1ED1Z$2lmXx0d9SnqrunDv2Fs;*%jmG5RZ=kRw(7-haF&^2Ec=$X3&`sPalaR&8H zL5k)J0vk4*Mp79GDI3Y6XbrStk7%+uDGX4@aI+YeV_1n{m5`GmL2w{689&S93vv3~pO?Sp_<0&q zmyD5nSt3}AO2)_xMvro?r3At-re@HY;OGD!oI>m72^opzh^lbSRhK0B4(=Om0W&kJz~cYUapP0EgkQPI&j*orI&7@L!k8v6ZgA(}YT}RN7>B!n3DhZX|bU&Y{*qx%2-M{3`LY1?aD{jKy*eP zpU>2P1LsxI^s;ki`n+o}^co8Ca+F&O&RGRRuam+83#jSA&>NuE=-(owz5H(1x_OGH zb(+()1IXUtZCD&~o(lc9a~{&;Ms>u(hqD7O`e=gc-Jx3CgT+GjZou-RnLzIhWF21E zOV-e5IBlBGp<}+O_LW>kw<5e7eHC9%?*Q-RW1`1EOcRHaIF$7EbVvp^m-P4A&9RmW z20nRyiumX^k&O|XT02KzdRHO6vQg)T7hv#-1KRj{g69>k!UcHLHzQ@HS3&W5KgNV` zEZ3a@hyF`=k>!i5wsBeVR%I4btf8hntdupH1lLAQlbT%m=fMS+;i_#)?~kOU-Xy@? zfR?y_nz_Nv@4dI(BS@Z_xd~BhfdSnN=(62VEY4Ne(4Q-1DfVE}btghfENZ{loM#_E5UC6-SjCh%JC^T$aW?SuNLG2uH#=&c@8k zG0;W*d>9fA(V5?%ipQIZ!4L^MzTb__Y0Nkl!Fib-jIjW}krUMaz!u>xe0bMghI(}7 zkdNVP{jg`{h7nh?2lXbT^UTEW1iI$;0&#~*pl{w1h^tcq8`itVD42a2DchI5p)`6i z43##=h-eX}9RsxiU=Iqf57@>ShVtg6(#Hsv8C3PZ!XMMOJJZJ@ryyYLkuU@SW6y*k z2pD@M3_-wHoG=7QR1bI@G$O}f?B>QvRQm$ux%ESUY1xT5C7Hm7hf%BhKokWw2mQ;|VO9_iQ?>cRtX=bdXAobucq=E=VDfB_fpR z7U-IyK+lu}7EPzXhV{mK35o;JA7MUbiVU%rAGc4<<@%1n4; z(z^Jn>V52IEA25$p9AB}L!PAbb4VwC5@|f0LA4cm{}=O+kCs8Cy%x%Y2Je8G9Bq#G z;HNu>ueAAK`--&-zQJ6;y7s&9+dDTu1t;B%0|`?#j#%=$c-Ep6L^a z`vd|T)|NgkJa;*H_OR z46(|K{>BnJn<+hn4Bs3|fVy!QpsUdKqp0c`$O*F)#yoNl<y_fZIZgV`@<-1d01A8w0GSBn$r`mT^rY3Vjo>9=0M z*L32;7LHN~DTa_<2pP$E8-JP2CuYPsgDESlPnn`X*I?xWv}bw*!Y%|htT%nM%{M8H z1rS_6^Q&2<`+!#4?3ts}-d2e>zB!OcJ4T!XD+Q5@H0VC53s`An8;Ny}oY^KW+ieB9 zX1+krED%^U^8_}mH;uYQdm*KtmN&nV4VZ%#IR9nVkgU*%yJH*+rml779eR zcNU~*aL@`JPQ!-N$J$6p*@vT;ZfM)NA{ECT5=0rCRYFjlqY;R6Gy;9IuRuJ7zL!M; zvsjR#*%z*-3bBI8^fg#X0hY3V{2U#RA2Mba( z2MBCf0UG;+jE~g&;=3{x-v=ZV&fN%f&5;68^a5cD0-?jhErOFcf)ovY(2>ft0{9D3 zjE|I!5B7jXEiuN8Sc1#NeDL}(VQZ%VZCYW zs8J@VluTrn_o`X9r5;8S2Je{*#CzrfJ%e=?$n*_XNdRF(=UBuySm+=pFy{$^r_Tj8 ztR#&H7%i#9cv&|Y@5fW|Vh#-{%3$^k=$a9Mp1DwM)Z}=tOU3(P38V}Lyb|w61bXH&fxh{uK*W2wMSOFGMFO*0kfOOnV8cq% z7`QNAQt5cvHe8>I_i72G%rydC^KpTmxn7`et`mrCUTcxSd`ys{xk_Ne3eecUV05IC z=*0f8#>w~Un&rAiLMd~rK-b(R&@-PE=$qRGBA=hLh;Ke`k-*$xk&O9*AVu>TfekB? zkMc7Gq~a8?d>KEM8Jh8bS;8oDr$F5N5{Uau0)2CjK*awwi}>bViv;E_i)75*f)ve{ z1U9Tlja?1KPij*97+E*te?Y=0^PoW2d_$mT9unxAZwf^G-?E5r9=1qe9WBjC2@zdUJO2xlc!r+}Cfp{lKAl?ZQ=$ju2MEoyU#5XSrf)|7YHmm@R z^?1fcDvoWu@4Gn_-%lizGA|2s%_{;u^D}|I85M~5ergfltP`YYUJ}@_0{EUL<0Ca8 zKH3)+x0>bqO9`dSYXb51jzG`6A<#F!5{USIZ4ux6#v(YfW|53}Q;?$hg}{atsj;HZ z6p%{km+^l(75^V3j52Qtbj_axdggBeee-95i2pAZ@y%Z?5}3Cwk}-c2q-cIGuwg}V zy@c_TO2yBy`z0kaOVemGIK&%4@ESi4`Y*=UhWFlpevVB0Z@DU$7<9)Qd*)K1W z9-hb0Vn)itJ(E2MLq?u*ifg^s&v5+YD-6ebL>NoTU$UH%zAJ+T92urw_F zT#G=g&j|F5E3jzBti4$8`W$O7r0fz3MuMkNUtEO~1dP)Yh9F>^kuU^V9N$qRF@E2O z`u>eIgJdr2oAcp{fCWy2a;-?DOvImCpMAP5EUqDvakK57(L-`5H*2;t(};G z0rFE2THga44x^D!DT=Y+=_VT^=y5h4FAVB?(l-X+U^CwXHFvO*S3@j4uEHmgVYD68 z@TB%ilvyf%TabKmKrZ3PO1*xf83{+>aeN$h2T(3G$tm|(@NF>aixEXh?~Sj)nfm7X zHP<6hpV>d`L${3Bw=&t-&I5rB%jR#xvRx#_T_Wh3>v(KqKg)6%FRw{D#_S}h^~Bjh z2)qh}$&I9c6fdx{hz9L%P&v*_r@iLnc7Uy{RN?-Jq}uLUBs_po;y0d`5H7IMVYveo zLfih8yE(T?TH^fcgD4^{f2)=7V1{UFNPJ*Lz*eEDc6mYGPT}u-K&!MuH^lljqIoXP zrZJSV|Q_|+Obvim$s+S=uG z*yZi8OLqmFO2nP-&-A(Q>E zMrz`@_f)|p;`#^Zzu7fPI$E3=E&|~%x{rp#1dh;Pq8~I#8cy_TlcWJfZ#PLAQsixs zgrz}6olTO46>Z!kX<*U9CP_n!j%boJxM)?Aq~S%^HAxy^^ra?ALyR78k~GL@U6Z6? zMt^FOG|)(GnIw{i8cl7IG}x%xBx$(Ou1%5#9G%c4X~@wfO_By3-O?m!*wGVBk_H~F zYmzkd=ub_O1|NBIl2p;~qnS;T6(HKGNwOkDdp1c{i0HT`$%+wO)+AX$qAxW`R+MOM zlVpX7e%mBjaU#6K9hW{UP}JQdS&^c0lVpX8c5RZZSkdw($qE*o)+AZcqSZ~36)w87 zNwVTak2gtH!04qW$%+`g-6UBdqhPBfk*t`}CQXtRG}^sMvZ6-EG)Y$2Xl0XR#f`3N zlB~ed?M;#uIeM^3N`;<1{5rVd2U&l{H~iiJPaNdkPjr1U&RB%H^f~r7o-UyYz)xIw z(?Tpn;uWx=Um-*-uj)rYkRf4N7-`oro5KZ5@L4|#XbEs%3uhukM8@MW#zcS{9tCgu zXnaCU`D}aQ^3JLAdB$r4)mq~C?BTl2^fB;1JQe-4{HWU$AY%dMl0p4gI1G%?MW2V> zTwdqX-AFp#K|!pN!*1@6+uvmPI^w}zS)q;zsl3NhK*%_2?OrfMQlk+2-YLWu}{Ch{W43eil1B{7S z5O!OUg=FK6-!SZQN}G+#-0lBOCgZ_eJrLEsF9OK2_iekJS@Uch3$Q0k3ygb)*}U_Y z8=;-rtHK5LKXNIzlNeu>_H`FgYp0y&@Q?3>|A^);V+Q;@bkFRm(J#QTTnwM^E?4P> z2*2)dX0QFV7Y}q9|Hs*?YnLbMFJ<@7IqO+X@pPB>q{8msd~#23E@jK(U+^Q?M+tx~z!Fg3mx zk+t_C_{cC`2X_C{>%jOSU)JxSHdn4<4Cq-Xi|{O@MK7f3N5HV5?8z!Ve%r|7h&iYq zfDhl&YE7Pt*n~y6vR;Sx0bHjW1X({DM7RQ<`bvE8x?=MuIo_t)ee*{GOs4)sZ8CrV ztKa0Hv3=$W&UCEr@HzSM;qz1c8h*dn4bMT2MDKn2T%dL!H8ci~ z*z(1)3)WexRLNz{6VKa#Ob$zLO+4`e|F{wx`){6fmeABm#`y}$oPWvsiuos^!G!u> z1pW$aU&(Q1-Uyrz!RDQbd>(V&j{JAYpKu`hAHu_yd8oVF9(5)? z{CD`pt}G6B$IqP0nP+An_xzy`^KYQ>efZ5G%4{MKhrtDUW2~ozbth;T&89oDGG>uL0&#V&LgL@g#y%o^UmO z7y@gZHkzJo@wQ4vpU*ffCzwCZnO)xzWjVsa=K$ZqF-KWB5(JEvgdqqR?^!EoUb_<- ze3f_<1PnJ}2m%HUPf&KZ-U%_HS+uw87?E9bLK`ez*ap|2!@E#E@|$_}5u}|D=>g!U zTPjmB*=yVJGfNkO<}V^;afo!zo9u3+y+NrsSb{0&x6q>H_}~=$;gMW?tBYc?I$u@i z;fB77`~}GYpKh6c;}I1J5dH=IZ>4i0@2}tmRZrzB8>T~&(H@86@7pT;k^?e~qY74; zf}meSi?AE>ZqxZR(s?)Y*wa(L7>P5!sDktE_$D2ip@63+&?F4hW)2Q7fT78tYCe#$ z0E^K<{St&67@>>F!l%394742>TJ4~Mfw9c-h_3!&3ZFtTWSvOXrDRQ&_!_LQ0nz$L z$jtynTH|XThrqXKrEAjA9R!XvAgAKx8G>+(Dpg zb`DBWj-L#HOmBgX1TzkIZR-~deawKnWXF) z9@Gze1`;Q-SUw-6%%da>-s=#E-=Pavi{#jul5JuGTESx=U(D=+qN4I+Om-`#08>z zWj-VjKTIIdGZzW;&BX$XW<+4ade9T@@86snfk_CoRLg^0%V6UW$lhQJ9sUpPa?6KHaj zdx!+?TwwP~F1qpTUFz3uWY{OUL+U2nb(4Vqk9Xb9V*ah}*~UI(b$>Yfh09~zUm?&n zs|6O#M+G*lv&K#&>l`V2k88R7=FSSp)i|A2!6zFGO&X6rY-N6oc6qaeQRY(uU2}^-&wN^-Z$2ZiXl@eNu-^4mRyHYp9qm7u zYgm8pVFLjzj87cp$s#^4!&#&dtP>geeIBT)IS-6qvAGN?kTKS05Wm5O9_qOKypp~2 zS|tNRLK;8uWN5}<(On4A-JOizWD{MgG}9wfMf4b0&cWqfVL%KRmm;JogORF7-%i>1 zoni~h+$GR8cMJ5)R|FQ#mjyPgH~tzPZJd;~ak~|M5h9s%PXb*R`*&&Yza}!2xmTcT z?i1*l`vv;u>jI1Bs{$L=yS~=OMJldOd?)ir==5>g-w-nu{S!KIxsMqP=u40atV9)e zM9D6L9#-W>=dIwLAJ;ESmA-t&K6BWSS%KX(JV4}PC7{w$Dvh~gg~8|ogtJf6twO`b zwKB{#oJ|jK+BXHH?JoxW4&ui9+S}n)K5aUm>EB`-Khr;d-aw{*XJX6e^=0~xCbnu` zA=7{4?6ypQZFVLDBf_(a@&dQ5ICCEAL76a5*y(qkXyz%LkKFJFfoUB}yr^vsMii2DE-Rq`j7fnh9|TY}$Q*`5yeH(08zUVO`8$!IV*>f(21 zleeGyoI}oZ+;x&|;C07+1^A!FYfTm72dKELZ$Oo^zb+Hhu~7;R&XYDd*uf6U^_y5j zQ+j)n`IEfFKeD8vgOMyt%v8}SO`=Cdmp6%y%G91*rDIyIlAE5Z1iiV6>d8qry(MiL z=9jz@BXrVIaWcA^X^on*n@@tYkEgMwUP(u;VI7P#@-JSmnb>6-6b1X@c?42V?N2e8 zt;w(zOlsUVq`6vy8uwk~-)sv;bIlQJea*V?u-LdVj|gyOGC)GF1Ih%2OM`S4Tgh1CkDbO=d3&bn10*mHxfeq`Ozgx+;NZGi4kt+Jm z-m$K*Z+gb2N&2SmNnE&(EzmX33G~eO1^Q;K zz@m9pV8eRnuW&L=q-@`WdgwZRsF>e{?E0q=d5#xba(TC{)V}RIh&0=JYp%snUEUN= ze;V%im0pwuF3rrq066?J>d*YO@RkX0f#YB%ItFQ%*DL#HhD#v{_xSKd`^!T2<-v7c z(y4Bgi9JN;P6~nZ$`S-|Y=AgyYvZj(vr?TK^SUynu54w4LZ*v&OI<=;Dy}rLxzWLVbP46l z{zKd`v_)?;Sy>wy`-&M5fWIkIoUT!k4}4>%i)|_ARP*8X9OQE+pDMtDZ=B`0)o6Pi1rljaWc8BYlieF@6DgcvlG9PP6UbaM;Tk9QUE zrs`(o9g*<(>yIT}CNFC8CSRPcz&Rc}RG3G~$3Z83J4!eg%)H9O@2h76{Tal;;n}4W z#5GGfO|%Mjm~oClxaSdWrqhM;vp0sj+w5xr3U|Uv!qS6?sn&(727vNoF7mQ$`=}o6 z%UB=Sn!?GQjQ$+rZp-M;1FXxk(Uo6RDf1Gs-Q((Tste>Yw$nSj6E!FOEXx^nANTB^ zMJnyf!#(;YsT%qdu)Ta{=+|g!GDE*&gM+Oc{Gxd#(0Gd}SeLb90);&E&9?WGq5kcV zq4IydI4{v-)VPqz;E-AnFm@(mjTPZWYpFL*4C6C6q~kL<;*sTh3et}<#`&|`ks@AY zC#-(~YA7rHdEojE;NchX!3#p~QsfOtU~Nhe1-m9h0ZW{?fkE${{vy6u6HLf2k&LFo zuWiZgxQA`|_Yp6Q>Prx9-jX(2nYRVH=8pogH6#${Z3Pz19|Sh6ca2#w+j3I+P9|B# zRFwULl=7-ilO=$dy0;&=W8`esZZ&ejTSSntdwWs|b9q2EQ+@5*H1MGiI{#f;5{ zMphYdouf3~0*W z&%xI6-@KOTY+L8q$X)#n>&~$*&Mi1U68-Lt_@Uo@0rJ88+o=(o+i+V{JhMOeYRG=~ z10FsEA>lXi(cdDr0G_OS{ClP1>0vtUNGI!N4iGWo_6WnGTR^!z3RKGN+eBDyj{%9x zjR|A9Eg@{|gD=bNW|rHnunyeG28-oJI99~`*_Io_K@tug=Gt-D8C0vhR*zlbR4Sf; zbND2q4Jymgc|S!IWvZX1!!x9^mBB(b{4PX_lS(V1QCG&3oTZfgxv7KL{GJ!oLGZ@sQr{Tv)&i#s=vF=TE7l-OKAY=S$O z(#aqB9_SMRPo2canK1GHhe`Z3vHw;CPUKKn2mWI@*V!2VX9ADyo>t@P=WSYO_t?*H zUJ$#-jLE|`&ffUxcVN{sEDYDeZz=pfz8nJl0FWcG9|G34m*#}wRMs3q&^QR+PNn$6 z?3K|E;z#2_x2XofSP@;BwMYhmkQX3CzlcwMbc60Z>NSpDj~S6Cg7D(vkKt=#HZT2FC(1K{6jC@Xg@_Sgu4}mj!FOa^Zx|gmfnqcj$%Z z4toJ#q<%DBt>SYxV z^h^3>q)wW~pAuo!Tn8ks_630MEzy7%D?W$4p+Npy7*oS>`I0HCV_)X*uw)X=H; z{?7`-TNvn6D1r(*ldy3zzEs#Pw7;`);v6)!MVQhS12wgk#CkfI(8L)4IK7Rp-X*OA ziAW-V4u09x!8kjsUz@0d8$RFE0n_E`*ApGM&Ro>npNJ05f)nc9UfpQ5>cGQOP-^pE zm%(@PGv^cd zW`qDu#{~j?b0OgnDg0KdkFY3CyhY(Sv+y4soa|TOX2V4o*+r{4#(hRcw3czpWX7G7 z84pcnJlABfU2>fR5C{L%(1(zS+E!}lB0{{1zZ~YlxkvpiWX_Ol-FQx*jN_PZgB|{n z8Mk3$zWx(fgXN@8_^H_DC6tNNUwq&J^K_#44Ph|DKf`yvayAYu{smZ@#M<6k-7_2h z6?FIw+N@vM7;6v@5e-^lBi{lB@G!u5D&Ru~1TT!XVKpNIQmi8z{ta?k`5KHI605cb zI5+lp@CFg*KLBeVvWFyLqVXX~&Ihe+?CflQrqd?+aW--;SR>t`%(XC(aMmGj(W_8s zo#mek_`F_#Uq<*RrF+%+o+LkCnURsiw*}~{B<)Jl9*U+iHreY&bK{EwRyRBb`!9$x zRFq`};X7a;dGS1OmV;-gb4(xCLwaF6uTbAgKL;x@EKyrF3(%#Yh{Xtp#0H0GdEMc= z5chv*dk;9N%IlB&?w#40-DN>`*@D;r1+VOaVnK=xd!Y!}v7)FbI=YLrnZZQ`6|pPW zP(U#nOY9}a7E7wpXf!6e8%vDF7GpF~6W90qJI}o{ca|0TzwhVW&(2fM)6R3wdD?l( z)j3$-psl=2sHaR-V3jf7q&&j|hVk62o_=-_vGl<;cv_ZrpP%HqiWQnuSnw^GXF4&^ zHc5V(_jPvWJ7CpKTy6IfHkVWyI;1juSU%P)sSX^0!a3l}@sF;!VloM0l6SFMEu9i? zEzfZSGVtj6au$9YYocGAS}&kj4lqFq&DT3G9wB zbK{{)RR>0SyQ*3NVTxlx7wNI&nJQ9p4dxZ<(RM!hF*Av-$mlH@U6JWQl(uTci^5Jx zEUiJP0)~gGpeG?kEyS=^-h)iFT@=qMHKeM3NEN3$W$3>lbVwo4OBqXNsyWcj)*lF@ zQ{3CYkW^*^e676|%dN*Z`=NMCSxs%k*~Wkqyj9Mlf;h!nrMHk}XE?`O6;N8!kh@!k zK`Q@DC9=rDkEvA{P0nB#0@Hc}uK7HXW2rgZt@m z5n4A!#dZ z#d2?=Tt6FOHP})*x}ui|Wk@&*=PiYEB5@#}^l}-rmg|ss3d1TM5DtO1a+zo@u6n;? z^-!4d7@|C=w<2|4?|0+zRqrOE>R4^8-rdI;8pd(;?xtMo9hK|q9bq-hQg*Gk;;vP1 z0lU5AlSasZ1(YC|jvC&fC_5zBQs8Sq1 zVtG=bC{L@93*wxy(aN_wSgs$4qLuJaz*t>W|Aa?R;V~w#ezJL0XDY2Tgy?uUUzy0? zj4b#Ya4~EIY4f+pm&&if(lX3!waG!`@t*R?DSlmW3%vs~<~l#C6yp1#gr@Ay*DEBc(fGW_HGC$Z#Un&9FHrYRlZ+u*2o8lKYkU zv9fZzW9pfhHDJ&&2VE)tp1!^VS=CwpASIikOi36I_r$7h>c3WbnY{=wEzjPHVH05X z@jLY`(69{lHTJ>dR#`=GI@lMe-O13L_oiD5>kA>42=-Ix5L9W{b#^T;dw@W^#H|m7 ziQ?v;jKlmndF@ipMtXrvuta8@lF%K?XMif&G2SUGN{3w*4v7Vh-p2#Sk*cKqq?2FccLDEo9|{d=H*DYPPQQ2o}b$jx9yRo zv*Q%2N4j+a80c|D>Cg5Mi~~fvr#(^d12J4w)LXbSlQ23qVBt|!lWa~^2KA(PlV#B% zE^+f&VZ15IFl)sz$TZoKXfkPyIa6?iYa>A z*`4)|M1r7neDeDcpw%5MYZaQ|Xcy%h%0eZ$jU1~x_G9WJn8Pe{7|v$DvtKM?=5Wig ze;-?%8+PdOl*Eu@eR>2Qr;1uDv?7>FpvH!=<20w@4O4!L_|dlQO?WK(yC3s*en-L; zwg9~I8TAz)-O?Ofi}>}&jXps-RnaA(&xSc!NqSEc_JPUDgS1oX^N5;js`+TXsf>#= z5fvOYbBb^D5rQ!hMU|VBRugro25D)XGz3fQWW$`(Iw?oAPH1>ptv-Y)trN&Lb+Gmo z6s?o2&U%zIW!5Z}giJIlMY<--#ge0I;^YdCEUO_F!ND;AMJvreRrAGH722Finzv(C<&QNCzFCw&9brdRP;nbT-QM1K5PQz{vw|`@$cl-fl8}kS zP;Vj_K~BdLX-Wi;ro;klEllq%4?@equg<)cX@&76nxfDa!I998Wnr!M-OO(bcqUzQ zs4xNI+VSzg&g8ct{;(aZ8YOalKbd@F{Qf0D$aO0x_n~3_1-yQiy@BMY^GNS!e`5f4 z0+Mv0sm}VzG#qx<%Y%$j@(fHe zAYGp9&U&;6PTZA_;ii?GdN%QqSK&}BJD4SSWp#x+Qczi2X%Db!&%)k5?Nc#wI@M># z>fdx9soN-tH`6T zae!PQ2D2A$sEyd$)mCDUkV6w}I3r<$^M5M=gvPXSk~_{ad!&TX%?*%!QRc;V~Z~b9Ja{^rajH z>8NFR?pa$Ae;d{%?a?uepvsEoRJdj2He5_R>YT`#bg9W&w@h{`{v#(%Ej?rV)CL00{61xcor+lqDnS&kn_R53qtRAVx5gW5JdN^HbOaFbu_}2kv4$(=^H*k5W#=(Q>_mL8uV~&8x>FiO& zb`jkPCeAb*0ciAdL`r8-_EB$T6P$~nq_c+ts3FdgmW*v368~AHT+LxNx8uy=UAN=B zKn^Lj&&Cn4`F+Oj+A!NT<^N=Hs@%Ca1tWIB5o z7_=^-CVAmon?O%_D=1?92rD4Bs*(3~UkN49%@`Dz-PGi&AFhe^&eu^BdX4p~NhN4k zIKK3DnuZj%9c;ybs5ZI~`UotX^S` z#x*^h(DncRCJd5>QWZnZbW&fA*bFM!cIy9f92>rZpgPGHqU8iYG+ zpJH)Lc3u1Y)MU4vAY}J1SW)|Y3pZcS#?qQxgz z^i_K>BJ%RVn9~X8emua;$&9xBFGq%U`yWOKJPn|Fk(N{F(%{>88ykq>+BnFrrBolmiBX>QnGb! znHHVLWgkX!9JbZ@e<`KImNRDbwoUE-f);%1n1DVkgk;C$(6Fs`Lu0!JYPvGEB1JAu zu#L_(!T$e%;Vyn(dgt%Qu;ZZhLXW1ffqF~J$f{VgL98hh!BNi;&Fz_2c)Snj)g#wk z=k_-PyO&>VZZB5H+KcNS|7q>z3xa4b|Hg{?$N%8wPCsVwTe0c~=P$~G{*jF|81*Hl z`p5gj{!vi+M_Dl@DM{D<(Xz4hCH-R&98saTE|2w(Dz~JLTSK4Et&ZOiL>>Q!MIAML zIfst1WdUu>&wdNkO?p_g^quaUoeERmSw?Pt z?!WldccL(AYF}w$s{nPMvSSocx~Ti~bHb%KIMag&P?IhhoCPWwoNYhd%D3p9;ovMB z*ju+Q)&}S9qeRrzS!I1Q=<=U?HEui}=B;@p8isp$Z~WaG6pp*fIY#qxZvk>g<3tzY zgB&z3$Aac(_&IjeTo)LyF_KDWnHoV~gN_Bzb5Ouu2^+>qRA(a;$y8vIT~PrmwDQK2mnMVVq zbbBSK?Z%HgkzYI5&k1GI<8$*Ty!P`DGU-N~K0RuB*pcIwPGF50I=-p}ZK8q$+tV{z zupZ0hvgZ9sX19!@L`MSIDD!&~)o<4?0-jz3szk0EHIjJgT8ZB*#v4{2C7y6VH#sgG zR{+LxycwuNr=@W`1DV6v9mHlFOU-A*e+j#~W2EbxMJ#pBMl|c3-SW@4QD+==%wYLv za%{`LwL&8i_Qsw-AAyh{8r~KBcEnSS%`Id5i{L1gwFj>|vNrFeU+``NHUv5D+OKX8 zYvT{8z)vq$| zH!Yx`^sBOBy@--@?N==uOJCBj7QqFwbvN%+xg~X^33^{z9eWc*9od4Vj&5DJ0s(Dl znV^of4`A1^HsGRHtz@o)V%Tfw8FsOCz+F5)TaP>V&RRP<0yjO?IaHgT((6Vu10DWS zxl+udD26cXD${59!NY2!*TOtMs{kfmIoUDdC>=RzhN=!&XrULi6;S(bBs^vkPHMRI# zM>XjT)~}j$R94MsEICpOJ%dCGy^aRA)Dtj1nz(3g4Cxr;7Ji12C6C4y5x->N*L{>o z!gLN6LVG*$)71Q1e&zgL=BK|1?h`3m4+=gIKl&-}p%@%7v~}Wjz<6me8lV*2)``5C z=Y7I&5dN^e3fq`0mwQ{1$-hmO(eg@`8JpBzXZg8)xNOR9<5kZ}8=lfxw7kfy1!~yp zlT26EAXF@*z!{wcgRnQOONmy(Sih2S%X~IIswejTw6b4TrEWUR#%V z3{_7QBDD-Wkb%X;j1MdoK?0Nu1B+^;fyHVT8(55Fb$Nju#YzU2wL%N>8;&dJ!R=iI zwn1%Nk$mbeg0tnRZ%P)%6)oPz1AB#E*Kvg>*u0PU^(Rg!r($7DPTjcjACuGm1Rg>nro7JmPr_R{ph*MJ?o20E38cBubX!@JN zkG{(50VUPv(@N<|i}0QC^uxcgfc$OBuLbvI{5Ha^HY2!ngDY^|!LL8=uq}yOp`1m> z<#a}+%+|-NP2PqRC37JJ&g{YTU59J-#2!K(I;VLI`F(Biwj~~NxjhzgIlxZ`y&+I$ z4Xcor9XA!#c2G{H3*Ql!>(E=$K`)}YK+}J7XHW_KoTA$pQ^~f$2&KJJ3kDNN({O7B zv_NvA8Bk2aElebkBW35d!<0ZiCV^z#jrc1-0x3JD;Z{0wYBSOEb3&5ywWiWenr_&> z#8*%XGrzGY(fr2E6a$l^_qQRqoUu&$F>}<#{HrA{3lKw?o5#JaeM-c=c$6&!n=>sS)+47*Va3`RSg}dM? zu#j8cuuy>!3pX_u8bsR`V&Tq8yPhl*5@O-5vU8&`#X=B?Sf~K8PsVqeLvUvn8;|zBnu%e!?%#!(sTvL)JfQ@h}B{>PmU2 z;@9Hge~pK`5d;r+#|nA)lz8}^@o*2Ij)!~UD)4YSEf?~=iy^E!BU_@1{WTf-ZXqC8ha9B*pPudfiPK)s3*7Q zfOmz%L(H|CTwEa5O9^rgYuyK{Z68o5BpGI})wWKA^SX!a=2rhRncA0l$khH=$dv8n z9)R1=j>8O&C&drXt&|6ItMRgO`(bKs^#l^3lRJVkw~`f`B`8VPxs_#O=}YETMR0*# z-L2VGZmiuTJrrMBYcaQ)KoE625UWS3ukGdjO%3Nc8}%mv&Kycbb?6P!_0?W(^R!gs z;f;GRi(s?%eIoPyUqbnGsbXKOvBXBKOXSjsb*UU0u`a_A?#ZfLHI+kT=O$vRyW==V zQ~MSm=Vuk5rXstu{@2l-tkRLw<;s!_lKF!HXl0#cTZbxfa8Quo3L?1sqt1UNe(uH+ z6vtN2sHJr1BAoDPAvIfB>+iDnQGB*)dic zwiRv4_v?V#$)B?FP-V455IMeELn-%w2WAjSqRTFnL}s%fPx>6?0MieQzoT%#$1Lo* zl!CBp&ZxP-FZs2?h%tB?a7TaIPu>LBB!2O6NBharTTSZ{UvtJ&fX(F>n>z@tSo?uQ z>Z7dv98OS`Z4w;gXQ$$6&U2L%n~S7o9*ybN73)}s?P`}8l^1=*F|u+;V5+b9xp=z* zy!@;J=q_Z%WK5}|?xLx0H-&3qq4UN2#8wNnde;ES+(ufAE>qg8!MXqbhDDER1ujwOimWR2lM?nJyS z-cG_A$$>L)X`aDNTD;-;vf~vYt8hMHbAoxMW3DHaRT@-2Syt{iOi}q6QTb!a;>%!w zpt7tOm6fVM<;}P-i@!S@9I;EnTW^2?JvwHyZ;@5q*tWO;NC#!94$!%Vr{%1^4&qW@ zGGpu7l6*%0i&a_6N?7Fb372EG%VU+Q%NyyeQs`<{s1Q?(uN9gOZX|Gsr~O0y4dnL= zewH!D4o+A1rT!IY#vr|L0x5EL<$ z6|0?+kV#ZKJ1J_}Sb8?linS|(quPOYZ!xl$ch*(`b9hC=loF^-H7N+X>d{{?8siUk|Q&f_uDMn}AEE`K-GCwMU z3qwYsjxwp9Ze4K*8h*jK znP}$Om;pKngn1<_Hep^RhnT(^M>ru;K@#SLvU6EX2{Vnd$@HyUGX^Aimfcy8hTM(p zN=HsNOMLvC@Nh%);B;^erRppfL$}~Hsgf~Sppr4!PT?3D7Cjo1g$jMY365BWejZl1m*fbaHNr0f>=tzN zq?-QOytIxDB~(;i9SRlIeN=~}IW>v{drZ90*}xQ~j1C5lxY0>l*Au~neb z6^6$F(`R2^6NS$)Y-$g_{Hat zniGBiOlJ>cb3!2%_8HOYlUF`i#wK|jlXWYHec=pBL%nseC27k|u2~*Qt}n&nzSJ`E zZk>t%_e8TRSY8?6W~Ic3r7_Z>kY0}4RD*uboD$N?&eV~lZC!)g&$8l4R$9rKTYpGv z=*CasqBR(6BY1rYrq*CAwVFC|epXN|z+}gyREY|@3JztYgJsmy4#fuSw(5R^bQBKqj72!a4ClM3Sy z3mrtCg-$Z~JxKlVIHWunhpv^CW94Pz5bGKnYXzlql@%L@l%(r8WZ78yl5waAUgtQZ za!bacxyVi0>UbSN)RC!VI1Xh|87Es-AEI%HnO@i(uEa%uuvt3zHPz+=lsQ3K-XfZ9 zriJZ~C?{}3m!MG#5kVK*<>P0W*RA(Xh|rP<(Um~A>oFxlzg2g^TAuDg0g@uwG1@5| zQpCv4K-jclHwe(i391p@RfS?-!YW&Uno{kTKqY;NDWMHLiyrkQLa{{q)qRwxFHtAL zAKE65?VZA&gyz8vRo*aupYqdQMAtq;cWpF}i1isNyoA3x1XN-CT}=@DrCGyYDOnDq z1E*ml#kZPCb4dpO{Q+5a>qzB=EYpa7v3oJ52|O3wkhv87zBOkALukh z+dHs&r1sKSfCA1NOAb7u=%sUmXi1&*Q#GT?-bp0WL+V-8{+AIxtPY1de{+0gj;4)T z79Qc9f#}w^%$#bD>d29(GqJ54CFX}`V-JE(F7L`ZE-c@rLUw1AmYykm3Q9MB-q2|= zY0S8Y5X}pPJPXA9y|Qy~Az91!V}B=ZofZT$I_d=sxtPxxygiPP(NHafj<=aV;jBZoP~S z3E6yrAY}6)EVo`xz>ojqdih}zXL=hSk5jKHRqHhCK3NzXk0V?!t1L;vBeHW3Vrq%; z`;an%YJDL)wxU!bvYAdcg_}i|k!4V_UM_;8#XvNU$JWa#Ha6!^+BeDAuY(qk5(F(C z!;03+Kf}#kSe^*;EJ!8PhkwvdRcWJr7Z-kYcbPV)=fMa zUyU9?VVTPb@w3XPuzdD`b3sucw|q7yQy7-dN~7iT?+N7!BDXl}E zq4G5$zZ$CgSp{gQlpT{wL%z6tHsp&_UdAhflrEnIDiKIqJ{txWJ(}{0geA-8?xRF4 zKE8gIK6nQtr0e<_-JaLMuZHkwF04J3r-1!~U)Q2_*p<$^m9E}o`MFJNAPqb9{0#7SF(M4Vj zr0}zEU}jcRrkkOezDF~(1u9lEw6k%9!>Z8L4DC(Xxj$lRhW1DG z$tHFc!J*p~ZzK!YQ|!R?2mPxn}B(#L#A0DSovi@yDswBBGzX6~X2T(ASk z-7Yi#ftfi&#G|JTcUCngnN3U$*>glYr~Xxz3}>Io%6){X;p}yh4i&ec3}>=p!#%tKl$yJE(UqCJjSE&^7a1jJPhaBe&fZI#gaBD1g z7ot?62JTMTxvwxaaHFZ?Mh&9IO)EeexMj!4qIBdmPeSD9gizE$9;o&u0AF=$0W>;Hy%cfT2Rd%e8BeqPXVE8_y~ z^^Vmxr0fIjV`pA^r2FgC%do1nTWF@5D)_EUHDB_n2#?6vS7qFB7@a}&9id^$>Vrf$$Z0U%Td#jceq z8uzl4>~2W!nlx)Ox6HUl+(20G#UARk55fqE=Y=nLND(ISZ-~8nTQLfNfwDU5xuoHq zFA*}8=)Lm8*3OZA6sO-R+_Du&DsRcKZ z8{Fwatn9kHz?`wQ>KO)+W@MoH`0tBUZ0FIN7GuG87btr+zrMKj$56|clRWPGfZe|NqQRiWF+=;f%3n&v-m-I5m{KCPiy7#aDM$fQBFc`v`J!~>)GGca zn>Owi3w!y+DL^(LI_+T0ZHById@|hX&(4gu9S>_M+`SK@(?7Ejr0VwnTHMl*vk2jG zgw_5$!b@~K$`&0@U1nFQcbFzN1P=&5o#S~>4(+!*P3#b>7=<-aF=9v<<9vxf4!1!A@Hi#J_h5!TC&&by8rWCAVg9GmOWwIcIqCJaI&Ml3b?lGD*s3jN z+pwbxF%eB?X>Q2?ZA(>tAaO!J@?JG+5}EK^j7^jjW={_XXacH6jj*7D2})-VG4oJm z)1Mm@4H;JWj%X-QjA*DvqJdTDK(sAn0Sis7Zn&OAuzP)3B;kc`dZPirGOPl5J*Odq-lFjInNUM939x7rHQXaG0eOkK<+lRJZ0i(M;BscvUH#$Ww<#+>1iyoF z7YR47m&v+hM&|cKYRJ5dX`Rq3I5gQp@ews76^TqV$;xesDVcaz4QU=%n(!kKvO4Qw zn&XXUvc%R@uqTVE-*k2O*n?*2xq4b<%;~@0EH-X+!)N7+W)Q+vkK60W7(bc_m-es z5$vE)ohr<~k1HK~fH`V&5;|vyQBHxK4XAK7%CO{*P~6-4p+*3Dlf@q0w8_inKtNB2 zkR5u}d6w4^dhD=pY`m#mN*q%ZFyrxaiV%DA&?s7MZyx$tm2PiypT(-LOs^Y^Y7?Ig zTZbY?kXfCtCt@3}8!>3KeuxpH<$XokjjVl*py^Skkyz-~*q7kDR>5b)3?5_LN(UUftg`K=%yjerlc2`T=a^v_ z18=JJBaF_z9_Libtl<%0=2)l5S)M^}Qk5S=(Yyx5 zIG_n!(U*CG{0679(@H|*%b*}p$Z@zwT}(BdlSiG&iU*xBGo1Vmb#?zCvc03o%G-@> zU*iZn165xQV<*|U9WkY=dtai9!VU>hfYb@HJL?H>ou<+;Mxyheqj6ZXCyv?!yn@SB zw%RhvhN|WvVWo=TPNiZg(AjV_Mc7A!GT*tROG&DuVO2vTS_A@R7%bE~i#nMnp^Lsa zWtS_h0(C}2hd-AqS^S3web)-D2v{Z~N3s3MyWu&k^ZFO%MRZ663B{zs+a&Fc#Enf} zb|wgU;ZBXlw5iN}G>4>D+YJa$UtFh{@L^aC1REz%t3>HJ=l5@L?jfS_$D3o4P39n&SY;S@VU=ZM8I-W92o70QqGR6?y6nX- z#w*cnEnaa~6kZ)j5WJd||3 z!FafMg_%LuBVHYf`}=vN(8kOLA+KUc|6~1l<&aM24_CPkX?XQn$SXm`E7>t#8OB|B zWf@rpCA=zv*OOPG+giNZ%y@MKLGbEGtWsVb1%!{qVXiN)l$CfjO?GZ7rg-(wBCix6 zUdfK}O6dx`ItC9nXD~Cp9j}hV{r$XBXk!K?lC`TC(x0y%uN>0p{P8N+Aq}to74k|@ z@k(}#SB7yHURg$#K?$#l;PvE{=oaHu!h3-6tiSQ<1cKnziCFMzBAwq!IJwz_nOUL1 z8ag%vC`z0X8#RZmtI)_q>ndfzq<@C2+;mK>tG-Ze*_RTOb(O5ndidt12ui}bs)0-j z2W2c9OV74VBO$K8FM=zAzCgooIrQ@8E-vULRA?gDP@(GM6J9g@$^fh1DFji!nOM~C zaK_{(sXNs?4G5pE!wmY7&{cCIxukL37>AaRn_!2!dgVklGqQ50Vyc>7N)n$YN4|dt zh?>gktcTgIrbokKxn|D8%-mFvr@W?lBJ=_rBJ|nV;XbFbhS2k6?y?MwJi$dz1C5U?GvBJJh z>jJ9300^JO!gTUvn|mftQjSWVY>sCF<}mHM{xWao02>f2DsHnrPYBdY-QZL(t` zrF8UdPNdrKaNh;f<_vrxOHLFo8j{Y%-K$({WP+A89~(h3aqg2lO6_Hy%Gpl0WjCI?^8}x^BP&X%Q00= z_IsMz`;a4-2LMr1SusIXszTp)H6HFAUb$;(#H;he>|mg71YT4DX8fA z`Gnc^`7*O}4jg<-75HAde8DoJ>l{jjH=nWwn+&X?7$|l#7CH>^zx6JZtGYuYSpGT; z+_%Vmy>qXT`v&K}Rqhqe{Uf<=bne^azR9_7mwP3KpZziB&=J8Ws62*lZCB$ntbtNo zzPX!1Tl>R3z2Dg6KIo)g3>6yMzelOFiw-|i>B_93k~Jive|5DBy|24LR{MWXr$e?Z0J7nipV`|&hRHqoeJ8%dUtWq>NZ z$p0d^TmEa$d0Z*~g+ocZ<&LZFKGAOPBnX~CvS^Iax|VkP6CfN5$6VhrMp;#~2g_Kx1aGVv!_P)iSVM55RFDE+mp7%`Nj>&Rr;So)HYsR%9*BbrAo zyQMIXQn9i6C%yBaPhc|s3_;ZYIjnFV#a^jo{COapiN;)C8CO=4@fT$0p2gHWDk&LP zo}BjuBpH_-lX0ah$oMbuaID(QUt?yrG|B#roB>Y6`M0=>i^i@~Dup&?whF~JR*UlW z6JJ-0bpChb6V?LpMR{c6E2zX*c8p_Ig)ZW285tQ$#J30zITjzE_JvODuf}Cpbd2#X z<#EwGocq5>5WM?67Q8zSroD`l&$gKP2Qyza^EJ%OkJd|Gl_~Q2M_IX-FeR_t=QDW~ z6nT{utG$wRl~>Eg(wE3<5xkbXF1e;4uPQcH=Y%%_nz*^t>jY8fKVyY+skfmAReu8r zCs#4ob1tQvsOVd=a(}{9MY-74)XrWc(y9RJDk~!Lkwd3)#9hjLRCZ>Opv&oz> ze7Moo56t|#nID?@5oYH0^^!vs0DC@`m3tRc z>_O*lawsUgkrktbl5~|r%f`}|$YBv&phY+RrizW#Kj}>`$l)ghQU8Bng>tAfJjmf^ zK=?uf=6cGZa-yRDk(K)tQx#?5+0@SZ1vyjzb(Iy9L!}Dka2B)LGC%t{5DxxgW|~a` zzc9d;n2njC2Kl!FhnX{mCMPM^M?4Kr#Pcg<>kvgeIiYPGqo5K`*)f(Fnq9=xGO`Rx z#Ip!4u%u*M-wN7GR~;MIMXeZr5*`;uJ>oHU`yIvo)1($ZUgY zT7cm=r1jVqJJfn8A?)~8R_+^2v4b=IO&zoOlmdQuA*-{Vb(hmEDG8ZuM<&%x9Lg({ zl-XVdX$ri9!YcG+W|O{bXy3ZBlB@_svyli+(N+YfouZ98IoV8m*W6U-BZXQ_CzSH^ zHslbidnZB2Ca+RUHuW~-$!t5dynVFJN0$M0=cALj-1%revvU$LTwwUFVD>~oa*FPr z_e^I`wKzTy&a)~T7CP&m^g9KM@X@5dTq$$kiCRqhSpzk--)17N0L}Yl$Am}e!g;^0 zr*?Bkf1C~!s2*KzRtr>eg4))MhKEIuPEZRMgm6BKpALJaq5CL>1FX?EpR{lNGk&^! zRKrhu*lcIp-D+-auJ7BBD!$}gAt#M=o(=g;Q3H5bfdvnbMqm0W`KGfOc#s(k-A6Ap ze~bJ(B0LS5krFn|q(G7M|*~_GpQ2>H1tFxZvm=kQJ zBA=ber#fvnU@L;1@dVF;z{oa3fNi{WBe0XbM)$o4bkH<^uyhV&xeK`ER(|V5cAtai zK_Y5Pmc3PswzLZ=}KvK`-NGPtBO^)G0#vue`4#ilCE~LzP55pS_<7`9ba9rUBR@J}vm99%|FFbN2 zU5Bco_0UGLbA2$i9zs#q)PAn2mQ{e(L$YH>j+Bm^2CGx*>rS@`E1hnWT{vDSPdl&N zc(FI~HkqZasAuI_Z(`KD-MM?)p5obtr&N5F8uI8sXaCFWRr?)FVc04>z@z^&W zbPiU3I(xhsGD}AszmFguCxWAuv-ZE-y{w@o*BcW=f4(Ue{kgq6wi#|t>S6|4Q!$Cp zx-Xt75BN4fR&Enab>el%lT-QK5v#oT*;OTjhll2yNO4Di(`rQ{?%L>I+I;a zbY;ILE~j$|v?)k_D_l&dW$~WAnOiE5eZ_FraSW8UbHK;Sp>}v2j_}x&u+gkzi0s_v zn3{EPJEW;y+ejQE1*BPr?9O@=RBq5yI&zvuPTVoxlEOGD3@p4aY)-p>xi)H<8#N)a zr&(>Kr}I^&1(iD7w4m;3R)<> zrbXe?=W}@UKBp)xzlZ+m>^EY?;$!LAuBZ2_>CwuBF?wB12OllB(%ZTMl}w}T>V;u% z(W7aUh#TF%uxV8HQHpXk_5`&e_pa4ZFynH5P5AGm*NVe`hA%$9(tX_zTq= zfxXLb5OLHA^5&!P3S~8}+fR6>su2G8DgaT8G)|+mVIs3B)QQ123g)8D=i01``d_Fx zbZfpXKsuLXU?S6>B+(t-{9an%#g+*4MU#)Kc@jd?V(>y``X&t*D%T?Z|>63 zzU)vTjYmfa{8kp+sr>c?@U*{~ij-I7BEWC~gmpUmtu?f5EpR)`%n52fws|vME=lW& za%ji&BphLjQu(^&K0GAj{iOX1BJnD?ulxNR`1%VpUeRPf|43PP4H( zaqQF%IEH5?bosrH5YUb2IvmtV!xlV;2nMpQeGGyL`A|1QCW51$OX9Jqc=-96v#@EayloT@< z2jLqsvnWA}tFy4HYyDt0cDTq=eq2`>D=W7XX07iB{Ul09nkXrNj#gG@J$gOYI+Tih z=8zBPJn>|*T3w-CK>AdC^I7RE4-tfDWabia9Wze}wIRaHb9YjQm@xC)NSN@n4B09` zGf&yEnWv%RW}ZzoC56tTP$-i&G=yYrDl=a--_zmDnd*Hdmqe(_RA3aq`xU@h;>WXS zMSYjbn%~d4$PgCv$8~KJsg_q z(&{z{IY+wBHf-83Z8Ee_4o!y6!4Ya#<@d1PJrSXtVE=eox&1N4{!O8F$0QCDw^n)t3q@Fv`|88&foInuuJP?a|j?tM$$T!=0-+5bh~_Em1jkg?h4`} zlBAu0@hJi#XU>-d9$>6k=Y>GSm}$!t5``!;ZDFgUsa^UXz5zjirY*8#7Xl6E!i7Mt zk4f6;7vseXl+JFTR(g&Qv<47xE$ewf8 zptw%zrlWReBq}tyya>6DW@qIZJ4>2f5$r@Qy4$l5WU|nX$=Ol8RKPMEt(IivtPxCqrQcEnL`f zSQ{62LCzujZ6U(N>xZn<+I}yx9ohB6RHbLdwQAHhb|KTUtaCi6bF?)wMAtJ-ZS#GR zqRX1`eaq`1n^c8cA{XJ@Qe=(Y)l7IlM;_7LFs2_v5X?Fri@xtT`zj3Q;JgLZ@Y~NG z2b}LVU}i3XP#Q)Xf=lJnTIe!4q?@}ON4O|bhSKt#C_8s7rnGzB#9ya?(}J6Yy%xZ>C#hG-6pKNN^RwS{9k-YCP5LFDtYme{z`MK>8zL zoz7NKgJ8V%hnl3?N=LI)8?J4d>XtkXE}+x_Eugk571>Bygi4sP9DxQC*d6+)aAIbhZ*SM_nXm3E~shjkxY` zt^@JElHdPp#GCjwhL8^RsNf~v{NR2mdLO_*{cM#oHn#$>i@lH;B9VUrQ1lPK}^@hs7NzXnjZRHe#sN-o^p}v6w{CE~nbh7n2 zlC(U&nH04G2G`4fD*l#E*1=)S*NC~`j~JO72+pj)=m~vKCqZQ}vB+{wS4~#cCQMe{ zbKgQitt%rtcPge@7d@qIIt!|%B|9dlN<=mi)PmB}GO`R%dK$@1=~)C9=o`(Ye)`M8 zTuSA}Xq52&RG`rr1VN)#Ec%mHzLSA#EdmK>1j^hPC&Mhj>qQ2YA~KvMJ9j3g$S^o0 zgP=+r8s4E#PBg>$K3`KB(3IW#-XKgiBXprgf9nPquDy6K7>ZZ8gK+)zEPLH@h~*dSPvKLL3Md4yN_8kSKjiJi`}>8ooRD@nw6B9t{xS**_)DB-BBkDF!ZR$yv3awtS>SEs`*5I|DE z$&PLLDIIeo-F-j-$EQoO8-s#{J&M}Qr3e~gRulkF)FV)?%}CAh{l z>OByNxUB@?+q#_hn3E1!ZeYi9b2^qg`tt1w67fX_m9=vHxGk*3?K@=W)?kX;)Vir% zM+x|@10Zo*c8uFf7jm06r8-sGskh3mAGWr$p?xasu1-xwh6~XtKCBd>syaA?<2{&m zqt%1i!qB=fw;puJR_5*o*d+de<1jqZvB1rTX|amHD5_&OLxxOJiWaFxom(fEt7BSj$y9c9yN5 zrZ-l7X_vP$ieUW+EA}C@j#G8sLQz^CIDxOuRF@pZfT5PUXUoGUmiFZWmoyc7$H_3Z zBvDfl*1X+hY_`6<`zRsHqjsXcoO>Qx&#^)%wvz}x1$exjsE=pe;BmHit#+b4mj(P{ z?L}oGdHtu+2SGa4UPxQG+Ryo#9N3{$5sG{ZEVq)jp15ph+?uc^rYMt1Hw%vyAkC_JHtC}n%-{@CRq_cxfl8WD4{f#?1{OVPM#6%xOBb6_ z_faA)#^*#|LvYqOC1;n^Uf5UF`f{!Ig6w*e_{G|bN-yF6sXXGhm+}9%1i}9ov5fz% z_rQVt%Xm={{0=K~uK=&$Vv;jp$vi<=_-!VgBl?h@+;*iu z!V#*>g})v&`=jjK3z&M)YQJ_H8Dm<6iN{$}-i&O+YK~Np(hHdsWyB$5Znd7A1Ll-S6oeX<`PQiQl1;WTzNXMZEUD>Lgs|- zL25U8{YsT?T1A(-ImVzSq1TqzzCkQQn^$nNdrtz%R zH}Ke|$N6BdKXJ6a;#{MeOl;0s?){m}S@AGNeo7F1!)I9Z4Rz_@RyyBiZg0r0ZeJ-Z zQq45le-dM819Q^PakM@vNG9lEQ&868Wi6VyFPXu;G(s|uk!$!itQ7uw8`kti_BgB?2!y}%MPJFz{R30_ zBKCQk!bh?dpaDvD?1fmRV@~-RS@vw8ciGJ(q%O}qPT4i7#=|sZRc`xs<>(3D zA&=qtdf}~hExT~OULNS9Y%))fy7fs6BN9Sxnb#RfLfUruR(-lAy;fUmnSBb=y}~yK zHSAb@t)3hdc!~m?j;{!=2%ZMYWGFhTo`r)C^J79%B8!889R}=1e!XyO{-r;;1-p}9 z?A((`n+SgH^47l3sf6!iGW0b;$k2bWx|1O$!;+yLxadZVp$Of#*rt~5Ir1lj@fi#O zcx9*xIZ=Rzr05y(SY?XGR<`xsuu&dnJyYq*>lzyxf|1nBSlm5Rk)7{hYRcyD zd{(epu%JmBiWdaJ?#NG!rz?U(4HW&6 z7V}VIS@E3%y}nY=BkewAf0n3@VAaH&z5TFlhHbaacEd+0UAZ?Cvl@bKzQFV5Vjp`e zZ%a*?)iUGslf(+|^#{wmM@|8D@D%SdR6#0k^L-B9Z%^!%__yaG{^q;S%uG{c{^+{P z4*knRyH@Hj>NjQEsUuhE6EGOpJSy+)Q0{rtu&)MAldx}KoQkb@`oSw34~XLJ%TM#j z!+|juK*H@EdwUB%ir)j+4g5CYr@OHg*xZ0UMd3>E{*;A_Q{F!hl6mjJGQXNUeo-Iq zwZ#g(+Td4D`F3i`yXN4nTT2;lpCiwnEz_5# zyqyn{dFkYx)}*{0C#$UI4sM>A@=m%!=IxVZj=f6ewi9GtTrTt0@~Qn&-h(NbV_Pm> zn(|&q%l!)ry#}+&yFK0K@+vAP_qE*8s`6HuSpg*FeQNPt z1FMM&J=rL*DD};fly}n}qvxi)8}^d9-)YZI?d46rY3qr-ydek9!#s4J+>0)gIq2H0 zC#Jj)u2IZ0$EhxVC||hvUGK*nHmvnN#r=`@l)2k1=R40*S$|3?=8IFtFG_heJ*M{S z<^7S|Qr^d>ruwG5ts7>oPI-r3F7wXWqTXITCR~v6etMzINt2Yr?5kxiI8J8EOqu6S zX`b23d-+mfwE{Ec^(W^BZ`JZKvm3nkmdSkU(lN7pc^|gUBlPOkTesADpBpBBnJStr zny1o-?4#U<^%!(bKX3j5Vc5>8MkM5b=9&Gxuh)!U)X#fu7r}pSJo?(GI_;*5m!4a; z_j!_*iXMvpU{9Gn>tx<-?u>D2a%R}lly{Yx`_EDBb~1A$*rvRXriuR7r$wKS&R)2< z)|-pF*83aqTJP6DHuWAr5^B9;_EDU>jfP+CEqS=(+>4iP>b+t3>|>$dv?$I8nD3W~ zBPp-GMfhxc=Cerhk-OfGIciq(%z@s}bYj^+@5fgsmZiKYM%D9-Q^%XU%`O*KceE@5^?vpJugneu+Q^0PA=yk#rL%uadJ<}X~_;9Ufr8@w&r#?0QQ?2U6ZQ``Mk zQT~IK;?C*Q#hu$G-901aZ93)d8NIxg(*!wT)!x+NmN}wrPb+=?WMR11!7}$X^Mx6= zPaWtzJ42&~qraF8{FS;OQAqnh@9|7xSugL*yh{9b59R;Nlxa}oE2Gc7 z)}sFlX9s%cQtN?U*(~Mx4D}u8HQXZil4X+WC*~{9t6RTW0+m(>e!>Dl4l~)f=V;~m z+k>Vpex*!uKG=I^!M7(5_GX^{?a3+cYvg30_sL$$|AHk-`x+8H(7Sq~ATOUK^Mm;^ zYjQGoH1nja+)tW$3$+;N{fam#@8%iuQoTbQ#XoP0L6rTX^rzFeWUzv?u#soz~bZcWPDXQuM`Yt_QV z1HIaX%K4q3dFEhm(Ja;Fu+~)H25-x=#O2H^wUi0gV?5O`m>k|UF8pbwC^Kid%x#a7 zIc~Ph{}^9xF`nLR?(}N)PE|`4`jN$Ku9SPTeda^+1J9QGAmdc~*yFBBd4IMZX5nSy zFH3n3nE8~Mtt%9>4ct=RH#xcYy=uGuIe_X9L_37+4knpWd28LTZ?J)CNYri|2d0R>?dak)oH1nouf-E-or1OMT zuu!y}bDqpC^5V;xrwd-a$7^*xL)4X^H+@<==G-Ur@Vpt8b13f=erE&&5u{P1K~@9mm4jr*&3u?@u?#w>vqO z_3!OH-@1Iwm);)UVyM{LyKyIl?crT$VH?g`zUB|!A>JwrJLUN0YsUMBdTY%0#Kp_k z+*5Y6cbDb4V7kJN@$NC-A1+bYvED=Gd)06`&ig6fcj@g-xKbsY>^*6@e0YM=o#Fk$ zeCJrY#ac5Eb0X;u^Un8PwXpG4!V2y#3(p%Y=G|Tj9Yk;MBn$hAzB7;STJznfFY@C1 zx5a#j`Kn^hvGN|_D-81OVPTK+W`cb8o+w7qqjHz zX2txwH^agP87?1k20$?nHd=qp*Kp)pZM62w?kcOKyoYD2yo$1)T3GLsg!KkxzqZm> zp07Onl<7omZ_nSw`Tl0Uzgc;8WgnUEy~PTvFZ-lST)D==HY)pP*-Cg;MmnUlO#6bp zy%ARTjmo|>-ym>#q-=26w^sU9Mzg^*PT{$O(QNCo24A@hfl4}~Jji^bEYA^T+nF!1 zz=dsZzHgQ~-$?Tv-R69w%=e>t&Ns$aoAwRs5oO%`z;{0}r?X1f!@~Z&NWPI}`&rl= z3maQ@Al*i9?~Y{(+r8`{^F0He)6p(XHLRB!1rI1Y(QhN>A=Gv{+&j%;Hk>Wrlrk>N z5_T52O!p2dJKJJTPRVz8**O+AnGyzaa&@Ws#^4*w+e*u=ge#5jCzjn|z7vhpGs_+_ zJgED%YXSqCPeMq^#oB6&mnw9%wEtf;~R-Wbl z?g>fVQyU7G8h?`I(hkR_d$s-)^R+CIug*WreA}3>-ao>8k5k?bNW_tr=f4cIzW#BE zg<#ebS-PdHpFiDVjy9R^=g%--o5}p<{v5+>p_R9VKi|S$x0r#yz8PTI$t%~-M@>N_!*t( z75#e>3DRA|!fl4PXXsnfQ@#WI`z-7&mee!6$^HZQ_@31yy%m0l|4;(Pd;Ubv8;b9z zi7Ij#Jz6oR;!~b0Yvnt}f69D|>g7Ax|GD{AF=Wl~&h($PT&^J9(6TxH^N9p_-bxEQ zt1KV-UTPDb3;bUt5(5|w`^k5{|FZc`ESK*>|J7L7MgHrC3md;x6FUv ze7Sw(Tkd~izHM2u&+xAG|6#tK=DXhir}^GsRz1U8;s48g7g;Vh`CpswWb>`^zcZ{q zM?W#$yV);Ks_v7l^jrOkr08XT zKJ*8g?{OvzGrTYSEzCE;O8CYfY`*jB6vkI#%{R+Rs7eem-#{y&ccR&Rms&1;6T{56 z)XM9h*v5PvmgnHaw&s&ka=JG>vAy}OXTx}gw{2pC`CJL35+lvGtChZ6Vsuh6u~!~# zjK5D}C-ZG+wB9GNOR^{vtS>CxQj@HG6Z@I3%BVCUae(t#9S%>7H{U&0`mu?L=KIX( zG9xj`e3g~L?DWJG^F3|pW+e_b-UveVdhlz#e`-j#2pNVtLH^->^pTr{L-!$Xq zcZu^Y?Dtl`?-Cc9&&g+H@*?w%wEER1FE-y()=TwGUTVHyT8%bMUT(ezot!1FG~Z;) zvpIRS`B>zD*@)zF^C3?7c1~VvzB7!Qdnd0qU!~=8U~+}|W>_7LNZw?=e_PlI$yMh2 zgN2=vyxDwzxAM+Rt}&lfmyB`AADOSeacpt&cJm!*e7`JthxyL6_HbSDF7y2jMd1u@ zRq`k1`<2PWoymL6cd*ICBgy;C*Tb-WCi$TG-Z4tNn0(lLb%xpN$w$rCWSG5^e9U~8 z8D^g(A2%O2;wbOy0XcWS7YsO zgYq{m-GNBKbg!oTFXo$Lb*L?W+kB5%=^K~7Yrb8r^nvB?neQ~CM05H3=KI{JG_3qX zD{mvF{LF&NKaQ0*s{9`o^B}A3nDWof_mY*cNBI{nPb*=+@_(D}QOk2e`B&!qg_U(qA>KZz!)b-%P{v zmhuMk?QMA8Ro>TphZ<)0m-j30LAv_+%H^^0jV;XeJx`SPH=pYjpDiC~zLyNo-UXH*UJZ+??22EhL*jFud1xZ`x6^eGrV{36?=wH@o8Rg{3Oi_J}qyyJnyg? zeOkVa`4CUZS^2i*eTX^I$}3B4Z(-XEP?&s!y^aeTl7qclroJ_gRdarivPo?pAF+Zt z`7cMTC>!9N+5B0rNo{u@_F1n1-kQsn^cdj%Z?Vi9FMoI50B>1N@G~!aAGbIDAM=KL zpUr7V@*VX74arGu*`t(pmYEYr%RPI5%te?r-p6B>(4c-Z=8JhXUf-R*m^Z0ym%WtR z2@Ag_pF0{R%4|f|nz&rK0?Rd=T zq02{O4jr_lN16B4VKOg0Vg!(yeQ%jRrEQqyfBXK*?PW7BHFLU|^UZt$bGWy~g|~tK zR5KH1{^kNf-ZyhMAZ6aTp`WpI{og2=I}DNerJ1KU-9>1R?S=WWQTI`coyJDB5Fh8( zm3jB?bPMpOmpzO*<~W6>sbiV&?8^%)5v=+}r&anHh2z?#-F~G_-_~I~})b>|uTIQXwouu?2 zYhO=Nqe*Q!qtBO6V@lhfjY?%knIYgG(L~g66mT`2)OK)#T6(;`j~WMe!5rZIZ1GE! zE;DroWWomtgw7oP?<}+sI;nyK;{||9*0#;SkJ#gW}0c5Y5JA}<+s+_ z`woQm_V)jt@5AS8_iwMY*Pe&7@4e?NE?lp4VB3m@)g7J?1^uc6YhR4v9^KF_Ekt)@ zEV^HLp&R!i>Uf#1E$G08J6~HcJYg-=QUJR;0Nq1_euW%57vbn=wD>pZlT+tB1lJw> z&>|ZOM4Yg^H|6QDetwB+e&y3%P^I zeV)c__2yUuIKC7%xDD3WB63HyM!ygFmy-WFxlPDD0Ip@6j_6Qhp{2b7sioY5a715i zRU5)F50MFP_Qc$#L2eZ}x`pO{C?}%+n?fvwV!N%q9HFH}*iY~2#7q(&DJ3Iw`Tq%Ym^y`nk^!hw>o00!B@;j2h6#Q*i z8O$3)5zZtMnWiLs1%3t+E7 zzrsF=HG?$}z-%@1&uRl_KZS`pL2JVkzO0S;{2p>RJfYU|^~&&s@E6c+MQ>^t;5N zyRS341x?UBN8$TvzQVXe5;{Wu6&BZ{uQhL?J`c5T1wBXj|LB0NKl!O{5Q6y^u`GS; za6zQ(heHy&L7gbfylD7eto^ij6ojadVgM^AcO;CO0G0%!23m7qbVvXjI9_)NU^`(2 ztUT&{S}cMZ!*m<4EwJh}U_It%IyYc!0gm)mQj9K(IkSmC21<@aH6bFz6 zSl?fo3}vZ0Gd#0=8d&SKX;|F=wlw8M@HbCc0B!)enolbDuX>|9YFZBDbJX%2uoE$J zIk-5FVNW{(J?Bvr*6o<#=$1W;Zc7U3K_PudV8|$Pr;~e}bUKsHI^id`*GRHM{yQWM zCjCqb2_&}_=?o-)5=kde$R&{nau1Vxn%toz9YFpavcbiZM{qtp*&0vO1 z-v(oIN)gUu8FSE`6^1oDw&?Hzg?%=44@l39#J$7~*fohgm1T!{hFSzi&5(r75DVtR zp6Gg$|5xz0VUam|AuTb!#8}H4i0zm&14psg%Z(oYHt68&XPNEAtRi-aW?Ca~W(%P4 z7{Fc`Uk;jW8siLa%saMFV@I}}1`Fn%Xj80`{~3=v^JU||h42(t@OD8 z`n~Jjhw$w7)#4S_f!2sqK^XV#r!a57HpTGwH{y(%0ke(5zUl1=A#Y6djTftuSXC{v zx+t9}SG%tMs7ZTNQC?9loJk@R9BKE`klb&;9g^?|`TbzUk4z|snhapiBs7c0%L zS^V&X=g7^k-7H?L7Yh5aMGMG7o0ez|{q2;X+HKSN|m>CN0$c??h z9Sw7x!UpgGQ1&xUL+v!5tE8#0u}+ggr_>qU0eqUB=3MXxuSulv)Of>q-3xQLc1|wj zP??8rD^GO0dFMjjuFyT;pmr<4f4(WY&$Pt6S#r1@thI}HnNsHq;kyX1Uxm+`L(z4c zTLR%xFTF`=y#;@nYAwa1Nnb+FofFZ0s{q|5 z^Ub^zA=#?D`Ye{?3^oqe(OC(s=8;xFKOhGWma zlUWhpfhE>57J0H|s`DcBzhZd8`ROJD{T>h=p}H;bgs-qS0{3;*7hF|q1FoYo58S>= z47h8QQQ+QDx`O+?-W5ifci(te-9Ad*2d-Gf*7o&YWb@y%3xBGfCH(g#7hBoN#ckW4nClZ_{i5soa^`1l)s}#S3hfFSfGjw6N+}((PcEx4&8t`4pNP9lI~W z6#r^X=!kTMX0#*jR0r^0c9x%}T#W#?V$ZC zQ*FSAvyNp^!x{e|4>q0uB@Yg~U^GU|xb?KOXLTngoia$N!LLD!Sei&|92 z`|AN5YsP2%dT=dsmng3<)PTK(C-;+A{!%kf*4*_(O`K;+tK{LpU-U(8E9cXuQ?Wjk8pINspTJo`WzCjOSgZG4Z1ri$A)zR+BrWX|)?HhTV}Dy8FOy3BT;w1VT203*Q2Kp&85%cSCWf^fK&-A`>oc zM)y9r2J^^m0Xmj+MGZv4`1)t<)%I`eN?5b$Jg)5abu08cKDN|i-MQ!zvKae7D7aNu zA7NkgA2CZG%m>S(jbPN&cV zZEgkEzTTENzSc@%Q(W6hli_sHR{0aJO8@^3#^{9UX+3QvIje;2n7+&})?xbKgc4E^@W>7JxIsbTHg zmRaJ0U2Qx`=O)#Fy{4!Ev?l6mMi%D$kHUMh?3G)s@=R-sYin7H9brLOvy?@oUbX)J zntCbRfr=XVx2X#Ym^!w*E!~5ee@!cR{r%Z6;xk>W%Pj5E%_8Pe|^jk-5J@}hGkW??;DLl z^I)df{|7CBbAaWYz{Sr#0_53FZVQ}&KM#JB?w7kR@nqN3o)Bv54X4D&R>GKOB@$a4$Wle0+hYkyyy_ztFM5vcT`WqOl7HU zv05#vw6Yj1y3cB|u%0Z~m(->&RyVx=#oWFOxw5y3Qq1Qf_zbS{J+jS0be}zxim-rd zVmnVy_`zLga%(q4zr`l5lJ-(z*`4nN3(q)J?L}`xerz>k$;lGO4?w@It5~%^1^+=; zJY5lYRcD;m+m!+>6wu6oX$fmsmVcuoaw6=Eg#Cl46FkYpGoNPA>lF5AIl4)4(IK`{ zW52S*{TA}`}mg-KK84sIjII|RnAG(QD)P5d`{pSBi-=RC0{z>G&8l?X5gORbujvm!}+km99N;c za$0W)d1oX_!+gG~0lymB2sT;MLJUbs$B;*6)O?*{S?Xs1=p4)(3a+TzOqw%A@9ORp z1^NHQ1$VIbtKs~)-mMAjv@7ps|IUJ^llAP>+9INNMT2GB6-4;M*N0fD*C;c5dcj6i zqH&dIvX$Z>Zi1Cs!JM?rN+{bzRKP9{9|<|XDCzK&neb$&U#&Dh0e-0s$Low0uol}= z5*%2rmGTlC*=|YGy5=P~vy+mZUb!j(zV=pM#M{?<6MUUBL{jOLl7yP9k0kGHdbL_C zf=HCFHk)E4&T6xKL8fk7-c0afuSvQZcL?Z+q)vrSiWmEYDACj(o(Sm0zLc{0#ZHPh zyC^A@=&m4E8@^@b&FaI)ri@)t)_3DT<0M6GIhFvwK$Y|;?sS4L%O^@?m*P3|V-JY( zSn9l2lse2k5Ur$|R(3VRTYkI+L5sNoHL=o#gnBGq5Nk94YC?ThD5>exn+bu;r4d1dbq&Q!%q&Rw;52VMkSGP=hk&Ot(cq@RqC(UDS z9Rv;beMI_8v=; zve~Ob#=PJQzRTDlE2Sjmv8z_fNm{{b;7`^dXS>I*Pby%IB#mFMu+^-SB**X_NvqjF zqASX*2!*X-W27vvQM~UOHiJmC!&(+!iEa@Uu=^`^C#_|r_@!THzn@p^OIpXq!7mz+ z)>i;(5@xaU*^-#rv`^ubZi23Cy`8j;UG5<$zK3&i33Ch;^u~*B$vasuNi!n$CGBJ}l0Fzy;k1jzOZsAz zXYwxAsVBz6{!%Y_4=WR7`WR}yl$8r&@q-#Amol#~k%HsQR>^x=fR(x=?`O@d6p{QE z3zjsg@xHh{nnh*18ww(+nko-vP2-M0xCfzfpjT&&O5bq*&VWoAj8BF`ot zXE%rvA>PI06U?O#YL>I`jXx)!WV?w9Sf|MUB!9+S`l3u|e$Il3gyxs*BvC5sTIY{O zXIWrB(qs*zCb@jYwo5vYufSUX&PvK(lHu|-o7^8Y#TxK6TS$cC;ZgF}ER*P>qt8Gy zJI_{0>ahx`SW?%(bf7&%1tx7JH=kz*tmI<;h8-rt6x`rFOvkNs$mIh2f(YyELzj!} z0uiRJuuJT&m1>$Vu@M6>pD6P+|G-ufrJA}z&VFL+i4si%2D$-lld_MB&FnhcDP?Di z-GKH<*|7fAR!dq` zC*1rSyG)eGUZ^wLe2?`AM=N=3QJq-xLzXY;lhF&zf3lN;s7F46-^o&XP-lteN35Tf zGR%q+MI>roS0)IV>GGz0v!P72%HU2^nPrW)7GyBh!ymThX0wyB+)A&Rt1HDs*hc%! z9?FuZQS%5}Jgs2^UnN)4+`2}CI?83DM0UH*F>^ho`(UzZ`gL4bjrvMoNow>-=lV*7 zAg~EfVo^p^qDfZz+T1`{NQ9|>Zw^%U5{c9sD@P?^>P;2D2ux3;-dveW1Um?5>6Xe8 zNqeBBTPo>9d8}~CDR`dFN+F}Xv{rT#;n+Nz+*;8h$tK8tF}G3th{V_oR!SwE@_S%z zuXsHpQopV}Fh8XNcg4p_4O6-+K}1-CK`A|y)kLBO!<6lkum*c86-1&2 z`zj-biW0T2d(1pQDU~#5?o%m)6qjKr%VX~>4^0`YWJ{X7X<*6_C1g0ssJ9MP%7{`; zI2wm4<&tnT4plxDL^VH5`GN@NL4^%dz9%X$jhXXI$}r`c(1c!>Xdb4xJ&P%%0=05| zR`HYcP2h->k;+gjtu>EPW=rbZD8n4B6j^DlIYv1w>6LXSohK__S;-B4ZG2hM*3KuL zrzn3|$qk;DO#7YW@aAWh7Swwm4%c48g<|`Yd?A#Ouei6G} zlG7lh*Clmp48NmR-jP%**$sXz`r9$^q^5KmaGgS68$qpi6Tlig-p50Qj};(L#JGIO;M(Zc+~Ex z%1c&?Pf1l0geJ(6Q__?RM56CzDz_wI-_2Hfjl!IXzPnV}Bq;*=Zk|#>l*bO`op#Sx zhT>1cpzki9o13yyDIrRPp1e9`m9lz_kYP_=rxZRXs8-KYtWeo0i2C(<A6GWm!Ta?D*FkUi^ zqisqnNw|(}Q#wj&Snx{9Hl@3y`ZI2VtRE4kw;N>htW=)zigJTUq`p(hj%M(8gkkEt zl?z14rZ>ZjtG}-NDCxcM&r@DkZb^!T^xjbJNt##i6_7F>t%#YZRBmx3&%c;bssu>FGL$M!iEtf*lMST}5!!6!TB>xn(vKPN~>D+Q&VR8Cu|Tk07lVS=a^T=C8;eldcumcCV{6J2rK zpB<6C#dP(^}64vJ>S`AA<7i5k45d_yE^@RD-fN-w5fQ65<7$CRHG zmx)+DQ7<=@aw5?u?kZl-+iK!BrIbjN{hm@rB+7nI`G822@4oV}BrM;3<&4mz@;y*) z5Q+8nfzoRdrhsd}FXo5JXdvMJ8A1SSfL_d3^bRrV7%_F72DvM8j zq`V`D;k}xs-jH-VFe6n{U1HH@DjQI=JXKeNh!WXwnClF6oTT<2px28I(gNZONC8$X4DRZS8yQ^v-y8r9THN#BPbPOYXcmozTrL!h;S zSa`t+pmIs+gT6?0SMNz0Fz<`hnrh%wOkI?=mO6k4Q-@#asY9)F$i-6~N3?={JNrVa zmwJ~-><)d@KZ(S=1aHrXLz`&js;i$GV5OU>b=3AmsQI7Nx@t6$m^J*>*^+QP)K`xZ zi8(7!4V*^#WIO6SN^PtrNb;%Yk=9&2FX@|UZPQw-7he#XEoOC3YpXsIL^EwW)pNQf zXIoR-sewdThR;)i)pkNgvs8Pv3(*n9X;Qzm_G*7gsgs@tN|n?-W>{JWwLsF+=ZB?r zQV&YH9MdnYv-+{58qYrs^sS^*6P`}%qCSw+cVfS^5Y=@C<;;{)-^@bPT9S(4$Lt|$ zT}cmNq;^#sN%8_&SGAR-ArP;d+EG#*$hxULBprr$-PL}QzJ+zAyBaC!S-3yyp+-rX z4fjVq)bWyGfBCl~gj}s%wAsA(7b64^T}rMXUS) zDGXHIB-IBi164mk(0kxFgz9>tWK+X}F=^rIR!OZ3CIIb}gmdd4b+4rJ({BPDlr%MD zO4=ax2vMSGPROI=LF%VcmK{Ak?P>K(Nw|tWtzIA!bJo*pg_ROO^XV5Yy*w>#usX_0 z>(ic5XA|N0D@_}&nyvIn+9)+*7REcG1V&y@i&j@ls!``o+IaPnRmRdMsCTV0=k$qc z-`Nz8?&Bt@BP8J{j#XbJTEWT|`KC`*-z7?9U)O1zK27y|3FC6%Zc^jYfX zl1x(vq|Z@*BuX`5oy}8!k@RT#Ro8jyJxREZ%~#nRw3%wc-P3&4O%m4p0@X_r-lH#2 z1Bk?$vrug+Ww_ohRNG2QgjR`HJ4;#%trD+>Ny1iHqz;s{C3<-JB6X-B>Jy9ANkmxJ zlhYTg8>}=veTj;{Q^$PH3pKM;^&6r@Q%a~C&=o1W(ZdYS6S*m64|})){Vrv1!JTlr z`bf$?8F$h-T{X=WHgnbJ^AVhBGE$%)W-8M9^45Jtn0o;Z71pN5Tx#sUJgJS zD9OD6(zB8h^N}VoNZ=a;^ zNcO&@TVqi6sig24NMB2OGY#oSNf{fF?nvr10O^sW|MW$2UVt?rM*kYMCQ*UOXXWQSN(Shnxw^taVZl2-cs3iK0^C{daED^aou$4Z&{K+>>v zNGd!#1n;YG4JcEcB;kBrrq+;zGgz7GBME2yGPORDnDxul=0qaBchnFoJxqT`EwGXs zJn4P2mDG$w>RUuuXU-Y#sYk6;JL8Btdokur%UK*1TD?RhX76v+>ymKx{#Ly! z31{yMYK0`6y)URPi46Wysjk0MJtX10^qpFVNX*_B)rL}rv-d@{r6fEp{9f%K2~P{Z zSG!BXnf;R5R}#+bm(&PJ*qWEs5t1gXa|4PN1huQMA1uAq^~=UL?dV3RlVX#NoO`UJ zjV8~1&yEf@{2G8>5?w^PtRc52}$Mt^D_*MC1H^Y z*hBx+jOtnoNzHrC@TsNsl=R%F89tuc2%sFduD#}F8+Gt)xVs>kzO(GKa=xwy=R?YH^Hd?loPN%oiejpO3F~Qo;A|8#gVC^2! z5d~+{U~NbmrkBSedYnz}sO1o)nl@#h$mpc4lvI+vHMNtrK@!f2PifmE;YfW-+a>83 z^v}-PK1mnWUv=%Qy(>xGbSk5Zc2rV>P5o5P7P%Vf^oJjQ4mPo?0nO<5hk(kf=XxE9vonn8D zXQ0g#x>FpWxk|#a574}bL=6tmW)qbwxE{fK)#zk+H6UtKFvJFXo-^Q_h|)`ON1%3%zREePn5`3)a#r% zUTczrDI~J~zG0aYw5dcXrWNoR?F4NWk!Y0(TD+C^drZ)NArfbKleOO^VGT~!9!a|2 z`-@hSHHW2`f~f1s)*5_RZ!gH)NM>eD{P(t+qD_$0ICfC2I4zzi+0=iknN8QsLPq^% zx|U6ZB^s1DU3k>Qa1UyXKmFwEk`S<>}0+AS=+U2qH-n6uYT4m+ILdc(Z54hi8f*dYL+W|{W@g5 zuAL-GWgY#)v-WHK@-4FPtb^KqqEr@HCpxQK>$FnH`uIg>9oO~~rLqrv=4GAIIu!`n z1K)XB=d}GqsZ94>mi3+1WR;NB_gj|rgSMI|mDQ?SlJ%43wOYs~`IThd)>aecK^fl9 zx~E+t5;gHayH12P@nzNn?V*(}X8ozTtU)U%TWi*IKP%nLa?o24;dsBF<)RO@l1p|? z{f3q5W&7xbYtf3h?+DOKB;nqsfxe$8nSD^Fb#_C&<~r0AdyOW#FOfK%Y@!EB!jsvi zdXOYMnQf}KClbAGd-KAz_j^=`0NmUg{03nAgz`3l`~S2 zq}r2_wo7s(&0UfXk>*}W>qzq*Njr(kB^@R@E~z2WDM=n=^PHqb<1oGNB-JPS(W1E# zWj7^-k?cQ`j*^uMNg0%awh3#uz%-3Cog}#uxl3YX(@RoYlGT&+Iaz5WsSRnikW@

o`gMNH$B-bCl}^l71yC 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll new file mode 100644 index 0000000000000000000000000000000000000000..81b736cc09da9f13d5f2314d04dd7f95eafb8838 GIT binary patch literal 62472 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 O>@t+|;KF9On)n~SqjfR> literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.dll new file mode 100644 index 0000000000000000000000000000000000000000..f656e5e423608e46dbe3de1e557b6e2fc95158d4 GIT binary patch literal 1363896 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

mIKqcF)z- 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

|EwxolSJZ>S32HJAK8T3a6^s1K%Ar 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

8&VXGvj%>^QL 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Memory.Data.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Memory.Data.dll new file mode 100644 index 0000000000000000000000000000000000000000..6f2a3e0ad07f3da4c6be0fff96acfdbe69d06af1 GIT binary patch literal 21368 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 N-SPJ6M)<42{{pN^vXB4( literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Text.Json.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Text.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..fe2154a3bf3a7658f106424bf00f672620b14e67 GIT binary patch literal 293240 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Ȗ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≤FdeO3=4~-se&ekj|z*XnS%1eCxpe)JVs??V)!dz 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

O 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 v!Urt2uavGua+nuE`nZ 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 WEh9E(pL;jZjM1dJ8d+Cj*na@ktwkIF literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.ApplicationInsights.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.ApplicationInsights.dll new file mode 100644 index 0000000000000000000000000000000000000000..92d06762d6a5f3fac94ad52f43ceb76bd5cf388f GIT binary patch literal 336464 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

yH%_HS12OR4J<*2o02>8oYwmJsXy`bVU z?9;}r15Jaz$yf2bMMcbu`7$Q7_7Me|v3aUPVXbiZ)|RqZOp?QQHZ^aVK^oy+I|KmmB*gjs*g>ExUD8i zSth_)-W_!wNq)xNQ6I6~1_cD&QJc@CTm*iO{jAO+$v*p8y~Dz~+*6;C9xEfi4hy=k zwwi_8$s^c(6_=qui{lyYeYFF{j7t{pHl+oYGzQ402=y!FYO?%)vB%L*CJe7_n#)1& z)Elhvj`xE;s_#iy&&x)h+G_#UEY}X_(r0y`l!7zlvpSnKWAh4!f7J~(O?CL9X0dR- z2<@#+wH*}=e@h(aF3w0*3t-_qQ#Fi%>qY~wBHSqshD4}JM(#5Ee z&x1;6CrCIy4dI~uiGt6@n&$#lNA0tWv%H7ngrjCI#$1vuMc_E-sFg%1$>I>imDH-T za!3tW{ewO^l+;?w?SvJ6G_eTQ_Avv#>1LOPHOmo}pjSbawK6EUVjq|OM^F{bljG(#{TNhL>&c31 z`X#8k7DFjzPt?@LbDSk;b`fVSj^Z#EGq{$viR0!rwGXbXWwGL#mJY6~xweLH6YZ@nu0wEBt#~@7 zoM~y?r)zLC%}SCfn{l6AFhWZE1~<3qv4<7DpNCuF@iQ~r2fm+|uiNDc>p#zsU|U@A zm)YTkQf>{6Du^@6ozD}kY`K&>-!J&9LW&7)Q%Dno+ZED`;0}efFt}48tqS%iq>aH{ z3Ta1h*FriJ+`W*d`gj-8xnN(L25qv!w*&KAJ7|+40&J@PKf-&J1#zcB+xrCCQsOuS zY0li&m@-()$-rFYu{=b(OiCAHD}1UHqTOYkOR)C|(O$8lx1#awdzA z9@=q^8x~z8q^I^hD?Yk7$Zn;qOXEppLV9T>S=}d91T|rmobD9TTXQERTIx)%1M0+a z(QpmhNAqD#in5A6TJ=>jPrD_JLi)n*%}f1~(Guj!nh1MNU#%@^re)=jP7oKtIy|Hs zXf!EZWNy6`+)rD?YBSP5q@R{U%2mGhhHn;VH|2J)hlhpq*D9~Z@=`_2o}MAmS}beR zo`E5Qw4J0x@wK<37^?Nm#FUBfD-xfAhiL;yIPN1uhG}PQf~z|1o|FZ9H%7~2VeiIh z1J+3W3={ylq_)X7^9U~hba?*{sQld)e?2z%=d={SfOwg9It{#XFnV=nId2KYrB<(6G zQH1xI9Wq(FN0NKh6z!Q!3qq!7LF=*B$(E5b0@bNnAJ)Pd27HfqHmf?s#c4}eT_G+` zJHe`&6sS(qF0r~K8Dg6D2dn?gKy|wIg|&31A*O4!H^}m`X9cS9S~J$0SqA(%We?U~ zC@(=9!g>VdC1{ISRbjhCZ8ggawoBB`vo1n;GqmfhcTnC8?K26FFYSG1YF#&C>GIQJ zme!MnGdW31Af<}I~R0rCK-E z+MTgp>6#ZS#CN3EGA)SJ-#6B4xz>|)s^mzomD(g$-%=yJR%uIEQ$ee>J*>1dM?x~S zeWWxow^XdxI_&^S9`!e92T5{%Zq%}QyWJ(+G^6tYA6oAndK z?a<0>!}8=_yi==AlFu!6YIRA;mW+1s%1*64YhydB*r|16J!={d-vaN$`T);9cWFaN zGsWHXdm+2Ebe2o(FClxhV^VM&g!hBBv%Fo4Ve!gd?GCHsFe}78;q5S&ecC6MOYG~A z{aW$uSZl23y^sT1Wm2-`t1j{IdpgZnox4~?mez*V67Jd_)Ph;@{dq#$%5sVQ5OPwp z-H;CbCC?TAhNg0r=TyD%4wiwQoft+i=l zaE?}HcYfTA;0s!cO$&oBYM*Ud75uF>bWeWDjlq|-jW+EF{$8uQH$U!B@D(l3rl~&H zv{n1^{tSy{E+-#JFV3kzMi1 zLoJq-v&$+TYSUP%TcG+#OJbFDGsGip0qga|c;&H{&eA4X#ba#^D*$G}6KxA?5X^!n z+FmKzJDzGsNOEs{s%3LZU)WckYPVQDVPAQwJz{-;xM$i&mO0!C@85|-vJE9*FMh6- zV^xB^__1OvG(T=tu+Zz-v@uxKTiJ9jSktp? zn(AY~zekeW;fySzw<66HV>??xt69Gvhc|=uova0<tC~6VxNUN>8qq@@2H_~&j|QSw%~b4Exi&8&qHeI&aAv<@k(vIHOsy^yz!!YkmP<;N6%)t z#QqjqSFdrF@}yeV(;M1UMz5z&B<0%Sb$CNPUW%?e8tRKkIUx9*O#Q?;Sua4z-N{!>UL;hA?6TU=Fm z=3O9dff0tk+J=7@iZ4tZ=U*V_2_p)r>4X&y1#$RBRx{gn%b-6Cw5gd@6zI~>kl^OF zl(&XDgf-W{r?$_utjYLIZ=wIl%E~Ak)@t}E7s1A zAD!Cjo~(uKKRUJ3gIGhleROKC_hH4leRS%e$FN2OeRS%mPiAdt`O&G9p3K@%;-gb% zeF^JJuP$L8`p>LSP@bp$3+wFgk4|0m_pG;&OIKY#FKhii5K&yjI-O&P2=yFw{N)`7`kA$lMyW5VRHP<<3hUYUmJ(@Ci!u0ldsn4U?J z*V+;K5!T7w3&JAxw>GU0>!WYGiY3T1+(9_=y%+0o)<2*@BzY_tpf6#$#O@3ms2?Gvi@F02gbmUw zU&qo>7s3YX2_(E@eYV^XeIZFc9T=*wW8o9fiqv>S*PnnX&eTr`UgmsZKWQtyvBuk&7S7l-8Q}o^}EPbjT zBSoc8)t|Gl^f*0_BukIeEw`uyQG4uPVR8CAR)Y7xVbk>0Bsr6(>sv{(cjNUOnUeOZ zc>OjhUEE03!{hag+n8s%Xy3U+c%pulwdZiz@R_>v9gIs8d$aoZC+WRyN(f8V6IfF= z^zl#8pRqbRR1g1JPx%?QOBHwA>V?nI&#~UZ-al9WlawwhySs+Nf8e@{Dbqze_pibi z=nf?LR47$1C*v$9n|g+)>MpErn|gyS-9==-lcp&3$3|SDqUe95D%2*b@QNQ_6#?4r?K76yj^O4l9 z)U5Drdfz9gRPl2C>F}NUDw{5a@779unyjz;si-j|dv`X3Sz$Mqpn zmI>uQRXU-MV$Cc6ZJiVPBu;ts%&L%+`fsGi%2v4Ne_Gdm!8{);1L2;3wqBaG2=4i3 z>lI0IE@kUANb=~Gt+%qtE+SiBCS|FYVvRVXZ(^xyDuH&9$Cb*lAOC| z^@cC7E?8cBpL2Ron`%eo=u=5EEd$|>;01lAj1zCVyGC5lm#}gg!|x*LS6^Z-SkDf@ z-{`MN@_yDu-SR8OrHkr=cbC4TS7z;7+#%vSeK709dasDfdMryU@{0IgPiB4E7!vV= zp2iC35)yGmUrUnxa#i0-N~WX!RsA#zkNQ{ji>!a)tn!-vkX6iT71#6^tjO*0%60ue z*5K_{ab36khP6(%2-xn1UX4{A&PH$ObxHEm;-)@{V5sZP17SD=r2ifPCU{-$~f3llOi7J zm4Byt!nuti9_ig|nhSBuUdyJc&ayiLvb)-t0SK28%eneUhzHG ztGvZHd1QE@yOPqOy!8<;^d6*Si(lGSP&6sg5|wrU6hq3j!#jyD^;j0(NqnhKW8s~| zU-cvw-bwsbU%H@f-O?5_1Pp@-UodrDP0VkemdfV-sm0HOvdHuZY0^)d3rk* z)+JBx%EG$*t^2dEE`RG0EUe2Xy)O&v@=1@8qPqN}FCoeDKI_LgCHD1a{VWU1`>cP* z!t(yrZ?LeufAxDTEboi{jD_WW(SMhs^8VA`lVo|qsQRA9f%;k)wOLr6FdDP4JjH0q z!txZO0}IPjjczO~Pc=fMs65S>NRs90#!^m+?bD6bEG$nqHnXri!`RKj@(klJ3(GT& z(=05{G%iX}c}0xs9}33LVtA6|_*o2J7M5o*!dO_Ioza_x<=Gj7Sy*0CV-yR^D{4%V zqVkFvD@n3__Qp|8iS4sD&akjNd*fRcmRH=k&cgDF8+Tb)UJ2tV3(G5Eypp2w91MrQ z3fkvrxc-lpl5*{8bc|OVjn%A2aOca>*d$ZZvmQrd7Ym>DI2wmo_^hX-af*e{dP*AK zu<%(=DdP$YpY@b7ZnGTW*-L5T5z8H(y_7ayvL?VYn=-~9td;Q0ri}5Kl&gF*$0^8a z`201iOb2j#{u)JEvVHTEG%gAP7d9{s;EG)0KaZ`%Qt7Cj5$@1zN)_)87v#wEvh2_;X zYO}DsdPXA_mRHYc$-?sL8|_(GUVWpR6qVP&NGHki8X715Mq;f7=wO^>tsH3;9gSP86G4OgI~f9gO#xaY4v(-3Ps7T}E^ifGjQXsapsq%HR@dY_ z(aq@13IKT-(^zAZ2l@LLn^|AY9^~(DTwxWTohO2fx2(m<*Zf0_4!SJ;OH!VQF#52b zK`v273hNlCm$8p^G$K#*HLkK0*F4eRc*DBbE>8?FN*FTFc5Cv)Aj5^#3pB)lFAGv@ zw?fT^8RJ?1ly$8-!kEiiS-~ns8EaWNpwY%bmPpGJV~p=uwUVu3obia|=4}Jv@n9h1o zK2OXumaw|D$P){U?X0&@&qc;**1=_YBGvej^(4Y7(u`m8w}WSVON{?miM?E_E;Xzc zS>DbZtH?0wvqIp#nPo|h0al_%C2XIMcetzv`m6Uzm((fCb@?oVtozL4Z6!X~3A{Qii%J~G56qqdY~4ZPjH z*>IH-rFNhKNr_@N%(u-(Y@zKo8#{TsCh%VR79)$4tL)kRXT%ocFV@TbpCYy!)}mNm zswf*_Ms7E%lM=d?HU69pKkuQ9CM5taj44Ny6=dBTpIi95F80awa;g+G(Q+>xby- zyj&1OV z{UOKjW6e4lubej`Ses$Co;R+Nl1vE{9ydZx?d(xy<*&Fy@Y>9a>dAHUEdh5Ts2;^ zo^6CHcH<*!-NN7WYX<&u61Hgf!m?r442xB27mU$$!;y6u#^}0HL5h0*hT%*~7hm8T zus8D0$PC<9ZrX(V$}O94UKa>w>m6Gh&epp&*}3+Kyl2D~D(}9rfa}uCVRGbsBb~J# zM*6;y$=U}aec#wZ%2hCz2gXSm2eqCR`OtXJDRIOe8=qM?Vvh|A{Bj1418(=k$RQ<) zB4_$UJ~j51!?-k2sn3GQXT}SX+#hm{Po#9q({i6Gm!h73X>=v!+Tq#LOT$k}aclCc z{Yzs2>lf>m$X|`P3RoBTM#sc=WnLLGSsVJG=CR(w6Vz9R72aOMl+WOunpZ|Al5F2A zBT>fD9lBS>EK<7Y0QX;B8Ck3&)}xWX8+Mf_7fSios7gwWYq_R4M9-cgD{Dky4p@-VXQhcZMAc_waW{ z0~Y?a!F!_}3*Y~IZ-lV$sPVz*&BCL`2V)Tnj|_hq%UF11_{&&JO0-Owb}jNRV=HU^ zv|FGonUdZ=`)JgwLN%kkKhJ2v!oB|=qazFF%NHZSmhwU57bDM>GB;8+AK^de6*I+` z5|zSCb89u!EPAifH0`US5`~>BJaIQivkrOHb}V8#I$@mrq_mhlNr_^pco%6gAp-s` z6vw$_lYw)oKscA|Y$>sq;AgvdJM5(bVK3R+;;OdJWlw?cBAfs%8#J z&hqMJ^O_i!uQ(EXXA<7?sBR`WV_dF+?|D==x3cg(kLu=o7QW|E!>nA3`dSq0^sY<| za~>((GJaRFs2b*aR^qObpzS1CUQIJgO8n*8+ejk z$8=|T!1tZ%njKjIYaKyete=L%Rh=2c%7u4o>X|)Q_O0Nm&WvW2Zv|I%W(@1e;&J{B z%vjbRi|>UrFsDh;KHbn+0Ef)BbW_{#ju+TSc*X>IEDWbb|hZyU5Wi?ft-@k$%h$|`lvD%zM;SrbafD{al%tmM*G z(bjCtYTqGVX=k=%1$MBCc4i0GD!Aw0-t5NOU&bohn}MwA&Eu60W+ba^bGS}5`?LOo zw^KTr!&p`4!&R#}j$~s-jDmt07Sifh*E1k`GEOF2(I-5&b6|C`!hq;>7 z0G?ZTn44L@Li;?;-K-DLK2P&7%LCfb#XQXlhc~UVEJ*zGpd%VputhVi} z!rQDOMSFmc=}MA&fR8z#0p$Wmo5oRo=4}#u-w=*Ae&(`meqDSe4oVJ z#=;{?fVq!_N0b2b7;Btsi>N^JEGy2nHRwCmq>vRxka>eOBczUZka>@_bAP9(VDlO4 z(0*^w?<~)up-~~`2bS;9-k>k6*dw7)p{D5~YaMr_H^_nY<#1?Jm|2cx2XSF$bt&qX zaI+~%_Di@K&MEtp2p5rNA686>c+ikS+eMjE3T+o<&L|Yu)11TG;qkhsxtN8=>z?LH z7WQB-a{~)|u$Q@$HO?bm>1}4Q;ykRPw|SCP%4dbq$2`w+@~Pw9$NYhHVnV#q*Zhf< z1ABj8^C2q@K1KVPzpz%pr)WR(Ez1es8R~E5u^PZTL;X#qk?hYF8RPt;O*>Y*jC&!` zW+~QIhaph|%!;gi4kJM|rKooYnypB(cL$owWE{-8@lk`#1Ed_~`r@gew9xF=ilZ z->NiF6l>UkHBn>D{;aqG+d;!w_2GCn&K$>T1;?{-W*iIK7i-R9Vf$ju`BK!r@#Y$m zY~OhE3a7;OO*H>uVf!YUdQ)senz$5e4V`56CCTI(0PPcs{^@GN1v*^Gr}3DeCstb@IMM7-(2 zy3pGZu~RIi5bm$G9q4CY7S?;f&0))%~%$m@1~n^ zEIi*$H8xtS$H+E)pTKPb%5Qo?(Q_lNKt?8GG~!wf9^7W;gqk^?mqJh3wvFUQ?m@FOD;e@UWL9EjK%R$8XBPJSVY49%d;YN5f`$9v5wk4|_rD`%7ZQPYow zJ$Td%m!cj#X2y_Y4<0kGa7ygK6Xq=z_TUNgQK9WlnlDJQKTnz=?PU8F3YZ{yxpD`D*=D?Zp8FLw{ zv1g!q)?CYKWVqtma;{U>*f+$T$>&@&2LDl;!Viss9WYUQo5Mj-LJ>b zrnLi>fX@oTdfYPuNy(PDalLxnHzP@jmO101LH#*ye@L$$56od4cRVB-G>+r0#r5j( z(45L~58|Rhvp6n$f3F^o%y}I5{r+gsQqoMznLTjd)ZEGHPCCciwSnibkInB`z8&G7 zs(F)j1HOOs#JtDKJqF+FF`u)BY=!Ucn7^}Px59UK%sf)Mcyc|N>xA3oDv#lA?=R*>Qks|_71smQS&rC~UbB0= zFk?MXiQ+G~%6erkBguO+ugsk!dH?KH{{5xmSbBl5bejw;{rCKo{|9g10vA=a{lCvS zGqcYC;)tLksGulXR=(3j9n?w`Q}UGxI4GtTJya?+j3Jcrt%=X91|?r%X=3@H8U#&C zD@(6g)*bS3)2y^C&FuDHYwa~K=Cxn<@%iiLtndD=z4rTgHs_qNV(Q=7KA>0@izy>7 z#eQeI%B=2)OR?YE67R&+;jPoOu|v<>Mlfr3`>60AZ1`Jt{&T4xZ3~HEFL-X`kG5^f z&m6cJPBm@2nN8RXr<%5ph^fCS{ABxr8Ga$*C!6&yj5A*pdd`MivV{}N6Nzwtd)c;# z*~)h=i(hPS5GyddMuw&QYI~d6-H|Is{%U)d*>l^%2Vb>)$n5!T4S{`1?6ijI{bs9o zcTE|7w>2iFo-O>{c4sx4692nxl(G~}l8Q$PxxAV+iPB|4ABsgB@tzH_$SK4YiCf|C z4_3LBn2OUTE34U*c$++-!ci?r`3*CyB`Gf|CI&f5Mw&7)2~$vYW|sqr70?N*UAl-> z7>68hj0}JfuFUY6%W#>*3{Pz%ns*vQ??p1D0jM9Pnd zownl}D-GqR%m)Zbdj`)V~V zth4-_*)OpAc9AETIpF@Ui#*2+-%GwjUSx*vCEp=`BevJXzS~t=2V!0CHL>q@l@33H z_p%b?9nA2(tOS|O40}&E`93r3J>BFbVg+V@*gwr*prjwQevm=*prjw zi_EYmC&_ipuqXGGuQ9`(+*fXAhCR8T^fJSq+)wUfhCR8TJVZ>rQw17(MGWiHk~&Z}7=o$eDpN0Yn2aY@VE!F?`F*kjvvaV=yifLIhBM}HIe;0? zn8Rfnv3&E+<&9ED$nnY#;%o-&gz^J+SL!JF1BXj5?VswBw+zM93rtJqFkn5H)yo_W z>|SP}aB7qxM=^_rQ=<&|5Hqa7(Q+EI7Z)8LJX$`>>~7ezkC985-3NR2F>(#DeDg}J zr$=PUR}_QZ`fzHdd`nqEKH-;_{B^oQUh~fOXH~9e>exGVTT=5>1 zQOvN{Jt&(JQ@!p%c@s12bq~t+%&^yG$*#<>*Ja7x%&^xzB$Jt8uX{)iW`@1)A(=+3 zz{Fa5SU$iEYw2M*g;`W_cIqQ?E3;O`(|~=m2T(!f^6I-`@RJLS>Ej>{# zWQHw0QT|HoG_7Nkq&Y%`!`7T6BZ!^0W2;P(P1z6Ic9Oh}8Mf^t*^OA09cQV@@=j*h z=O@d1h^aoGEmN3bpU;-VnPH#LmZOQ~o4Ifv`IyXBel!9elR3<=&p##?5-Sh|>3OM- zOXo;xF?xIS33(r}JP~^PtkfrDgH-g(6H`N5x11)gRNxS+4fz2qW6;b1 z_Vl1<0@#8e#}4Bum4P|fh|^o4Ril~2vPi{znd79keN&#GCIsORKK zVt7xP(Y(+fOD$YwmR2)tzZ!<^SHo~tTvly~y{Cq4fgV!BtX!pVoj@$Ke9Wga-*UQ(K;kaEd zw==_WyFq%H;kex(_cOzByHOruhU0dlJjM*i?MC?(G4;jrSLFB1cETyZEAlsHxVI^h zK`tsEJ!@Mc8!&UFth8>D&6z!r65nr=Y|re(xRusdrIXn=*nD$NWmpIWO*Wxvt>)`Z{imf6(|PL1RYVmR*}P2DCh5>xH> zhWwQow%;34AA_-|_IpDHF~jzIL)K-6?f0gPVutPari^2T?YCXFCYDFPC9++1WIt@p z9kLrUY|S0=E@JA=W~Us)40o|RWd<{B&0X?gX1FidC3BeV9Gf<>Os-+Jd+Zos2bkf` z@h$l!Gu%18B`-5;Gty;!TLxvS9@2Bav#0`OKP>PKhs<>zRGk*Ja%;cQU)wcS`(jd6*fF;tE+sOtpK3 z{EnEK=PTsT%y6EskiWAf&J&f=7^_+g=ZQ)g%nav=N*S&g^`1R4nwaV@d*pNMhka>} z^bk{X)?T^4nnj4c@>62ids_8>R}Q`((^I`?pB%{yd(S>OnwaW6`{V=6u=nhflbK=f z*)N}DhP`LMoWTrx&wFw%Gwd(#$wFq>U*3~15L5l-eYuet_LukNc4pXL4#+*su)iFT zpD@Gza!_7jhW+KBY&K5y0_-mz$d1ggzkDDE5L2u6hccBJ&a@xO3B*(zeJCd~!#4U* zPGd`KqmSfM%&?6HrrPMJ{D>L0(NXyYG1W##3^Qz_WAYYe*ha@>S7HSw&a|J&KFn~Y{Y(yJHVO88pUZS+`8^}V=kg(DU>P z$K_+pF2mCz$K?!W%b;z)kgqaZ4{iH}e3zISIbX`dicx)jDUUP5`utL!C8p~0@A5LS zJmKo0iNDJ!57yM~-{ptZtWE#FOG_5|VeNM7e^Q<&rfT<;yu=J^_muo6F?HX6O4=U6 zaC=Rx-BYqQGpyayvOY7c-P1CL8P@JUWJ_jPyZ?}Fm|^YyLv~??_x)eXL}oYwzLtHN z;RrY*?`4J~;EWtetiWsme;qh0$1uAc{yK10X0auH=j0o?lo{SneD{p_8YS6?n_O0x}49D2FvJbJn@Y@O2q2I}D_WK*$hkqvvn4NJrsQO-RB&K$_=j9e=II7Oe9n5f4otL|b6_{T^U0;yzG5Z$k`hxs~n7T** zL4M8*@6msdCz)NT^=;~p@;736rV;uhFxw;4nskqTQHC#rmt}Wm*n2L^e$24sC;4d8E@Jje@|Dypa)+{{ zQT3}VC#FjKtNeiduqJ+$$5l8eQE1v#89oWifcK5{(=;=h7}jSaV9klCdeP0>lqG~a zK3F%qRI|7=!+ca((yx(O%{*rK{HN7i!0hzWZ!9)*8ME_C>kYM;9%da&I;BbT0J8_$ zB>+3cY1FozkZEbP%oUHTSYCfSLew_b5z7<(ED322vy_;sd58H$HH#1q z^ISEXoLtAWJb|&`%(pbTt~r;O>Yw4}VrJMs!_Ae%RR0V&S2M%@8E(G940~OKxs@6A zx(Kt38TQ?JW+gN1yYd$za&F;)_eragltr(4mD02Wa905_L zi=hTREu7H#e$OVtk1X7p5QF{taO)1u8`#7^6{b^2jQW7Ea# z-A=y(`-&L62?9ISCg%6duE0*UiTN8_W_sXhWiw(L#(CO4#SAHr_-Cey|2hufya-(;R- zW^c1N?PfCp?9mdxD|SnD`{DWLt-_MFI*3n!=rCloC=u@25 z(JZTG8`3(Nt#h#^7K`m2H>cfhE+nS@uGZP~5mR5r?`(d}tPS*~&Srf#hAS|!FLg1S zFvGso#T=}d*gUXl|2s@a9$N0z)(_m4*42EL7>)-ou=uAb7GNKwIn5+un7S{mmziG8 zE~fP{vx&_FKTX_Y=BRMgm+moV5X&>MFWqC#W54a2dej+UE@8jQO|!xWm@l&5t?(qt zKyxkob%!TO2AZ$2-z~#(wG{JB_DdWVAyP~)`?c8SvfgX%BbINr+cqWsUh@$9;cjh^ zd5pv1Zf%hH75ja&+?qbvJj;InT>BTNr5HTR4#*AvSZ=ky`zBg|bK zZsnd!u_Mh-nKj=tDm~Rqe8%4@nn*X3iRHtye8?_c<0qa)OTXWSS%KlU5X%=ADBOG3 z_9B#jMe|oz4L$%){!0JNlW3NkuU#N4LQOs_AX==L5Y{u+f_Y7b+ zD+c|=DqQBB#NZ1-FiT~aeV7$*O9u9qV)k(OzG;TJhyBK^Mau*1H*`}fu*2;4*{s>= z8D{-Cm>2c6une;aF;&+YW<0Tcc#i+G{u$;VVz|P>x75v%%F>Lv$>tWe+@|eKpKO*fOA!atv&~9oqb%d(W9BJl-&qc)KW^GqVCwne z0r`3Q6J{i{@j)lkrq-swM@u z8Ac3#&s3VD+-BzhzdX~)ersgyQF-QL#8lby&Ab51d~+6CPBY9=`Q~zBD)kv=<_k5c z&oCzuQ?bl6pCYE(Xr@^}EMGLRT8GXw=UrpD;u^~$wtSE**I#2wRfYmnd$FcI3rst)eDS`B993Y}3GjQyjAXy> ztlCY_m>rnSmW@X}V`f)dwjA}W`G#WfbWyUHZ5}43>T|Z~d#R>AXPf7l;Y>8goLf}m zH^*E_OyzT~xt5r!>$&Eu#PY>5VI4Zx+;)v+`8AgN+45Pf-Ke?dp#aNy<`)5$^UPD# zmR(29GrwhKHF}SlZ~hbzZh@(-uBo#Hrkz+me4n8Is0C&nX5T@$g=Qo%Rfa`o^MG)R z%v;#<1Km1wk=fxIOXoF~eb}<6(J5__Ie^&$YfoT9nbp(!083-mPrnCPCbKcdU|

*N88%&E*WG-PgK{#?%`rfPnXS;&?h3{5ODU%tk2%Qco|Y}v>%c+?{E zJTcV^o-@aR#vz zkDFKf{^JpJuc`D)T`Y5=`{QXCXYCveb>?Bz?0iB8IdPGa=(~Slpc^fZ{R<7Ic;<$B z_{f;}<^S*%!Y1q~*QcdoRxv0WA*6`>H!OuPMXP_?UI@GB@*jp0B1k0tS7C(+7TW`A ztZ)t1{1|9`O%$eFE3u9In(N)zUf25GNP{i-uPpyuk1c!SP=Cc2+x`EF;ji0Z-}q~> z{kxXfi~gOM|1*2+b^m@U|4k_DtN&?=|9x2O=l@;m{usKyj`Nk8$J9uvU4${C)Wy@U z_}!Y=3*VJjQWsf|``v#%%+Hb3k@l5EAb0+4~Dh7Kn&iEeai#7(? zSjfgoHnwYQ?p}*FXlWr!cn1?=vyr6~D?8y_s^Z*Bb*S>$5bDq%8;dympi0*PA9aZC z>~Kh`6Z4unQDFlm#^Y}n6(^?akMsGCHDwu4ikA1*@k?DeXyrnUazp;_s_`A4aIM?8 z#vXl@#&TUKSZA*biyF(nh@nPry+J${QE-FUP!C^c3@C-lm5Q^**Y>9|Tg8$;jURn& z|3@k{Hj>lAy#b6Mkp6nEar^5TYumqzP^CDs5jAR$QR6nmmvtQuizus$aVq`iGOz7Gw~`GOVOnk4pk~OE=*C@*CSKfHBj?|b`VW&)gCkcL z7|P&Kf$OR7HVQ@iqSM>a27d=d6W?q=iK*x!g?f9M`&te9>fpPB^!8b3sdA;<8IPhp zhSkNJFQFS{U~Cq#j`YfABgKPri!RjYxRHC*E{sjhLaHoPkD*4%7a$&;c65fAPI00{ z4VF&XU$3bjgfXDh#h1a?x()F_2#$h%AT=>-9?H5fLUn<&hsO0B)ebc{Dh)B1dXdVZ zl0C}Mw;t_XUtfprP9P1DH56k|nk<;N{hGkAJD)(Cd($Z`XmP*&Ux}d^)#rsojQLU} z#RECiL``l3-G)%JM~$!2Sa@dm*Lo|D^gr{p@o4?OZKNnpxHgA@c~EJo*p#Iyw*Ck9 zcCq_E4izL0{g+{bh3|h7Lx{NVx_GuO#@bVTCW-pYFVtsHql;5plrP?Q)CIRrEv{yM zHDjxJ)kdu#scucGD?61sh;kmx>8cnSJF$1IrCxgQ&Of%@9O~hL?SAW098F5EW>?f0 ztVyI84i{qHz8i_LsrjvD9>)0@XP%x8^i>jlHSrtF47w=X@khO~KL)!6O$?7hsb)?L zWeAlYwZl>KgOX}SRde7^v|b0!Z)jtPUth%7)QlIXiKbGkur+QqqiW)dB^WAjCJ!9l zA5wd%np_1lxh6Jvv0NUQAE3PJ(Ty5|HGl3~Isrr7`V`8)L#lowKa+drW^}(pF_ckVsaC)>S`$yf zdJ1zsR#@yOIw}K6_J#8W;y|m6m^<+Hx2A;tFMmoILdPYta5$4f;-{o~)!AYw8pQ`?f*ryZ>CJ zMq?3aR7N#&`%>@4@nuk-x9~oJ_a0DtYWL!=nZO#mQBA&hgB=UDh%N$a9xXM|Wf96b z6)4r(iuH+i9H>!syAfs~O`y~RG|FwTrLqr<=dXnNckR`lQ0?lEY{WjJYEt#X2dM|D znc>Azm}lj_^cGr?7e>drMJ+H zQWr1N=vHa{yHc$$Y6d8og0Vfl8SgHSx5xM~=4&-A)LQc}-ftHEX}WUUZ0}U2i|x5(d{1{ zHTvr{*PgQOg?nT}IAIJbz26@7nmASm^SLq1@76@w64bm0Gk_sV(oo<2O_a})49s)S zWvEyCZKV&?s1t)g`@iB2jNyMZE&}6GdHAd20?sR{$B`x;>W1aT^;Z}3mZST#Ug-W6 z>QK4i`_84P!5JH7Cz{FsN~x92wPnY7L+RE1rkY)`4;y0V>s0gAGYPzlK{*L5-GAe* zDRp2C`12DOvzlpD>NRfve6B3(tibWR!Gn1YbjQ@L(a*oX#$AW%d@uFSRy1nVN_sjM zW2kY%S@hkwx49R}9;nAuuoX(kUgaUMZk6UnGSE`Z`FnTc95s#Z)YOc0qp*LjkEZro zvj_90EN|q-`c!RtZB43BHK%!+XhC-q*QdMt9gIOq^wq^`8q0z1_uodF8mY7Wn@-fL zxk#OdD2Xkii$QcksOsThB5H75Fa*|{|Ge%taNEQe3;gluq6+qMn&`e0WngXtYr97# z`VJ&Hmrg1IXUo9*2&Gpxe|@%B_A2#$4Kc02)>Im`yWZBJ##fbE!hG&On^pY{HM;nQ zW<|8|`>Oe{Msw{NimQe$%Aw!-Pl3>V?M_D7Jh2${abWMaM2#k<-Gwpq>w$f8B+bBq z_Row(8{0&*c?c{Gv7kM+3tC!*ib44X(;iH@Kc-Zad*MP1r7U+tE9ex1UsID7d^>nG z`l1GYX|JTl{m0Zb$Sv9^`AQ$0*_!r24aV<3$5u6|S_em*E;8WG(Z6eI_!7ERyQ@}H z>8kuJ9EHA_UX+2muU8-yU7V)cMzwW)RKLut9*g>UW>UYtO`rnP= z|G#};itq3a3hOhMMy~n`$o2ZbP|E%1HS^!w|EoMW9GdtYMkq>byB9`ce^&0F!UNsd zE={-KSXRF3Z!5|@Wr4E%V{F*ppdR|DP=UVxI>lGO(x18-5f9x}lcLhB*;AvjO{}pO z@E0px*wi+Kw8VKzBH;GN|##|G*Gs z8CZ6#XMdQ~Y3LgjoBt-pb>Da|1II~VHxWgJAK`&=T-EzQo1&- znH$+$-@dnX3M>WY|C8l`nwr*Jop!zck7a!Gc4dR{1iCZ3*XaH3z_94Ho61X>+46ZS`k*l-boh^K-(G6 zIv8qYFRXzFsC|`2rF(r0ff}_F@Rz8jHvAfl`T8=ddw|5XhH#`&L>B`^kc(te}71zM`KZe$sl zlj}nT-o^iw7;Y5XpNG9Z-5c2lTK@GK_;btuEYE?VZsZQkt+KgMxo#9gp#DFLEie@B z(&41K3}>ok_u{y|UQ-|Rx;P4}cA#&d+aLB{Tl#&kj~VZt;Pjq$dfjN24lLcDyX#Ya zl+8)l=fD}=2$Wsm-bWYCUAXSFNXI!=&q95mr8-qk-G+LU{(Jln=+yKBSe^a$fv3BmZ+sf7IXj8KnOvpMRw+*W0}RHm+sw(>cleup;~2s?_T2 z=&$EWg(`~1c&3G8ZQy;nh5lM$74N0vNzN&dQfvUJiQ?sdY?miXF|2xiEFlcT;@L0k zis5`fqbIm-+>UCO_2)7C^|D-FS4yMG_}OC2PtD8^&!MgIYcx^oF?4%LgHjix=nnmV zd$L+{Mhd6ybSJLbi}TqT^Pry7+c*i`MMVu_34Is^;bESLp&2U#6QPj{ind+ zm#xCR9oz0Hnm5$n`q5II9$U!LN|rXVlx+Fm*LGl?kL-@6_+P~tSObA>)xQ6IS}LBx zo>;dg%*KY;0rd>eV8HJ8-!FxVO|{OAo+SMLQ!{E${^x0_+}3>u%RV1k%@C_#hOvmx z;ICs=QH$C@ibn3h_vueX`&!JMDngf)K;oF!VskYRYXpi)%6_}3HT51K!-SFz>7>6wM%v{IZl zjv+7)f9^h$iaA$#2&KQspj#7>#VCgjMTz%x@SR&Hu1(6Vp265b_gP7FSBU)q{x%wc zQtb`u!nv{kZ~dySnnHimM4$|7)x}oY+w7&9#J{@2jt*wXYkOcT7iv-xQ0{yj zWlLJQw$mAcl3|o*LFW>iq0aqfQI_gdR!Nl;m2=gf@vk=izndsu_4K2Xc1pcVE}l84 z{Ze3AKBV>K%QTFkM>I;6f3<_^L}C5*VK93~i1i{;go-E;CK`#xa5aVNh-f1Ez-1G$ zq6J(>L`$(*+)7tFK>U9Mu1?}MQ7k$_99>1YmH<}|VbPr8ptwtfXno*H0(W1!99lB? zCkw=bVj%bp6{eO3*J!XF4Z1O6yD>&&!!^Yi3w#2EoB-)hfV3VE_rlc|t`=||5f6fY z7F-j>Wibgb8{(b{AFO#&bkK6(nhsYkTyD7X;CdRae7I)7HB&_EvjAtqH3zP_aLohV zB9Wyp7LV$MA{(xQ@Vo5?;mtOOwoDZ3%fS7Tn4){&S`F@E;nCLtt`qA4i}j6k9TX*E zy!IN@!Rv6n3D#Ar7*Ackt!F33(gV14b zg6j}m2ZgTLH3KdST#;}!f~y5w@o=?)t1Db~fp47G0cnMPjP6*FL82{4hv)(leo>8N z63G;j!%1e4oB&c2c_15#S>&!F`3uMxQAfiVCJOvD-dW(jQ>>t0wJoA|&07n6H@!&1 zH_eN*$KcKM4x-!aabknkZT3WwAReigE0RfbjN&;%G1SrVJez9F8dW9q47v&caA z3X(-2t)iUVb_?q3fV?bXLH-kZS%XGlT8a2Fx*o{l=!PJFjBcz=q@0(E@$kbcrK0=t zUeMprT}JLoa#xc30J#s4yHp&2j~kYetR#7Wz@@|WIMBdvKx$ZT(OQ!=Pw9s&&DaeK(TWg)*d+@EbE3ZQ9K&XSdh0;A^8TELT zu4%^~JEdQ+tZwrixR)&ZQMYTcgRX!qtoR*d(ssLX#u8Un+rYFg<17K+07xL2r>*VU z*T~a$!tX%ELYxs0|HqZD>Akfl2PKQ%Q0ieKSqpl*z(|Ht#Os4K{9?dVR1iGl2k}B$7;Egnplf0Lnbu0#%frTtH`FU zbwiiitzE3xqlSZ~hjqAy--;Wqt#9K1S-BP7u7Ei2vce1HuKrfLmI&=@*CsrX0&RUb z4Q19Yl=J4HoH-EXvuj;o`SR@hL2k~#Ua=Bnh8CMW88p86&wxDq$b74&$ptIH{d?gv zkZzsFH(3**ETxcE^Nj^YF~pE7N=Sx7%^a|X3vaR}!bM)n32TzI!u_)~#d>??Z`KQz zzi<6cPqL0#uiL`K<%QB#WVu>-%qZ1*+z;bLe7Y^%mMu;UT4JPFx7GU1S_W|*(JHBC zDyc6W0F4#Cr_ycqleWXuE(gf>FwIoMp?=`Y{7?@sfG_sv!!(bjSW8E|Yr9}sI`2C@ z#k#29CpIj#59G`?Df)46YvLryQf>F3CUS#y?OiS97KrV#KncGQLOtOkrMTaMu@!42 z>xYSA8WDL~_vPbc2+T7D#(v9zjw$*?m|Jkn{%}9`#)0oVEU!|2EIN*qiD3DREV6W8 z-pO*o^62)tauKDzNDFPV0^Ff(JS5l2a_eimUX@t_%MzkvKfIv*e5ZiV$sWzLf!qso zayZSd;X2wxgZqdUu8*nL$_&@BEaCbj_}*5yj-xePzqq8cnILY-?g_pPhcuDB)x1q* zjH7tsbZm<_iY<;pwI+9K%6XObA4zk~Dr@?7O|*h}dx_baLbcX$Ty)THUi*oOef5Od z0rU~}GghpJ1aP;q_trBb671M>?zAW9_{EU~9ltG-%)Z#BgTb9|-(q=Z*D^c0Uk2H8 z{fpMYx~FKHJry(+pm|`;#~?R&zW_P^^%t#~px4A;y~!F|P^$hw!#jhrbR4=|Gmug@TTvA`CYOZiXL%jd3z7zWH+8>DG>EZ7<}SU>658C0m}ExQDA z!$YU^LcRYsly{HUgA4V)7s}vO`ncpsaNDLe1DVwSMe8cPa%)@A<47#lcXSyV9IIWa zl@@%)YL0+85Ndc#a9eBGE2Y-9RuiNKb^B;=3FK;ea4V2jQKH*N%>@mXy+of0WiQdk zEL|R4MkOtQ8rTTF8@#0;u?9+6f5)I>Mu`qjt6NI+K07cTTz4utPF!ospk{szK0q~d zm};OzUyu_Ma+qr7I9SH(C#g0{^rD=;A!XEy&Vl~E5R@4qt#s^lCHk$eO#t^jeN*%j zsHMk4E2Z=Rv5o%^j$W^MDi%>JWL60?am1^cH)l7;0?yfB%MV6n}`a*D}y9}$$ zfE8y$x#UWvy68W@Tnl^~4Jm+HeX?gY_}cBB^=^$idV)gY}l{(f!l9mZ2RCT+>tauF$6E^p%}%2|cI3v>n|u zH-~BG^r4;Fg=T1ujh#a;X!z^vxbBD5!dVfs*}MaQ^_~eXt3y>+L=b1Hur*zc~w|4jlSMt z;J(Q_7UYA|9s&9E+9yHcT99dUxP2zLU)*{{&oX+1!k)pvbtKc6?p{KcD?#F#l4+bv z$pw90%39EPl1o5tPM%pi%XnjZ3WRM2-^|OPfR#?O^m#zk;v8X_ptk!462O_|2K!7Uuw z(BFoEMDooY6i$7T8^=2(0<1j%i7n^I_5&39488?Pp*RAI83ZE9)MD>B72-YE?cJRtD?Kq znX0eZ)uYY^>%`%`>l9he-qyEHG1=hm0%ibeyHe0hty4y+47W6mo>xb+?H{7sN+^{Q z14mOOxeri^XTUN-%%HikgnH2o(c}IrwP%QrwxaA?Yz1HJb+|s(4a0tTbC}&mUvsB5 zv4nPsZM94Hr-seaUm1Beq>gRtlF?xK^6W>#a1G4?_s6SdfbYw*XN4W6(jBIf9;W;s zCwY?OIg-T`=NamO7Y*EtUL^agam9M|UzTp8mmINr}uPd-UuPg2-e+sm{2){V7&wD{h-ts&<}v<@T_ERBMOi3H2Z z;NP_({bHNv>Tb{rE0))_+ZraUuG`A?)7$IomRoTDY`0Cny9oBuo{CrN7U>h=H%E%} zLfDn{hIllQOt~6NIZU+e86LCvi2E>Nxo;fM5FvR8z+ zwZ+u(fV?twO6SHzlBywq2j2PDk)SY zg*rf?4pXS(77TTmLLDcY0~Ge81zZ0d<^LS%e}R(rulI`{*&qibeht%Zyt-g_y^COT z3^dF7pQ?A2+;-zqr^xzt8x-Y4}nm@&QtxjEw>AUzfTs2@w?F4pKa{!)FMMSrUw4Y@j^O|Xq$AKoBC+nUy} zK`SGB{9ustSB+>8M|o&%#qkwuEE^3c6$aL!rUfn88f4c_^_tb7EtDO{{`bWT8YI(x z`wZ;Ky$y;iliR)vvdc#JB`iv1i)Gk5XB#9~am`JoeSVTr*e@h95AI=Kt&8`PjU!Pu z2TjblaWYRE1YgrmG~Rgh*2p~D<&B*qr`kSS+c$E!@!-Ie$PAbta%9DgU!<3-129p{5n~yU=ivZC3WL4fC`g$H8b4 zh5am1MV9cPAs`zK=^U}&QrIs%3h(ZlMCHM~! z*zI}w>8Mh64=R2&s>rrr!Mjmqtclq6In?lHYfnaPu&o&RBghwrT>*Kx{*|aou+hW; zs^C*~B!xQ1^^9}i3R}#$?a>!0)CybK zqQl^x*X0u!Wp~1ideQpMuD?g;X&*r;R@hE2I0f#Xi<3p3mV8&T*kPUDc2xLP2#aSm zpJ$$JV6oxo2(e+$47cITA8x}r|D*+XFPgTfU;9SUFe@I>l5CZm$ATO45C)zqVjQ!TDm9rc5rn|om+~i{3U| zJ9lP~_`PuqW?qa+rLNvoGfSB*YLLbB^>E zNq?2x7Kv>-T$>e<5;I&|k~9qD#-y~E5Q#MwF0pl{8i(O*D#_|~7sTwab?!SiW((YF zJO}dDt*=Jyx7|MZ$MF5euw7*_`)z+4w>xIPaj+J+jm>LN(;R%GCC=5+5NEE4lX%A$ zCvg`YC-E+?HRykfsWMh~F=I2d&)b*ffV|!`MYan-QyA*rD_RmGNn_jS;hdJ#RTX4@G!;36lI1{@Fd4Rc;(#3t?o%T$b z24|j`pt%gc$%SJin^MoAdYb`y_?s2ULh@ZjzQyEQLi!D`)41BSRN@R)2AU(<8R)B# z&CclGrNM6-hz^Od&EQ1wwpPvTGJHUrX02dGg6~h$eI;7r>Eh38M>mTDcUCiWPXRZs z{zaCJTl>~Qy;aQ8C$~MQS5k_{Y1OEdxOP`cytg{8m93fA?6`(K`2ghsPqEfCJ5285 za%Zbh)aZ{8C%>r_QkW2B+BPSYU_*C))%R*BPFhANtQ#7 zJL0ZV{1y{S9YPXMlRRUSY74)idqkZ%Y0_8gpq z&^K3eB)WT(JK4m3JA+#R^)uwsE+d=IkT{>e zJXL$KMJd==MJbh~lyVL$6zm_$OdKg?CXSRc6GuuV*&Hx&cEwQelor--e4;#1+9f^@ z;_nfk1hu*%JkL_ODG4;&Hw}zWkr6Kpjn4o*{t{pJKB@5&pk^+MS#WYbA%2!+2mBtz zEDL`Bd6p&Og-P*KWsmzWi#*wU{3$)jg5P(>edfgahfO?%K5XK?^tg#9%*RbUVLnb8 zJilEXf84}f?g~**(jE4(c-jm$aQ<9LwVh-eS!ZmcW3(zI>la^1uqW%2;9M&~$M5SV z>zmfTXie4^gG|uz8@tK+PPms(pwqKtI(12gUFCc63Hr9$GB`o6TY_P~+Ke{l7Ch-{ z_}bc_4#p3C@I-6m+gIZY^@BmMqt;VGUbGhKPlLprn9(v;Zx)p-3iY>Tt(L3wkf<<_ zM<%rf*>WS?C(>VDF6zZW#|%6f7})Y6SzaZ}t7LhVEU%I!oSHxky$!sxOQ5wog=|v5 z2G0%f?>H;Oll788E-1bd1@7XPTdol6i{Fc1A@DZ~R*1Y!J6q;yM;*vh(*M_vZXpYEj-0G@{C5n@nldERb#$n*b z62(a@QJlm)gj1i{VLiQeRQPdudBZSKDRH#6HIlZcw`vP}zf6$z#y{HXxWt$(c8od1 zjxk@Pm_zIs^F@mJBE@`B#cW6WXtIwZ`#7>pv2^d0EK;~1E_G-(rO;fFp*5N~xB>2v zr^H9f2OW3aRAyq%Q!GRK!k5RPACA3gmb@wVLC|9<%1kUpnTe&C0lSM~@E7Sg(fj65 z_`CC$w}gt;VoIA((OE18nIMANh6<;+8)R=W7d|K7M{EH(Uc3P^OY8!fExaJ7h&^C4 zL%avFP<##=57`ux&3e(fU8wMhZtZG`lj1ILe=P>U2k2XBTfn}x_BgmJwM8HgXiLHO zBkg%`e@*Ul+QjzI7xZk9PW^F^z4a*|`{>g^ChIvM2kK9O9IU(H!}a5JFT^=Te;VA+ z>X^^DI_7hsj(IqsZv%aT@dns9jrZDzic~{(2o(#B79b0aTi|2&n~e?~!o+^C2@?lN zY8G_YB3TDysAyp60+unBWRP)|6p$?~LqWDCcN@z{aCabgXG;fgCs_s=+~t*j9l2$hI2fVcRPpKed&DJZ^idBeb$@ zFUWJY4?&){eFtGXo0x8biK+Cqqq~nC-N|;$!$7<21gYCYI)#cXdmWIE+EYPh+t-1d zLNdqxGq~OMUqQ~WTW${(&)OqyH$@4>wwYoprP#JpY-RQqVDpjvX0SPIUka%lx9@=z z&)cU#uFN1O_{Ibc2bmQ#4QvX7FjvciFjuRBu*QmmW@1>BQE`ikB1n&Sj zFxUq&C-?${-A9%O$kIpdljQyyLP1)=SXbwRLplYC%fX^^sOS)4?+oo8(g5VbkVc>> z326%QWJoWNUx&;Fc`jrV$nzmzfppb6)maxyYBlSviz1L=VpFX*+6Ia6P;Ao%q1dL; zq1dJ|q1dKzp>Kg~85-RsNVE=Z4zf+?tspyu-VU;Js1syDXc9am)qjaFl}#cj#SVtU0=YjCRZb8RMt` z8RrN~fceTX24ri;ssvr!;>d=v+{SSbG#wnaZo245n$C`{-C!Pb6oRH3X`GG^LDSn2 z+FciSlBSPiNcT{Y?AQo$prZ=pU`K-CD4>Q_JQ2)_y%N|Bdlkr@H)DItaPM;+~>#xdB9N$@*~GFkcS z$)8C6MpBDFODoAbBqK;hl59k>Imuf{b|HBu$^InMNRA~rk>qreGfB=PxrF2kBwr@E zh2##BZ;>n~xu4`gl7~nhBY6sBn79yurTd9AT0PW6)I&`qxI@J)Bs-GqMlz9P63PA~ zQ%DXcnMN{$sW*v`LD7qb>CFnC$jp;|(f;SkXd9!n&Q zP-s|`T^=CnE0Ak|Rw2F-lf1ob${!KqAHzJKvBK{!m0cAe#SaSzq8)IKsCqaC7Zl*J ztama`WbR^~!Q8{#%UI5OAM+~a@R@3g7asSb^kSIDGEV}ed;?;6D%c+p^@wvsj@L(6 z^{^47^oVmr-SQYfEJrieJDHyZd=m7Du#G|g48}ah3P6nC8G`XV^GH4*mS5E3_yLjI z0q2M>D`QySin)_{FF?$966?nhK3u*A5W|-PV)_-#5iwmORQV$!U&H(aV=H(f74^Ls zHvrBNS1Mf&70%7*Ve~Tk{QmG{ET->aJOLP`{Z`&9jPnJE`Kn^pCIf<*h_nOw^0wqDPS|kL_iGJ3$Uw}yBiVx$1vtIu3@ZTJOS8Mdww?} z#akcwo4XA_ik~>NGxJ`=kM2gK_=*3tdkph@;$ant=)Z<|+X_VF6~qTu_y94#Cx}n4 zKtzAhKB9Ul2A&|EBU)FkA-t!uf-t8N9uX${ z7)B>!BBKlNd9m-24CY0Q<&0H~T4NQD0f^-s!#tm{g7E~S(L~wzV$5e;!&m``_0lYc z=QThq{}{%6#v;Zwj8%*$7>!s?hcTaV4Pyo42}Yx-vTw%Ni_yh+g3)Nkc8t9k$1vtI zu3@ZTJi%zhad^gFjAIz{87ml1FdEG{9AhG5FGd$2)j#um#x;x;j3*e4793x^s&60Q zkD}3|%IicxE&cr0TgV+La$V-aIHV-=&g3FC#|8U@65jAcw@%wWu8EMhEYtYXw| z=J1S(j2Vo1j75y)j8%+UYYxxoyhU*rV+La$V-aIHV-=%zE62l_$5_Nz&RE5$-NyEe ziHsSHd5lGj<&0H~qKyjg2K-TkPpo3DwdHsj6B#oY^B5O0WrTmMy-qTcQY2gn~(OuPx21xyyF_AHYF^{o`v7E7r5ni`Y;TaPdGZ^z2ix|rps~9z>3LnE5 z%jjfGWXxd9WArc z0nQP*dlH#vFy=9qGgdKby*WIilQEGokFkicoUw{gyOYB+;`fZPT{9T-7>gLo8MV7O z9AhiMIpT*siOe$?^B9X5%NeT}wYxbU#ze*p#yrL%#&X6gMtD_+@*B&T$e6*H$5_Nz z&RE5$C2@GhM8*upJjNnMFCdOjMB2vy&Joimmb1T){Snb05&f&!A6^8a@QCP-i2gCG zM?^g$>Yc1dL_H$vU93k$JtFGetVcvWBI-S?M?^j19P#NyFY6Iek2pu%H>n&D`+<-B z5z!xUj`-W8D)txsxIBR9k9>|8Jy`?9@Gqe%@~`h(y1D&P`h7YEMp>L z24fy$5u*qe&FEqDGWr;uQ&e~tqnpvg=wLrHJ&FEqDGWr-r4%;)j89j_%MjxY?&i0IMMh~Nx z(Z?vBVtYn6qleMU=wlSQY|rRs^e}oEeT>4*_KY4zFQbnUUT0MG!sujlF}fK&j9x|` zqj*|{cjhZ}F}fK&j9x|`qjLt^GrAc)j9x|`qjM(PGrAc)j9x|`qqBhR8QqK?MlYj} z(e;e7cQbkzy^KCa@vO3oVRSNj8GU~LSwb{}`wb`H&Dx}F7h%)K+=M}odkFhH;U(NS z#YcF@G%*|P^PY?$JeuPqtpAjY(8zTYewFJXeBJFOoSx?+yyt0H%pv^j{20P^Go6H| z3S5Nio^=zxHrqoub*`82*7-ide=ZPnG5jZsVhCS;&Ph0Mv5PRa&`tPFp@(q$5-(xt zQXk>2WnvzNFJ2x)ShB)NxO1h8@XJ+h!jP9dglAsz5+3pR2)7i8`51ot>KMYxHBQ17 zFS`hjuXPhXw%$Yd^9C>Bp^ZMmH(n77Fnmr)4B_84ISHd)a}hqg*-dzOi-)kmRxjZr zr9Q&SZDJvY-}^=k;d^g73Fq&CS1f6q_!z}=Jb(Ieneulsx)|Mz9!4*tk5Me={>12H zbOYl0;a;KqJ&az)n3bF!qX!V}ozE-1i_y*KVT^eJ@9&50@&V#HAzozrmlV1gMG@K^ z-i3&EzGAk2Sz!#LlhMWKX7n(68GVdmEr(}xGP)Suj2=d>-+!G7=VpWt38;CC(aGpy zbTfJwy^KCav4O)gIvHJzZblEIm(j;4Hgb4IC!>qe&FEqDGWrzyD5-pV7%6z_8Uj7~-uqnpvg=w-*Wv;aW|uf(aY#Os{CDyZblEIm(j=Q z{FLn(-HaYaaZLHgFgh7sjGoVwzn9U+C_Yzu4A7XUn%Zp z^e}oEou`z)i_v#harh&=s%J(gql?k^9ov1+c8pF&7o(fe`-8IcF~Y}vRQ!xiMi-;| zXXWo<^j%S0{L0}Nos3>aA0vE1N5#+RWOOll8GVc~zbShsW6VF9GrAbvj2=d>U;n$Z z_rU`$IBwvRJ%nCHAEV2v^iG>X7o(fe!x&?-9iuB)aW|u=tdwx+h5Y~5{l+lJca+g`POVEfMYqs=bs$Vk~)ckS zeVu`I*3>Djv$M{=I*03gUFW+x4a1s*#f7yGOAPB9HZW{x*!Zx=!ZwF(3)>m?Uf5@0 z7s70H@2Fc)cYEEC@UZYk;a$V;3(pLn7XE7Z?(qHLABXD^@ezF^4n_>AS5{B2-=+TJ z^_SLvwSH;+ef2NY@73Um1}htQ8k98H-r!(^x{-;IFGYSDsWrT<;r@mnH~hR|d{p14 zZ=z&$Ty#?OJJG*J-_vM9qa}@=Z?w75r;WaEq&GGjhc|B4IIZ!R#uFPq(fF;#2O59e zxT>+ONn(?+O%^mMX;RVTbd&g)zA=x*JQcGpW?Rh1F`vbR#SV-e9lJ92VC=EjZ(^^; z>P>A;Bbs(@n%wl>rcX6p*>ru=SDThKJ>T@_rXkIGG#k|HnPwN7g~Ua~Ma6Z9>k~I3 z?o`}2amS39=65u|r}=};vzs?+(Y{5O7L!{Pv{=#Nl@_nJc)P{tE!xMAiO-Fn8^1pO zwfJrEAI7(Dd4J2?mNQ$HwDh(-+Vb0$U0Y3S^=hknH%-3@e@)a7R`_nKU4+7@3M2jW@zbMxjp5|{tUy^GHtd(d6PxLp3Z^y;M_p)w+ugKjhZU=S; zd`Ye=xDw!hci|L0L=wop;vUgY41(`y4H5lC8n|3yuow+&j2J2&6!(dT#BlgRSGvd+ zqr~Ij`vmyrfbVoTrky1wz=(Z7%md5$A`1=z9)X+uiDI#s1n&e)hHtz*E|!TY;(0Mm ztP)ScjdKp%98ZVuyXC^S-P~fM$P=63IBYYlM_a`V@rIZwc8F($7h>KmW{W)#`#v!j z7W{ee?Y8;i6R`jm<%O^SFA{%)6plg)pF#@9;7H)_@CCV(!Xr+L)#4vw4ZLqqEY6Cx zu;{E4---3GIBXC@sPGpOop$^J+8eko`CPEP0>COQ?-x8 zlkk1D9PMKsW-gm6d_oJF${{>FFN2dy7Xsi&T*kNL;cx6B=>N6nq7|1uAx9ybrB{+lxo z-!l)T{>OYR^@Mpm^(1%eJjG>*Pn*4?|26ZYADW}1ADLsKADgAoPq@SEr=~A@#`H%& zGiOFWHv`cxITiCOGZ_8RydwIOxiI>(8K%4BI7?dKCZ#RWsi})2W3Kq;3x$Ns?MUvmiX znpa58Onukk;D5gMc;Ka)=eM_<1fERwp+4cXx!KtBmGjz>WpKXp^-`WQ6~6pUTDCU` zeD;k3pH}+WivLdOSHDN-Q-&l@oAYN^2)^PHvGNRo)3!;h zed2@r34Z+B1lkh5{6xWRZ4a-KzGpdY?6Mm-@!ZF>H#V-i2>j7&q)%?%CY-i!e_Y@0 zxzfeNe(u_Fpv__Losu@$>#iMXKzaS$(zj2ZBdwXlFJJOXV&8G#Wxy9-@kU_ghJO%# zZ4sO260NtbpO7*iqVIC~l6S*%`I75_)pyk}&L{=8i9XZDjEe)wU*|MTtAH?Am14jZT64cw{uSpFXzAnktqv@Zkq+W+5y zwj?{xk+e^IL7sTi!SQpgOt2+Mmf`AGe?6p4#@f=_a@w?S`sAZ ztoHUHm195FF?Gl(68jtN`L};aMnPW3>C6v54*rm~b4zKm1q0AJkE^|9yggW0t_TyiDL{wO9A*s61T9>Cg5RdiPF&FVX&=SDp(L{`NGX z&)3{8*JqumW$sluaL@ZC*1p$eCp<-IFCY35@bjN~26#^Cx4_FjCvd95@o6G;ZJoGO zt0ad7XGyAm)AHZ=&sq{4=_{`lX|QwpUx-bnO4gO7?|gqc$FmAEfXnoak~}vZBK_o* z+FQ<4d1&kWtA8&o{{6p~Cw~0z=aAOsW@Bw`$$V_=l~)}Fr=@?ZC~2P^6KGrc9XY|D zzC~c)X9O-dQ{crHDAfL7-`(=R?UC%O0m7m zmMxj~{ROFqsf#4lta}AsrS15g)k43jzKHj_cSzuquM+sDPYJyLcHvy7@EnybKmNQ> zp8B{zI~!U!_D@3Dc#zEgAKNK2rls7pQs`gMUYeBuR`M^?vG7&xSKT@mtjxFa-%5Tv zFW5Q4&JM{uEu}q`eb%eAhV6KNtB#tRwT2gI4ezJ@!Ook$JTkK+pIA6S%75f3(vx3) z?#a~2t4hm(D<_2ht!aJWFQh!S49S_UJP=^4w(o{NHl6_48&OL4Q&iew+5;|683*s(eW5T{a(ESGKf2+C^`FUS|#4 z=Wm|Atz)lCj#)b%`_{b*&YP#d9%yIAy;Zi?Zo2|XW${(O3m3f$xOwaQfb(B_Bk=k1 zM}W_5y$xtfxJc*6doKDEl!x9U^TG>h7u&;af42Fwx56r&m-}_j{q9LJ_W!K? zAKKmv;<}n+14xtqH)E@vohz*2WDu5A|iaEfmu!KZd z0pctYmmyxlBq|AN5$b1P4NeautvEX0kJY;0PVqOe<5F1Hk{++wc zBW_Ax0?*fgk$D)qNs3$Jmx6yA`w6$&0VC`SrviV3O@;41nB~Cdu&G4Y7J7kyG=0FX z)M{XNYAtZzR6lT5>P+B~sdc~wsR7`NQ|ACrN(}-}PHhC9lG+4Zn>rtOM(P4!f9gVD zJ~a$1q;kMwDi0h<6@jCvQQ*a?5^!s3EAW!k81S-`9A$hR_m)TI^{G1Wiqr(~`qXyd z?cC@enSbI=f9_HQ^6uR0ADKtE**`MRrd|jA*TBg9hP(Y!=C?q;`jL7Q`0s(dZ|cp! zKcwCQ{A22^(79_E{Q1<|!2b;78>6YWgPZ8>;Hl_p@CZoFMDGOe2GSd%cLOugwZLq2 z9k3_5p4chC$m|z=0DLwuGW$n2fFA&)S41~~9|Vld!O_jYIngap4gp5y2)-LYJx3ph zvH(auN4J761oCBv=#$_l03)*~x*dEmFfvP`JHSr_a+*B)H26tC+9lcvehM%$r$%>z zzZ4jm)1te;mjP+7=x*>cfV5Y15BST0d|@-X7yK+>#7z}n1TO(;ujoGTt-#1sqx-?f zff08He+7I37@2L+1K`_%5%*g>2tEnqOHa{5;FkjVT7C2|_^W}D;YN4x*8*w%=n?SO z0cri{o8WH%M&`}YqrfYo$AC9P--Ui7koy3l$H6}YjLgl^_rO04jLa?36W|{K@)h{# zDezAKBXeu?eem0Wk@;lw1Mq(YGIp?CMdoW*t|Iea*sb^iDUff7W4lV3CxMZ93L6$T zUjrla{peZn{{`}0(dakeKLj$eqThl47#NwKN6!I&g~bbtJTNl9j-Chq4KOmljs61u zJ78pfj}pBRyrfUxLwZMqGYv+Qm14icTu6e+X z+@6#&=K>?Msp|+}xoZKGF(7T!bu{=JfRTA?*RjAWyN(B5)AeHD2fJQE>q77!0Fl65!{9#xM%<>F1Ahj{H@my?;6DdO<`-Q>@LvMyGhL(LzX8%`x=P@` z1JY-@wt_zgq@Q$+fj%dI+1TfpZ9eNLtS*&{!d@mrg zSofvi`v4`|aRI10!=>_toIX10!yxc_;Xbfst9*{ciA=03)-w z`&#fNz=#`bt^;2RWDe@S9{gk={ki)Cz-8Sx0GD^)1bqcCGN*Un4E{1;WO}=A0bdEE z=XZY;d@T^^*Zpze<=wXe|DpSn!1r|D4!pVh4tPEcb@KL9l*$Zs{0=BPXi-!SNFZ(p9e7`$zXIv2-46gC>V6Q)*MO1vdiO)%-vIJ8qV9)*-|7B3lcNrUD}~E&U8|div*3W&k5IGyO~8e(7hS%m&go z(!T*e0vMU2)4u~h1{j%R)6an)2aL?|=|6(M2*_-heja=wkl8T(7w{8+NV#;1UFF3< zq+GfS{6rwLVLAkbaV$0=^7L-$?Hbd|7%blwKg;7fVkE?*m3=ReC1) zY9PHOJqvs-5Dh0i8@wMFnU|*z06!Cm{7fGNz7B}|OwR!y07hngdM@}mz{qS!&jTL> z@&(WIVc;8qkvTVg1o$RkWX?-306!lXnOCH_anoD?jLhGqj|IOF7@5CM9}hkZjLb#p z7lY@3k=dMn33wie-j!YiUIe0drI&z@0-4j(OTkM(=JfQ*;9G&n_VlUXW5CE%(x-t} zfsq+cF9*K_7@1o7bnrTm`90kWJ_%%gPxpae3S@pyuLgfLkoi5m7W}n9=J#|z`0Ieo z9qBW{-vErv8`JB+-vnd~rU$^^3}hsx&jEicFfwmX4}!k~7@4cn8^NyuM&_OAP2leW za!XM9eDL=GBXe!~0`T_&BXeE)Lh$zi(InHu;O_@U<^$;*ICsQ>-;mCO-w2G%N76;` zj{+m}vGgeT$AL(IbP4=cAfrCL75sJ}BRxF^{%IgzYED%bob zA|=vq0DlO`jFx^A_`^VEwDg<7zX@bUOTPvDQ6Mu~`mNxP0g)c*w}F2b$c&bLJNWm2 zk$EzGHTY9NX0-G>!M_h=MoYgN{0BhfN%~swp8=64>FdCM0gTKq)7OLl3dn4g{s8!M zK%__d2Jk-unYq$8fj`eDmjNTQF7sXRvw@Kr$UF|d9>|(B^F8nlK-Q$0C%}h*XnL8afahku58Rab z0rc~LkvTu}Bk)%MBXdFKC*XevFz z&HM)ZRY3Il%>C^ z5RfsRSqgkOb29KhGN(fSIxsTd$eafL2#~R#Sq}VW=5#3E0-`NsdcnU9jLc)1KJf1V z8Qq!H!0%_)0{=JD5B&!~^wrFn;6DOlG03a~{v|c6I`Me;~SRc02IE>?D+f zfatN=OTp&=8THv$gU?h8o_#m;Gl6Ih*=vF8veyC6&R!3F0LZA! zegJrG_6Fdl>`lDl|iUjvNHYqMVgzYK`AC;I^S>w%GZL-s-NHv%K` zrtCxDmjjU)*@wZe07m95*{_5D1CUi`_7U(afsuJz_M6~W0nrw+kAlAgh_;Y@40uiU zyTEs5ABX-fAlgFqd%*W(pMY{L5E+tv3V1{I`@kEsKY)G{5E+vF5%|qOR;<~d0B^}Y z1LY$?WJvbs;2#5GZOHx-{1ZT|4cTYGZv$d&$o>ZWAAzhCvcCiVQ}#LF9oauZ{}d3J zlYJiene1Pn>;xiDvZ-#?2-z;+7qaPYEQncjLZYsnc!aqVmZvt0{?d)D~s%G;5V}e0Kb(z2>57r4zb?`A|}49ep`w1w;u;NJtX{>?4`e*%c+kUbjwDIl^Xdo1|(fykEZ@!&rIB3rUA z2L34f5-2|gB3rVHfIrPHf$|KHb#Znn_|JjJmMou&Gr!E93guToWJ~rm@LvO2vt*Zp z{}#xaC3`yf?}6wNJ-xtGPaiPqSq;4lh=sFfEim2F44u+@B@Izlb(&hgL*ar5AHc1IH%_V;2}L10_XM&0}t)V0q6DP zf%AKcz{7e*frs~$fG6~91up6t11|2VlJgQEtKFVUz?TA9?e^4xC-+Q1IR%JT(6b%< zr9iZTo=Na!K(vCMOMxqTUJd1RU}Rp_^IBkU&+DM91hS&(c>{25&zpcR?|C!yGl9sW zp0|Ln10suh-U>bdWEIo%Ht=(RtYUiJ4n7EE71MJy@PeLqLisyjWG?J^H~8NJku5#f zf{y}`Ej`x(OFh>^xfqD;x90=kWgx4Jo*Td~0is3p+yq_+va;y88T?WpD~q06z+VkS zKJ%wQyv4JG3C3!{wa@l&oYOn z7T_)U3m{+Njg|uEM<<)Z%thdbna$Cu_(<;4wHi3BYbm~s(=y+gQR1%TrT8-LmHlAX zC1#)OjlgNy4|ToE95-bFK8G8CUpGfiy>iCa%~4aY0-ihdJ2SpvHbeP_DM0y#`S8^D zPy2@X$kY!4zd-CG=HG~Y#C(<5N6eGNK4P9G_7U?lVjne!PrDL$OZRSiUMt?Ejc2p*&%J4CM*)Qz%cEqo%)q+7srO=^q3xp8lN~Pnu=Z zuLQ1`eid*tu}_);v3z%ySiUq%>{I5I#6D$igz~ic1eB-EZBU*z{{{ck=D*>8+WeN- z|K;A+D}m9BtAGd2_|A+Ub3^Ktz|Bzj2JMXZPy4ZX&5REM|AE*)nODp_*8Iu*-OS^G ze?RlZz>8+S1h{$TB4AgU-n`ZrqjG4q7^g-NFtrOr$ZrY=amD)olc z<*B!%-jjMD_50MJ(MzIJqD!KGi4N>KrfYlGYr3xNx})psT~BuXoUc8-vHKm}2c=I) ze<6K;dY{bV%(_e?^QO#mnN)T~c6GLqy)^s#?6jWwJ++=U_I$PHuqh`_xn#=Zl)I+< ze#-fKmG^q>UT@p$+P$9HYoEQ(+IwQ}tM|TX?}zr@d!GaMIclGm?6ZEK8~53{&w*2q zoqEgEJEwkW>Vs1sn_8SUG41hbv!~CSzGnK{rZ1iG_8Iri_|uH^%wuMrJ9BvE_{=xX zd~W7m`(C~8`}VzQ-;eG4#eKiN@Avlo;l6Wb9X)Hwtn+7$%-S*QE3>{f>szz_d)BXJ z{bAOz`z_w@iT!@O-|zN2VD`M(|1kUGv%ffd+WvF)KW6_E_g}XE>ir+sf5riCJm75y zeE5JV2Nn;k9Qee6T?gHL(3cK+=%Ak;^!tMjKKST^O9$^b_#Y3x^Wf9wY@D-w&MkAk zIp@!FW*_p>LoPYwy@!14kbghq7l+K8d+6Nb=dPYxn|tZpkIj8}?jPn39$Gr|>O*fh z^pl5v_R#wd{q~_hJ@hw+{`t@&<{dxpHS;c?_r7^I&->4LkI#$d&z^ti{8Q%l&M(X_ z&wpV4|IUAQ{=CD^KdgM%XAk?*VRH^&b$I^p^5GMQUvv14hd*@qw+{c_;XgdQ`-pvy zc@j`+b5M<1C#vV7#_N8WMdT}M80q**Xy!GQ~oS+Hoql?&dz-~$V8 zTX6S+uP%6O!4DVwZb9a#qmMfOsGE=a_oJp9z3d_ecGj^BnU$GVIUncK(H*NgZZV z{G!z1jG7}DEeq+pFEyFeX(pRm!#BYD&6LzxX0Oy{vo|}2`=rWdDtm*|_)X_GgWt^5 z4t6MC$^PUOW-{S7>;|I-|YC-m`nLcb{WG`pTZG7D2bH7`j$ z!wCJAS(JJf&+FfqCHzk0x0K&W{7&X~3cpiRe>N{o{e=;{Pik3eR%&@_ztoD@fkB?yToU3sFwJZ=KiVjca=F#TYi;!mXo~3tZ{$OaP%`=_~q{J z#pdC2gs)=G*T0v!e7@xVe#4wF!g|eogUxf{`%k6Mpe^NjGiXcu+`Zl3sg6F~{hjIP zN4dXSQavTf=V}-KQ%C=q`)eYbU*!IFNA`WXBl|uX_jf-RKi~abp5C}q>Th{^^G>O~ zIT^|4KkgyY5MSEOSrlQ$5S0U-0`>&poMM^sJ4}p0b?ZVDx#cXs7P|%jiG$xv*>X zw0hSy)7UAPu{@IBr)NCh_1hV9yFV~!#P)FbYN z=dtXo`vS4oaPJUnF_Xxiy`TdfgIcjeAtfMaMx_WM3&o_@+*K^#_clFFY<|{qtAM{0`wa*Oa6A{5_1{(fnS7M3X*jhKC0mxkf49TdU5C{eW#wVWOeU}tCp&fTPpA@TGHV; zN=rOP!&+&INsb%qwnCT0agvcl^;hbRTqSRtUx=+G3`rK9*x}(yYfECOywp;~h8^;T|MsZcHk&_H8P11SF$uYlV89JpUw+z2UCku}jKrzjz zxUFQHc(Kyf78`xla=Dn7nq4i!u%Z%19&b6coQ%*&l8B^g#diI`xkNE}nbz8jWBMzNVy%)Z`+7UYrf#XAkmaIN zchx{PM(Z%}^p&ddA=6-z+ zt+;wyt~^24SiOS*Qj%86mDkWQkq*)naERco)_sVI9H{lx;P8}YnM48=ue*?!E>EVO zT0A5jF_E<$%Ik6!-dN={+4`!t5AUrMG?O99+{!^ltGDqcebotRE|&BevgrH}Jx%|s>7pH0Qw)(ypx zVy%cMCp?s^Zx!iRF3M0EtWMOFeD*}SoZDO$j{en^2^uGaE}@^fKwq^oQW~X?6(pP9 z?YWYVu?=%Bow8V8IWfZXR_5xGn~fNxlNRf}qocLrXbu&^Mbakut*%h~>8(#z@*+{n z1U3|Ng@HuX zwzI0$trO!*7MqO>LjDX@?O&N#SNV=36Kj1%fk|_5=>1@@?7H_8Us$n}8Nn>eR~f67 z#$W^4GUjOG@^tj!%>kK7}=UzhE#LrPd z>vNN32D%hcO2`OWY&-YjwrZ6jaM5BzH!bK)kt<90AJX2->rc?@iEeESNfoMt_+&FA zy3k^CW^qz``1)L_24DZGl6J~mZPGq8KT%_tQMCzjXuu|F$7Wot&A2!;qrC0O!^7Ka zxp7dHf7*$qCKfHRYR!h?C5*U66CJ&p*7M?CyIP1}OghPsSwm`@P`z9%j;||~%O!1< zCAMytXjzE%C0L@J=%f=#(5NQ(A>_5;Kvs+l5BFB8mC3Q{L|xV;CtTEtx(KRtSmJ6$ zCaDUu6lGZ&KWwQ!Y|%-&M%eYcaF}0IyYO;LPS(2HIJD-JPU1Q65xe44vus_pFi|e9 zFw550O55n0{UQ~0Dov=BD>TdDm1bQjU#r%uBaMa0`54(dx}{NHxOxYppkCTs5`nOA z(~>^3w$H5VJ#Vo86{}5u{p{S?W^l63*j(5@fa5-^p~fc7d0_B74Ow`;;;%3=yBCLt z&88Zo1NkzRQ)UtErtb7Vr6A05ff@oTvqA`jb(wM@a*B<9MhD9(redWz4Mp)$^4^T# z4q1jktce=8&_eWB)f7U_t`s%dU{2JuSK2(*Bc9GJ6}PW1)<(h;kU~Kl)7NPt^j@6X z(U&W$u4ZB_UtWD}uCb+9(|jbuYHdswC{ABca>FkjMGn@(6SYD#v<4|eQw0@)M_1$6 zqUayW=LVMI{v}+*Se5rKj??p)QzwUrK~AW)VEkP7F=e-M8)MzjuxX}7TJU{ z;S+S0Us|H1z%z}!S=O?+7DL5~0_0fVBPh+$U$A}6hHPy>v-JTYJbhMz+eyB_tj~)P zwQNOscvx2-xpE-(*LC7=lu(-(@ba2PmyO4@aTz6XxZzRJXSN|Le7KQFzDgHmmunIEtJ5?aG{qpCVkFMt>`ePEKDqwmhFB3 zS!uXpAq!(W_XxtckUyn5uxMXxLor{iNuXW?F#9sS!@*p;iein+{H5lOv#O&SQMVbR z9U<56Fz}p3+-im)lVqn;6@O z?pSH8WEEMij*1nWCd+Rjl8F@|5Ijb~QV(Hb)HdMuaqMGt zOBJ8N?yI#~E9_rY+&nQlFwq#FXe{in_cmDlN?D~dwgu7DbZyRZcq=@rA(bs|`OhuZ zHe=seU6Iud40VsmjIx#L-INQYQowB5(3yN18KnL7HgeHrZc|CdhsXzqf%M3W4rqi-v*9&guAq;cV9nOCufN~?J=Xk5(dikQiz!<=1hXm^8M z3PxWmRlud_9`CPv4E3bK3#wwv%33?LRxF)XpEo|)x--x}A__@KqWdfB(BW#6(qAjZ zvT8uZg7)~8MO$xTkZWTUJxlbsj=VuG+2OGZu2ARp0i`;1Yf)Ph)Iy*Xd{nWFg_h#5 zf^VuuB)5>)qL`K4nAm^>R${3xmFi|}nCye?+Q6w-bsrk2sQk7jCTox=?9Q?>D1(6o zSxs$&^j@E4a3U|t!0_2DBgC@c>1uyM0^~-D0~Ke}3T0{yt2#(*QyWX~5R)eK3A)Vq zcvW!(dUbpM2+}BD#4IMOL8o@Y=p~C5WmUCUCzI7XFyLshU?m)L`?4zsoj_A<5EYy% z{p+e@gIyt*4g!C0yqLEuu!3=YKkVL#0FQ0Gw#iDit@vZPgY`pep&~~ zh^7>E8$*UarPezn^kqg}akcA_q{C*ZX^J(#6lrx>sCx2GBR zDtvoX(3sn!g2L75VOHmBPt>dcw#PdSustF?jh13M?(|HpzfKWN8d`hS-uTy6m;LpY ziKjg+g56D3?Qu@zw@37Q`PCj(>d>Tgs}5Awl$e;?bFkWwT3p9jEw(f0R?>!Qx#+hw z+F1r=eJ|UxZB^p;;&kHd$YEu1d&rFDBs5apbzoIBeRw?bcRFcBJVhLx+Nf`fq5Z(uz$FV*m~zgqR_Ty#nN^}7h~;Fwu4}_FP7UQ&qAH*K(0f^gg&{8=yK;&8*3f1 zn&?CvD^=Rdg8XH%OOyMB?kco1bxqop_!wj{*O|e~hrz?uXorXn4o4lh){8u2 zyR*{pUANOi&aPG{zzblci`a^6FDUzYEEe0!Z&!h6X)|MtrydC0--g&V@oUgHJtwUtp+Cti&<_9pgTJ+)$DKV8#j9DLybxAkU zwsJRl(Y3`o1FyB3w-=*QY|z{AFjAXRd%PVL?R2a#jFxtKY_e^S^ZJuF>b7$@WvxBJ zDOc?gPJ*5@QLIh+DsAVAn^w!$&Y*h~?PTv+(jLQrDOFLx`166CLQ$)Q{Km%*fW-Pa(o#?A>eGP+ahj_Kqv=!C5U8&cV zi0K+`Xv{`3^NU%hjUA8j;@IYLhnPfPkKJzCGYF%)J<4kb+P<|8j|dECmu<17*sdd5qPm`$izn*X4fE`y;7!LyGtRPQ_QJFuP<`yal*Z)mDp~JO6vc6}NYGli zhpHMt^Anm?AiUh5x^!z^G==2GRZPU;UL(bN8&6nDvW9W*+Yq?6N?sDDh@=~2CkWaG zwp0qMs@p44qL`w*{dKXsjn;%k36vAFh*_80TGSoWQr=M{!!sIDurB)&4hB<&3)MLW6U*$Cv3ITqgt|6NicbF=QX@iu_m5j>;iIt zAzu_P9u_$RwM|<}jUt=eN=gLI6D5INZ|L$q6qyM*rb&TYX~O5q(;6l0yND{-C1`7k zv6cs(H&%|H&h%NrP+7z{op=jdTHTWoP{h-N7PF`=n|O!gZ=!$H8A<2i0jx{9K~RxZ zw9|5wILIPY5$`iY!+1X(yIbH+71$o)14&O_WlP$?l(mTOo zW89S>xkEBk-CA`1#0w zrcz@|Q)+n$BzBygv}Y4Rwx4jG5D#E2(b}Tjhs3y&qy-!kie=On9T?X{VjEY)X?@|{ z7^co*YCAz36tS6z-O?PCa`)HWo>YQO=)9n_ruy3QLGRF);BXb-Io#{}pu9Y_Ar=iW z*JyK~I~2>Z-cX7pXr{<6Y?7nU6cYY{@w{ZVT6%)RQC65>bsAOM!BDLza+)33nq7zw zvNz}ky&u~}yJIM0-+6nr#>mU9%#DubMvDe@+M_~t+OO7-$EC`t8tn|8=BvzygTC(x zb`R4jb)IN*V!E$0;i>)F_>7VchCWUTH0JoEf;_%^p9I;&5+zR@GU^Na2kow>H&re4 z2y#0w+81^3H{~aV{C}ONyljU&*A^RR;a5AbnPG!{w*$xE9y#jHHzo1<@&;$&k1`>3 zA&(9LI>!caR6#`$=S_=ScNLry^iTjAp8B%j9k2~4=!XKcs)+xx&5)iS6UIy9MX{T! z*SZNRDoqye#I8|in#nbySrO5+eZRW0tyHU4M0GwlhhHw~#IvK*ITNSoT2p{M zWiq^~Iw4s(Rml%!o<<9@qEe+-YdsNViHvYPjpFrX=Lwq3-Oc<`e;&nupuvhtHTg5t zZADxPgd}DtN1-Q5Xicp;<|rz)#KqNxv3`$IY;0;pBPKhf*11)&@PJB(3wn(9xHzO| z7?R#V;;X>P6r0LgZA^dYHI5KZ-1XL|F?E7B1zteU5iL4Fl*UB3Ik>nvxTHCFVsmh5 zbMU0*;K|LwQ<{UPYEY`ejt;lQrq$6*QN3F$O_Rt7Rb-1ltQpjxSYvi=9iGwamXhbl zi5{%91&skITTGio-0&+lEDvFXhp@zZl`)i}iQqLwjm4TD+98zAYB!-s+G7$ld1Nb1 z9_x1wwPr%V76^MS2g3qUvhZg9K&&vS>O;qoZ;EVlVnYLKWhrZSAhnLAvucE776S4( z(a=Lo2!yVyQKF11vPNCFhN@)04lg+5osuOV895=J5RjO7ts2NuiVoyL@Q@Fjl0hSx zbqI{ubCdc^>%63>0DSanrOhaEN|C&pDSmp^XeWbYV@t#GM3wR(B)eo981abk4B)0F zV@}@1<5fq~*RGCXl2;Zs`BufDwJpcE;!&&2L?^a}l%$VC2~(p={Lm%}$-*K*Sq57P zO>WD|B8pv{r*>0a>#!H1@tB&`mrnz0aCY0wIumaZUYkB@S(-vpP_@0dSgD(2SPg7G zrN1RW^O2OnrmhrTC=nCyZEJ;N&kmd2#`>S~zG1tBx8T(pld=RjyDHfX)Lc7jo~Qus zl(Yu1#^}pyz;}+AQWyJP94v||tE?D$bo<3;5(n6LwJbijA+$qfG) ztE0i$CBi_ZXe4j>yZe@7e2TW=PRlj=EUlHr)^`h*dYgA#nDu(KY`wFm4?t~LWFhp-BoNt z@S+Cj8Nv1}Le~qK+J%Joge_oQ;C_C_!ghO|}<)1dU7M9{8*G-li{ zXXMel?-hF#4lA7-(BGPmym-h<0^Yw!>m~$rC7>@cFp_xbd>Q?yGO83RY$L}2YvoB# zk?hX4n_$WzHPaM!3ryKa44EbjCQ7TyF-QLZx4an86SXqteMEfZ!%aaNq2kPXL}{Bd zM7@WUzFsn%PsAZ@a_XI|xp;BatXrATW0gtX)yu#@X!t&+$R=LIN;>!6^hyY_PCv84 zDAYx|x?16HPlR8zi}RJExC4SBzZeeg;DzXqxcHlM?I{Q!+`vvQ+s^jPfG6735A^oa z{C=d>?BY|UY|W=zU8_~&z&2dFC{&02Z(Ggw zaSG9KdJ^7TnhA?%8R>Fg0e!z^(BoCnLCknrLOY9X%wEKxMI5N%NR})2bG1RO*eCgI zptHzdDFGE*XVtu=CIr7Wu6omWpBz;=XM)}F^%LbLhB{lp9U~INSkchL_Hou?X2j^V zskqr&&|F!XUG%gvS%EkC?I~xil_=HTMzq2*XoXFukX#QkoJR7fKdBvCBrtu8aROVS zo(W(x&J!>VpvMy9&PcGbRLfo5u}v`kC24BUmNB87pX0weTPHYVIVLBk6Qo$VOAw_p z>v2Z%{)wRMjZxa68n=PadyVcf*hP-mHV0}BUmIT-Al43Ro^0)JZq@839Y&wqRf;J# zyEtq!io-NB^ys6(hx!m($r@dw|9C6czW&tmKe}nu{!XHCH}x zu}CwK*A6FojN2)m3oo;@$sn$c3xSBs$T8N```C#n=F){GT7C}r7*hX=N z4k6SC4x){U=G{t5RBIg7Qnhge^VYd|Ha6uW+HTCzrmw|O%z&&Jt2J#8r_IH&SaGox zG!j`^4OdlXaWRQm>AQVwrdP*elJ6sDlvvSJV!Bg2s|k`{B8im)0U(aG?L$e{_{DiJktGv{gpS^bsbpv?T-9AJ+am2*23tH<%YTO5c>Gd@`poidKX z(5f9Hrs(QgZwZWPaRwNtE0b}A(=ntpl)&ocajbZ=a`3gfdPgyjEksA7~Z#Qwjd z46dAn?z|Q_U!>j(v1MY>3942l2rc2oE#W0C;S*cJOIyMxwS-S@37^suKGlYY>>nA= z785~gG1_1iBiRPrv}$J*OB&OScZ*AUx1DJTl1&p~++Js6V~4C2yI8Qnf;*e%A`wGd z?OLlSW`3Q{9cMphy0(e*wXAjz)Z&g4_enL4TcWlT69FOh1F%$k`ilg47KYZr(Ox-X zqrDPnLsqnNHp>S4s^gO(z&??s`g6{*`jk_V*4=z}abj+;@xiMK?Z?}QY>Wuxtrkss z3W$B(Qj6>(Sd3oi(uC}6I9RyJ-LV!6rJU%ks3+*~mZN?6fIfPvG9VC6bWsNP9Sw zeH(wLs*!!y8mi(NQOPBz7q~VKRs?ox?L9l>S}5)q7)dDY?$S5W@TfjBkhIPUL2Ae^ zKxIPW6W*36#V&FbOJ+OjEfGj`WEY*cT)Qu~n{d6QNA%s`)VENEHS1=7qBXHg)f#2B zB;hS_Q3!(*Os;wIr(@7rbCvp7Nqr6iQC^e6%JMhRWbCxkc#|fczv`7#)fn)H`sGdo zDcoO`MRTpFZZCQGz4_k4Hd%Fq4ebySbJiJp3g$&k?tcN}-< z+SWVIXQCpe)A=YB22z%`lT&)-OFMO_Dl6}kPP8INM^2bnF|eTX8F)G1W2*E)hp**EO)rz}HMuTAw&)#d zS7_329Kns6CZ_^@JKC$6s0-gVDx;~Hjfud%D#eLUxi}imvF>1uBLvCmFO-t?nTwMP z44v^LP|hgs@F^!Y*X@I>9_4G79W$mj?K#x9RBbawUbyM_oANYMw9B}Llzba*+kN%e zcw@33CsHcijMYbt801&xxV4oX{dM{`FZSA%MONP2GKj~e#L49n+Z7X)8%5f_0?Nb| zvmOJr(c2@88mpOE8&CyENzW=)MnRcwMJbI#RwI?&2leWVBai{kF)OC6vqp-T(80eb zj#LRDImaZw3l&qE<72n$1YH}_?{dT`n{AAaj&n?2Pb?7PQB|G8DGVM+(+Z`8Vgw2wiJ0`#GfdNqRV=yP*;R< z*BTa;R^><+u_&ZseNhK-oV2yQdu1U^50S7R>Vi|5O>aZaYQB}Y34V3%QXSZQF@0I5 zODbZk1k3KPnwW)9>6jNDne z?8j5$NgSQvB^ zq>8F*(g#Wvr#-IYR$5+MHA#(Cg5`Gi{G;J1Q3@`X*fw8Krj$IAL@Xw#e8i(%ZYx!} zhEoC!0eu{V<<77&_Q+yhHFT$rdS5kXAJ*pdmJMsjvgW2hlRUM1#1wbsC<>=NpcY~h zdLv6#Og^Z)e~We`3Z>>jZ`GCTStYR}{f&8|Ak*FD5^a6^_5KvHcE>m*wGXR3p{#Ln zs5(BpmJUl{hPLD?1GUw1J1{r8A+YQ9BuSR;>M9uPT+X>n>xZ?KmcgmHfhO}-J59%S z;F0pNF12^m2dboOr?OC%RZx3`>*wteTiS9iNrOs(tyx^lE&jb_ts9F;ne5hJ9Fq)p zxXuQ##J;0t57F+zeoGzGhwNU-cH4=DgEbT7f=s;_@IA5RvZjQ~oafMy=6wS^QK~Ws z08b1uz!UOx0B(TN>d=$tS{)XXY|#}GWFIJdq*Ryfv7k#@R-J?6EC!2MgZ#mE&AyqU z>mf0rHXYW&&xgH-k@j-W(XnJxXrFI6i6KyN`D|N@6 z0veXTb`F-T#4Mo83j7nOIA=UiEm|mRUs1xvA5k+VS9i(6)rG7_f(z6w$B;~V`Yc7H z|0)tJ5o&PeOu*KXtYy$}bx~Q=$B<6BUd2g{`~^dW$)9Hb`mr(S7K^|};}XlF|*9vgRQRDF$QO{1@n zu#7lKtJ|4&(;yKkTbXS{N2uktTd`DUIvCqS&)lum!w)ypA7k}_!4Qy+F*q@12Q_~s z+^?R}245SyLr(itxXyiLl|7PNMP`}A+=D?VzE*t@LqCqz`bToob2%oj+n5%&vfJ)K zSc;z4F?eN`IZIq&EyC)RzwSaeS%ykba$^$Fa>`%L-FFYS;BsH?QJx?-TjF;2-HF)Y zpe51JDs_XDb36`{$Gcs0M-k(P90U*#bZ7X`lipfVjDT7y`TKHiK2RbLv4%%)S@Ab_ zDC@3c<=O22>Lnk3Co{l5rV_I`|l1v7ydoa|-p%WAa!#l@9nD zM6{r-G~shb8IAY2(Bq3mG%694Sk)oW*b-zFAx@D?kk_(E4+dsak5S1cu~6~PmTWqZ zg_~DpmBG%S=hZAm5p4EZL|A++6UY&v7Zk52NrsnER|mu z`xAe4es%UnO~!IVMX3f73s0@pWZ19ak~ArPEnci@nq+t_=T?0FWskU7r|5UnrC8GC z!}humBxko5BZ8~tt_9D*vQ5v-O2@HpA@$aQ+Q!FQh)bYs+KZ7(GISanPEQM+<5MzL zTdFQb0X0)Fz;LIEYc41WY9dL7&}!qLn?2kM`g>=z-al=ei=)i(-uCaGzg9j6m3*F*F1$>0R7@`8V=U>=K_+Az%VPKJ zY8>B`W5Z7w&AH{9n0Bw}4|3kGSZMhML-Q@*f5U`r{LI{vqwD8(-w!|LWaoFoVxiQj zZ131ex{?eNx9;P(vF@wO?9DaBD)VIgIPsSlN_@Y^eUZxy#ZG@l1`*wHf)610FLs$w z$zqR4(DAThLB}p{VF!hWw=bX zNA=c5akJ*!>qKK z(loeeRJCj}1-l}H=;=izF|u(kRWz16-i1`jsGFjV@jgvt#;gohWpQ4sE*JkcF}OM~Fxgz5A7Nu$mZ`lSLXRNt#y_YgJQdxCR@y z%{8vg=e56nOHBj^0x{3lH6-sGht?xvN?fKHqN#a3{$ZJ=RpY3D z#fx9@%rrRpG%d`a*!{I2F~sVTR0PGzS6_td^Yp#subV&-JqtPH5yFbg9nu#M4-c`; zpjSu-+}$7@!ZHcQoUr@*qXUPf*$cq}QE!h9Ad|lNx7Fh_@fRgK`Bs0$bJ!j#g+1JM)E$rAM)<3vLQ_uGSh;hor>af?9oT z#Qwxus$ah6tH>z}ais{Qf?LOBNHy*&vsbp%#NKCxru%}R z6V5&){U#`31%FB zTrx&3?@w~Ry)3zze`bp)@P;V!ETRyS>pbh>Bg z@-E)BDtX9NC!6dSDA}aehHs&^oCxyFNhR35xL9^gso-q>#lp%-rA!D}+AE$WIbhRp zSM-YZrWTaMS8U;@Y02I3T=N;{61 zqsE7v5_D1TJJI7Aw^MB0mno4`zdXV{Z3rdSp^X@odP04ntDBJtIdtX%&MKq^21nW^ z#)jr-DMt|}R!uJj2m$Ya;NnIs3p2oK8CGV!wS~w&gs!$B`LRPwtQLEMr>~2zEA_(r z1s;7f?j;h*LdW#08F~ZeUnx@1*<;emlGw3ad_G{-vxjm@vS1NxR`Ae99E0C$W<-gP zswQGh6>w<*9--1t{z@2sA{LV2g0c86WaZj*tVxoZhC4Ftx^_FV@499?vbW`KJ+O9FrE!Dpf-fnb8JO|C zN@4pPD&PJL>)ymg-9gYKdHt=BOozJ2NXDI&dnLvI44ir%0Hweg;a5)Z1vvSjF00U_ zQ5?Z4qO)AUT)48Rnpi=PEE}sP1_MUZaaYSB20}UAY-GIhsV#4DYhFLpAyt;d~Ua243X z?CZY6lUog+;&V|Qx9N*oUu!#FxiQQcn1;B-TFWN&YS#}#RTM1S8a&l51@Yt+e=u&v z9o-TW-Q1v?i!qhcthquSyJt+Ydb4;LCupIs#WWcTdLwj)ILuvsMx>~`l3%SQs2eNt zneYTb?I4M8)2>m1-eIHdmzySL%m_OCCrfBh>I|BugduVPiy z7m!Ed{aRlxc_V}Fzi7Rk$G!7gN+S(+846VnN#U*@NA_E)HCnaA$!->(QKz~W$}Wbg zF+m2Y#u0~t3}Dj&RY>_+*Ex$>ObeHzb%=91g00qm9Q@i+$MStQOktMvLZm}R?or9P zw*y!FxLE1xz!n}TQ&@+1k+U7ht_<$-)(#AI4(kxnub&4T;e2_#Y3IK*E`BAh{+sGE zL62X{_2f879MwEo#T>)Pkq5_LIcCY5j+_zqC_Ds&$%d6Nz>cty}Nb z(a9ySrHKQSimljfx(#RWXYostkZD~^8PdCRHQU3_z&qXGqrZoZ9BL$a<5Ba8FITU7 z$ij0;9eCV+8&&RiV6pCruJ(Po?>X){34ezh4@^MlW{Y;c6i00w( z5V?*Us@UwvbDFnqgrkYzEkQa-v*4^vid9Ejd|R%}qAi)aB#YK|^4hQ?Kqaw}R@dI_ zPuXcLg@CSUttWjmErhnZPqkt}vaw{8 z29{eWMAO5>M*~?mLuVh9Xy*%zO+jl!&O1>I3EFX+Ac!BciwoL`H4UqT~hWPkPWa*gX^R zTl@im1dSpmLS7anNFpUB6JdGCcw9QE(nQef)#|;`e$%lIkPi0~*G;h#vpkE=$47^4 z+j%_b%$_jjn5^P6*qD?Qwts~QSEh4)ehVcG0n6ZCRqs+%cHK*?+!BwyZEe=sdWC_Q*gj0dA`c0syGqP5>7;2%e5|bIna))v8?c%JhwQs z(pav%%L6qc%q^#zR9*ll#-bO%)v)J45n|4>T*axIDC{G754jShZZ<2FhC>RnQf1@4 zx)J^*_R5nwi=d8VNujIiy6n8`p-5>oN0Qj)9>=bOi)-$BO?1aW;X>lpL@rEW-PIJf z-KiKCBV#iT`Ht-(w~4XX^^~wHuich&7?$p3lw49!H{pH}8!7h^*imUQc~4zp;Pj*O zUQEXJ!LI*^CJ;7@N$Fx5Hyqg96iLj*gIIBCKIwbGVG$psx;^Oo*{Mp~yp3*ks5Wv_q2iMb)JiC} zx)3K4#xb^85>fWpQ-Tl{Yavl067|hXkp$Hbo#KwhLhg`6#^MaB2eGIEor>CLJ0H_= zy3@!|5Z?isU)-zev0JTulCupnRWYqe8#q~H*A4@E!wz-D;8s-^h9(*n#AK(&RZq9p zBK17wvyN-!w6-yuCQ{ElLfLzybv7}pB9^i$0dRpOLxwav?NY5Fc9UEZ%yuW zf)+odc!kQurruQcLA-uP1z2=g$L3eMJis2s^;2V#MebNhxZy}miH8pJkUMu3JB#Sr zXml0*BKGt^uvxDK7BcFMP`CaCtOo6o47>4;h~prozVHrSST^oe>NVZa;VOO=-yLCl zQaI@CBjQaJ@6O8eTCRn0`?E50@<>T$n=a^y%xZo>x9zst$_(+bL6B@3K2;M{4e%|= zs8E))I9MeTC1|QM1Vb^^s9rroRlQxKxv-LjkM^HwZ0AsK4y@&RQ&l2kna%xcOHTEc za4x}X`}A7wK~h7t^n1VQgG93S7wLSh=1f|}zODE?!L zQn%j`RW6Ua>^0sykDzd)mD*w4O3S&p{<<|ojgND0cCE^p8WQB)LDoGOwM3DX-YIWD z#}r@7AzVzkw9K8hG~pUTYu`j>&^PU#m|v|}v5IRea%>NCGcT;yEU>XJFBM<8pak?# zxykD+83uJ@HCTp1&;eXTXdA2Q>Ns#w^@+_PmR%^ug^Oq#J@Mkg$saW>@G5xXR(QJa zPU^)KlcmBi7|9NoV;obHoSTB>2x}NreL9OWd)Q02SOj}SIz(cl#mgMoj#F=x*@cO zj^MSk&Nq|!t}eDU^;}R9EGvQd2xtGu>K!;_Q7ZLW>>pth)lt^x?A^Wg{Wjr-$5pjD zuB7P{X=+~IsKJ*+*=Sr5~h3c0B;P}vLz;(+&6D6UQCcT6tdGAHr#N08$s~LgQc1682**#ny+ z;&8HCu6IICxM{`?KI?fpY^8<2^aj<{-eXBSx)_d4%KbMIPKiKS^PdG^~89ek#i zhdB;4$yr%%lOW$~T-5A@k~2TX;ou+7u@pI}rS<0yKT^Fi*=mEdkmS`XO&?5Ft`?HD zb$VryEI0h~JJhCg0byz6GhF$=v+N1^wGqW?0j4p?5R)Od|BT-%X{rzHKbb zHE5SM38E`P8{Ha^6O6n@m{4qi6Okb%F?q;~vn$nUUZE>=rjJUOsA3nivM}+4Mn`Hs zOjWqSQR9-{y^(epkH?CPvv=uD3O?4>pAS)NeZTO<9L^o_iRw6r?TFsg!O6|%07KXX z;0tUWJlQ&Os<||FnM?45y;r~4Ya3wqyq#Q)5_#GYwyTWd3X`eXCyS|`61R}2Fuji! z7umPg_Hd}xQhk73Er(Lw4rAma7F?jF)y8EJXH~ZsIlkoX&y!(m7bkL|rfqO>p6wl# z5aW6{4v9alrH|vg!d=9wR~Qk-d=Glm1!d*s&@C})wUfGwu%Q+OCD!*HSKj7-p3_?l zil#@M2E%}7))mV)+Ox+BRtO+)v58RG3H8KH88*tf1$E@`!#818Y2j;nO6RPoeAkFA zX=Txkzco_Q$wadmMN_?uWO|XcuHOIEbUT=77Ngn~#Q(=Aj+OH6Auh?(+U5z`DYx=Qua>xSqD;&vlJUcD)(7r?OFuxrN~=9FbE zPAz@*E|@*dM7v>gDrIuwYJG@ExZUL7{bpp!OR~zy@X3~~SUfzO-*sU{vvRSTg*7|q z;37&)5aMc%!?+LW5OOhj_cs<5B0!kKoby!JHfbW35*}2#cT-f&*c9Uf+Ln;mtye<4 z9AVFICFfXG{m~nNhPJp&_Lv5d!&x|1AU=i5)up#Pol+9Jtz=7roU6&XItGR%h?|P$ zWP?LGh1ovGMJ){@+Onk~=vbfzoWAHi*#gZ@Ng)V}#ic8UAql+9~CaD0&V_snmmOAi+f+IxVxeND6sWs+@}w8BFYQpmK5WO)N*f` zeI&z3jFe$Fz*1H0F&U#<=^9-2*v#N15@0``OU^bs(}TbK%o-xBM6@NM4Z6GOd52Gf1wNV`TfInXGjRN+oz#iU_cT~M6i z#5M&sa78d8%HlxZz~lDq)F;}LFkUOB<+q^M=d zwNZFg^FJqxqF7+6~K#n8B| zohVzpZJdMIdmn{;8R=`sZYLy_OkMpfv zYmw9}&aQ6PzkFjZk@>dEl=ECwkfYh4!cj#A!4mezpXnw>So=%=_9QsR{+$d37mMdyB9(r zmjqqVAk$RFS5{8yd{KArDIEQJDs6kGC>3bPtA^ahA`)s+5+rnE)fl$r%I>0vB-bvR zcPm*)RrdQ&Y1s}ELg5oz%H{7)(tubY$2OPkfDD1&x+qx#73enK5ZuZgNhm3yDAqYf z7*%W!jPSAZD~eIi(hW1N0y z9hfw0*Br)KCS-!JRyZFaUOxd(XbiCzn2*KM%LN;DUa`h$yH)1nttqxsOwdGVM(bVS z(|FefwPDJ)adnVTiSnqX4rRv0RO7pszMEdQjLziNKN@P<4Jky%Fg&-X4 z-0^8K7aIZ+gF+k1VFyHrmgnv!+6mdfp7+mS=W?}t>_MIywg*%y!8?^|<%NK^!n>OlNtAGwG@O3ntWK`% z`;qJSG7X`54^#pjp`bp4ZF+@%D+xoEel-xUNgK8w?i#4skk`xcrH~6MJsBUi>UPU< zR&g|!pS0J&`FX}FVj;w0$W2qhr3<0l=8YF32aDnh*zBqoA_q3hH0v6_oh@vmg-4G2 zXPe93da1e8%s1;z&T##Y={3WqWX?22GYNG$ze~*t=GEp!Ej&Z;^P#H1v&iubo0WmK zxI?-TQ*KGQ1g`n~UTsXtmZg6e&+j*dkhg!{+2l4xX?8zk(W1zCF7*3Bu}Z35q`>X+3R{C*s9=0MTpV{ z4GJ)yDv^xmlihr61OJfuRF5QUJX#kF0_E43zXpX2Q%t-M{?rks=4kW}}mc7eD*nu7-6 z_O;lT;4_zfU>(fTYf2p|PKw`LLAJssD1>dUG8|R29WHs?d_sKY+{H@aq>$|u^J23N zE?YJ8-SFwemzq1D#`8_~|FQQj;Bl7so#^|GE;G7~rI8(QkjxlNYyy^bwIpH#ifv*g zwh@+0Ac5GUnUSp^X@oQ~c7ofvh&1VvZRkRqw5EkE?UFvB4{XD8NFO*)*k;cm=aAEO zo1Bwu$sV>#&XShymh;dyIZxW2-|zqb-tYV7B3tGXD_MN`F7NkV|M&m@y^Mld%5RY+YD1Dgz~-5v@K69FUZ02B$EJqwk9FAW@OrQbfl`4@wJ4@o#SI zgbT?!NXVwAa$M)?3C4O^93z-RJqm>`4+`kz=5q8dA!pVE#+>`-cMi>2fRH?#!Z0g` zdL6#>;QtizEZ|PQBT-BW*eOT|iccX8=L4GURfvViy&AcK03^B1A+Oe*z!Qng%3meh zV1DPG3Af!K;n_Y_5@;N?FM))}q3pGl1}ZUpjwJ{3yU(55(ND{tUB=l*L5Lr#b(t*4 zdlb_?kKQCTk=#g*D#De7L9$2Rj#|1*Iho9fa6WEK`zXds`GKQJ(1Ro(Y0g-PRWe3g z^4ij+;~*VmPzRaC$~nr^lSotfP8miq!O>C9(>h3s+?_)SegjFb<5#SzMM>%gbJ<>8 zSqH_9>f3{OB3w)ZYoU}ii~Gze)RjgKOA8h^Y*ATA>4Y>g4Z17U9#o_0Ds`0hCJs6! zO;GYXZ5(e_dY(nw*Fh6hj&P5(rYg}~Wk=v+e*&$R!o;*u#&Z-Wg|bf@6Yhq>-)@}C z6G%BK`HurWNkA}YqnL2q+>8F1feCyetjL2~T^ins=YvS|VQar~G+T{x6(N3H=zz6b zIF_mV4-g+dU5`{Pqr#XvI0fV6G1byMVqaL6_$S~?>vPA2TtQ&Ss6bHhBw-` zOtr+CCi`AaG?2{82}5f!10+FfSlg*gpUnk?fO&PQ;k>2Mq! zqE|xNBUQ2U9Kt+0NI!*NOF>AEQd+gf2`x!AyXSdKWHj zGGvZDyJ7ME4l z=kA4NiM?n^{R`3nouESk-2He`@sEfBa!{2kpNRS91H3=fJ>^U2BaG(&oyPNZ~eR_df|GglaM z_Z4uKs26@(QrG1Eub&UZsD;Hi43!h?=h>es7+Yuy(*mX#F)j3@RRF;kYnz2_sy0V2 zzF!9)AV_33-bl5oks+4wiICwqv%TDAQ8UZhp!BBZKwdN(8O{rO&%WIq3@Lo>V4w-w zfRu$ak|+&V7Z;*Q{>R9WH zIHjCYzkuSOlFz3Jm1OGj(=1kphk91k1r2i=+}8D^m!i&=$>r&XT91vS=EoLhQA}ME z6{u9#wxg91o<#|WTSHd|5sdz_LB;~CS5C1jk>AeBx_tht76m>eCW1zi%-yy}RvECD z1eTHmgRs^qqx3n1G0|gC!$ZNNz_3O)*{286LE~w@l1QP{DJTMG`-QY<#^dH@^oFG4 zLyvPeJp!*@xptx6E_t$WvrZu+SM&I*o)voo_B>OnABb?@(W!){#>J@$DNgLz6<$H9 z=3|QtqGZPJe$ZF&^`Q%G-9`l!Zo6FqHy>YpzbH@?f}~EefyF`PXr+()R>HJ~s4cCW z2h&MQhrYXC*w}PBf#bJ`~r0O6K0fm?C5@~9C?W6j7DCBGK zpNe^#F?EEWslk-XmBf*i|1{XKk`b_>b;#H;y>io{P}NyCQ~aF~6b{-&q%Jbh38X7h zsz*O6yTxwMa3i90s-uz=N(qn}mMp~S5Tc$6fTDwntCVQ0;}%MPNluQ11g;E3)+tpM)~jRS znJ`k3=8H<(bJopBCr3;Rgtf4L`|zxJD9T7a{uFd@+;$Pc%A+M_7!T8_58DPYM73F2 zcc~~z0ZP8_7_3Rn2u2Y(IyLW0r!)M121iM#=@_?yMSP(}%B3BzIN{_5shDnrweJWc zQYWcRg%Bqzh{r{gV`>miHXM2`$oS!QVoAMZj*(;IB)?D7HYJEwvQ zY&iOiab|re&`9zpF;o+1u-~T=+YVvGdG6BoNEw`wRz*!i$+w8RU=y1rnno0zn7~2& z+CGnBJZhqu#DpkFMshigxee6DlC~wrZ`JcBh11j_)GG}wnkR%fX;e8?dj-*VD?o?wQ6*3sY2=9DqdpIn$4AC zB?X(@uhVkkvI@)IKFPkhhOC`ZzVL#KtkXKan&J%Gw8ZC#T3eEKsphz7u3nJQy zmyxllS{4Ly6rOf2imP%aMU|{P7quDrSpys4q})+7Q99G4>`E_~&1!&}v!`U*k+Qr> zykto0k#VRh7}c|~gCWGnpyCdrx1;z!f#*ZG5&)&`vrY;iB~-0u@W_Y!X*~_ky-a^8^c5sSqsuPO-z44&)mGtg@5j6H5(U;K%ZnEkpy&?t9SA z2SK+%o+_j0fy&x%6+YCpiPbm|RDB7BA$fwODQzg%kUnh*pc>GXwy0;+yii_cO@xLu z94RN%(4>SRp|Axth^%^qzNs2kgvI=O#gr9ZnC49``I zT&l>Rb)ZvQL_R$c3MPV=OFU_D5rpc+lmj+6jZ4u_1;-&>fjXQIs9Fg2Vx<-<$}W;n ztE;5dERXOlN-C#q7>5;{rBeoMS9=Vr7uFnwLEUg zi3C(`vntUzEq-Yb=iP)Zg*_KI*&b02X>^A^95KL&66PRo=~q}^!M01>;U_}zo&SSu z&-zJR^e9ARU$a^!?!`j8N=C$nE3`nb!Vg@QvO~E?ta6fyHn=E&((8B5S5dyI17kUb6dHqau6)xbDj!S%0ca_b&wcJb8f$I>ETCF$+^{(idd(6IO$nw zHEVDDI#fU@QkM$}a;n%hT9LR#g0O^f3=0m?adtc+rif|M<( zI5N|^66-h^fcjDUKr7O!Zn7&y=m`F+4hfd8G#*r_1jUSE&)gn#f#1FnK;R5;DYnv- z?X~3{TBE^eA-PItmrdJYjMk1@tWGR-54yR;Fd?Bha7IT^)A?0J>Xo?VLXwFY~6$crINYf{Qap` zkM&N?zSWdhHLc+=s?4skO*dRoTTbQWP}z$d3|Fc0mznpG3oUg(_?!M>0yKirf8auE zplYVdn}OYbp=A%DoUZ9#fQqwgh*yJw(y`x+dS>B8YCzQ7e4+g)-B(359o$T1Zn@C< z#(@*s-Bh&XKCZXmsyR!sX81yD^kB1!k_XUQ(2VE;jn89U^7-2=g#)RxOH4}jF=*=8 z5!{MVSwD6)G*hi+q1aV$TeY$tu2(^G)yj`yEW{9bPx^uI+WGjcT0Nu_)PyRBry1g$)Ci8cIp z2jYaV?sf;`R;BF{=4#_n?@|ZR)(bjertc{1pmD)WX-rJ5HR`Oa;7;ANgQ&r@SGHm{ zmfHoM9OBC~(bsGhnEQ-9X8saTDg|N?A$}rAWKm zPQUx{#EKRg)VaM2bJ>8xRfODmt+jO|p(*r7qf+K7V)4ACHt#`ib?+9nkA;iUG4W+` z|K_cP)jld{XRQ7nbcP~!!F40LV4hSe2)cUO9d0EH=09Ic;5c7zL=<2 zO9$mSs z#6e~Br+Sx&JrxKk1o^n3bfqErk!MOge=m~`j(b)#YGoI~I2lg6;9N7*sFND3n-0op z&rHTIRiUp8!{C=P+`&+)NHkO;wV}h0d5%5rZDhDm`J>a2`DmR&a7kn zjKORCM=f@VzK(#y+oYV~zt%|uaKOH-iD{H17Oikp)Ob{QiGt^WE{9>b2 zY8aQ=Rn(t^KX(BK7l8PJ+re&PH4Kos;XNT&LuUJsC*HUJzWDa6N^CUrfVs*};xDLLUwA%J|?8V0Jrt zNPChaQ(KM-a@IJVmB!8}T43+sxir}G988;?De(LhFU8Jonx=iC$LRr?u*PT&Hf*s~ zKVqAzVvU#$TsWqdIOD>4(u>(hT+uGpxl)TcdQ_FYHg{K=4xE6Z%VI5ZuEMQc?lFrt z?83Ivd0WPu)tV*s(y7t9l;@l_Qm9WsuwV97nz-9hM>VXFPia}%nd9x=EU~kW6z|J( zv+f|?=?}P(z|H(ltBFvkW{8*;masmgX|J3&Hf@ZvP<`Jj(7wl*t>r0W_{!-oN(;is zjlymmDKUy@wYm;pdu1HP)ZnZFoXwz38~G3GS{>71RiW8h zNxhZ+0$S~?%x7(ReBE66RinT(5=ld*t{c+8Bp5#^pNysR&KMOv32G|4A&T4=)FHk! zq_3{Mq$y0!J?)+|;cOtUkxt3KtczO4`N##8iPDa?5Uu^L^&y zcHl4d4WneFbIv2q0y@+{!P6-SlUd|l9kzEs2XQoRnHFb_(F zYQCH3>!WX_22SDA+9<~|Et0DRQ|9)!T0cEidkO~YwM$b?*lj@qM&$qFfUC@YUBhibX5{1bmnM>;EUx|wvsm(P1v^Y~OwiYSjCn}I!2 zqg{S$ttEQK)J<021|2;}kKC_lz>y3>)>{2!x($wLWX=!sFet{M1;eD}Tdqo1Mrp9E z2Ly=@4bx97_g!~LN~O4GV1lb0I6QMrWl2@lJAmL)F<~}Z130LPBy?P*meW8kp;PY7 znyad*H^y_=D;p*=S623mHIe|l?X#CxugMe18!NxNW=OaPP{YZ0oA-jSRG?5;QE+V+ zF-DQL4~p2?T3H88h6>nhEhQvQrgGATP68=J@eWLNmKxbZa2Bi|>qyGCJCN)wDf-mTC=~}_xq*I;jiU3Ld7Zbn|pZCJ)FyC87~K;mM#UgAG*msCx6HZX@iZwFFYQ_?u?_Gvrh zwN0~6+i@VGo3_C|vFw0Ny~KZJ`EHxO!GC6c>XbQYOP{u*zc$T2v9E4g%k?;p(Y~2J zvWIUIu8Li+EG@GLmZ%`bt4i~%z=oF}E@{1j0c9nF-#ZZJ)#HK{wfoiAQrxNcP0{7r zgx8ez;G9IcfzqGMPVHi+GiXH}flYA$5pGfgwKlaaHNgmSlBu{3$IhaeD;H5V0ZP(U z%NjhR*Fu|!wSt=3twlhHu_mPLE3KV*kBg1tpA|HUG;L3rBRxMuJ$m)>4=BG=`*(Kig+FDXvH? zR%}h;odgnG1jn!C_1r3;*GVv26A`&zMnRM51p21a2{gRbv>*Y>N<(Z&43fAKAp>4S zDIGcx>PM=X_ZGZlJzXqDeapAtT1$#oLXzYmhGxSE$VQ&(?nG{LIp1kO`lPPJWK-X#6uIC+R97o3>wHry}{NRxzpO$EP9Pp{N>3T#zbH1o)d$K8{oA*MUe`PB{6QrT7pCcDsQA?J7SJyrn6c;Y8QG_ z_N(n38JuwI!X3d`w~flLqz;va;soQsNRFp6pGq|f0oSQ@VN;othhno=7B*H7`tB|J z1gdjkQ|&utIwi8XM*CAOj|PmWwB4mz!z<^lbf-&}W9?qKB;iwOE)X-`GPldLH06*l z>D@896j=GKWKot237tsi!Yi6&K4wMnJPXQeS2LbmPcT zhb&#xQIeX5yQD9GPLmHU6IK_7cRi4m65BhF6#?W?jKNB#G1RQ>nf5Aau1vCDOoR7y ziPl4_?j(9fJ`g@^t4MKM^rt7hIuIIXSwg~3Q%=)^FJ={g8|dN^1OB1H82x3$Fw1i< zJ~{4y`wqFY+4ioyoY&4}H1kXA^uD!MwrAFev}iAU`U#d1Jd|g>*UY*#^-FUB4Ea z>eaD#Is*ub`E zO9WSmaPq>{T00cV?BThll)M(NUUklm+A=LI$_jtV-MI9@n*5-F*TN+$q&HDoDyN$k z>LyBAN+lkXO+0Y~+a+nJ^ zci>7&v8^%0qV^qw)wFp;`XBdwKH9H(ur{?Zu}Q<-#&d1NSIu|z(li&#(IcVVY(r|K zKuSGs)|GJB-KF%W_DA_ilcOl_+vW7^Cd5Ip*1CG8b{mWBk%k%wLBFgs)E-man=ase8W{lKVmRYDmleDKQ+3k2~U>-VpT+(}Q59wodx$F&}W#drQ)L zz4X44^gh(%EWWu>YAMxUM5nsLL2raSrM=W1E6s0(jpF1Ucyo;&0Okoa>jVUMsaf_- z3U%0y(XCbB>B=4J!6O zb9QpO_cjQl;ZEb+Q(kupqv#UR%H_6<_EDL1$upG-MG&c#JGV&R>g;ls^nwIrOE6$% zTBy`ipi{U{NSj&T^t{1NEtRTik|FoN2TcQ#B$+@XtaKz`ShTCS)fN6cF#}Uux$jvi zs1lv1&gSB%yB*o zi@Zz;U3%oB5|kBK);n@q;$|0e@-L>~7jG6aBS?JWEDamGZc|iC+3zJ=(oxu0 zj_rR2diawV3Htz&&G%X0R-61JfGCKl3Mq~Vq@bD2u#yIVtTNK0c&H>Tav1igc2u_p zSva?3yQVG)#T#XM`E+clN-d9^DJ2n|6pm^d64hO(XGD~7R$e1RMh7<+^d@DKKH~JLf`prMG4o7vYv$GKzVlYW7Y5naHR>4ua z5PK@GDOD+LeA&j?cM5*W+(}@Xa*q^XvF{z@JiAgG_IJQo104&7U)evEn3PGnPKuIs zPQK}nBUW#XYc)a72-UF9)GXyQ%qDO+Hp6)AtB#hIn*Jh?-B72!Sb1#PnzO;$9HddJ zB#nd$%YU;e=mKk~kk%YAN!)2^mC~SfICw!{z?vIex2*Ul|FiE@%av1)l@m0|ON1jm z4aJkMu>iLWdqK&k%a6Fpg{FhmfqE+Ng2*7c6Q!0_HGQr$$hCpKl%fPvYA|~!FG;^6 z7&}*BC8b~L{+1qX%3j+ss!L6IfIb`Zt?Abfbo}+^5B^WjeCv~c|Iq*ad!`1KPi@?B zB6Ya5ZQx^wm#Dn&mh0*8hFI=*o!I_*+`sL#xUVVqK2wkUvE1{hD#RR*I?>v=X=l|P zeE*sgZHOEB&~EDDCYJj%mi(R*>tOZmhHqcPo8I;PQKU<~`3Cp%G1QfCV!Tc3E%%bs z!UkS)IwBil`Ny4Dej769v6MvW{2uO6ygwFdXYrW?2)4=D)N8 zG^pr%?$>tH6t3COmU|EtqnruF(f~%CaiXzw9cqt8YmF0%Hlb=}YB!zHu$#R$j575A zApSImYddv#5sb>1#@hO}TppcjLGhNBdh9sO(X#w*^?qgehq;g{zdOs$Yc2ML{=lWz`(L$Uc-eoJkm zv&l4&NQ>Xa6RMPZs6JZP>KNeMetpUP%6mr9m}5B-t|fJBGPUT>L4v7pA4xviR`?vqCw6d4IJ^lx&9&ve)Rub~-FwufF~xyi zF$|RBHTNaCKCGaB7)1!%ueoLTY|C#7*ToL5TxA1JXK5=u;M7E$h|w?Ui!}65OT30f z*`c<=L%;~24$5qdggtaSjjfF!QhWe4)SD1q8ymwRl4lfXs*?xQhUZ4oo^%q3i{-xT zgu&Bvjv`okl-ExyY6WL!dQKAuva>a&Il~iPwS(a!>Q}5;_svA3N2S`-V_c zOLMp((tuaY*G@$h(O7~s=Kf-!b%Lu{F&ew_a(z?mk{Lb4FPevY!O*YqFa{|xV~EiLhg3weSb-y;$B zH7~mB`#>uPje7@%*FoBF?|BHo4zdDeduzMXXlgn-z~88}F zZG|7c7tIKz&PY#!tY*pO>}BCb)Yl1O)9%KO;V&qU7Y_STAc6dx`*9dFzDe=>!frj*ctB9NZ59S8X!bFKJN$&I}^5 zKnJ-8&=Dhmq1HMcr7 zn~YGA(oyd5P0~%NPKnZ%jpe=qdV)g4P(vKiz3AL>E#4ZXPx46EEt709R!NAoIuM&^ zp@Dsqq)Uk(d4fcdyL)4OqRt&ZmDSi%Qe^|*q)tlPKyR9@#wVqz{%(1191zaEj#g<3P%g^9A0x*l z5aVsj5rGaq|D(-=`rT9kl7gSc!H;X}QLMQnFYG%OZ8tD619gPE9mfHxn`lY7wSi^9 z8xBz7LK`GVW})`TJ7SG>kgf9+v`&ZEx%cBcF{hZ1!j_3p-EIKN@*80`)pxoN7$oEq z2!?p|o@j-kf&f0vw%dh@;<~PzOJzh>cznZbDtLd}j!-A)KRPlfn53 zIT89jA(&kphldvQU+9Ri{63yKTs+_j=+hyI{0rS47C}Z(A+O6Z7Np3|5AMzX?xxvn zB_F((Hp{GDijOPQ2*Q{JWCUe+#lUe@!x)Ti;VzwQ3)hESJP3tSeB%MczX=i_pkdcl zc(_AzZvagM1PYXjMe{`nRSKQgA@^WSHUe&x#gD~`IS_iJEq|3*PERp&{wfMg*sRB> zRF1jtFm#X6F3VpcfgRlZ01LUa?bI;42DIjdJcDvIg zDhUjUL=N!VLY%Qv1kyLeE%gjBRhBf#n(8mlZ%1Z6gEYY+_d(wP2V!rr8h(Kwpc107 z2OA6t;4Pq3RgmOpcfk|v^?OCBu{_}4)0S^(%d`7TfXJj3fGUv;_YiPyqmqM5Dk@7d zwS?=pW+p)afdyUO|kCePN7xEYWQA)0}_6gpJo>quI zGC64|zYYJIK(T!P8c3GbWPY2zxet;}8tsVXm!(_~xD?C7P6xa?I*4ug-9oIpVK;Zy ziNvTA`Bx*xC2N*wL~|=19)sZDh6?H0$(Ip4tap(~F~NR3jkFinS$kI!+-|{szwHKSP1dfPLASbDaey^t^U zz+tpQ?9w3`)KPLY%{2I+`~y0P74MD2mbcLQl5hl^5b=of>j@lqc)UI=w&j-qozA+Z z`fyEWO{4)pa$o@Cr2!6p9F>DjL0vTwyg1ReVhg$fKm!GY_^4RPxHXbBU^TX|LohW% z(GYqS1@l5Rp>;gy`+fGE&PznBP{O^IqodngyB-k+4m60|Xi1{jB+(Xe`CT#55^zgt z4nXX*h((n@2r&iYwb&fu0056rJxC&!zXd#!zr6+z5qw1Ju%dB~G=dmz!4ni|pllOC z+8oOtfvTn8%pZZJkDN#FkMG3|ycQCY3MVA@e3Z;S>uiGHjYKv%?u!aq2?7AAn+yaX zIsrFklS2*^#y}o~f}99DsJ%xeWN^|h;0X6dMQ=3P6o#@;st^FeAXi9|PHIbJkPEbk z8^VIQQyWDbsMa{48q#Jy9m`M0^0O3rd@62?V$5!8y0cEgjh%Jw=eFWziWOu84Iyth zUK8!CgM*Ela^H;Q??yn8(EcW<2Y8PazY?YX$=`;5^da+Emzs;u@B#hS2lTu63?f4G z`XuBLs_$4YmijjEp-ltv;rlX^s6`(FAW2-Y{E}j22~RK>qLE0GsR0oduWm)k4PmMc z(5OpU6-0&)`P1HK(ohKvQmA^R=?Vh=u+UgWt+PPsMt-0*0W~C*XiYbUfpD)9+G;MH zTapgp!Rv!2O34=O3Im~jaadV?-as=F{)HMPt5TgRxuNTphqu2k+#D-@Ay#}GfwWk0 zKNN4Qc!yj+8!IkL;@(){CEzgBmj6y$J}=(ANaez-d@j5s*PqDsHMzbl*T0qP8*+V? z^qObr1h@P;25G6;so+8RO$de%J`A-sb~_Mh$h*n3QF)YP6lvKkq76APCVkdwKc~0v zG_qLWL$L>8F;K+k$*)c)LMmzxQMtr&-=RppiYAih!bNDBfJ{CQPKzR#LL&@ft9Z7p zh+u*~dk<&*?-697Qe+6b-Kk@c0+O$$-RXd!p$P}~0wHt=NOCH*NyybKU&C{R(OLc> z;exmE4?v48chdyO{TSgUm<5vlV^9u66ruyUr-bJQI=UTourzp#bU-inbO-TCRN;0NuXr+~u|J`UKYRNs1V9x^`NMX_B=Z%POh>Em0~8csEg(k? zQcl(5(=J+`j$YO(SotATl9yM}1Fc4F`Ls+Pu?1R6ZcDDH#aE~Xc+{O8;(z>EEcY!z zNGq_1X#n)*xmf;rk|3}niW4XV!IQ|CR6NMRDSBy-L>SdZtdDmF5XCA%aT24V7^+u> z0IE=qd0xmU_q^Ix0ta_+PlYZ8&AH?EZZZ$!V(KYCY@-4IWU0ut)Cm>M;WLX{-xF2q z6X>=e7Os@>F#74{e^?0|(P<#;(I{Ca_am5d22lr@7!fC!vu5jkIwSF*yinPCA=dR9 zXflaCOJk9gwjOYXtVKLYn2Tk$s*lER{P%+7^gl}?vEtIf`Zix+N^6@;Gi5BPlQlq` zqYI_)P-fnD2tTmmL2(mFS5Fgaz!P%?xjiqZ#dv{IT<0=_KpZi?mS-xH>=jpbkIZ1U2O42vTY3D-B_PlO)?mLhj( z_KU{Lzgmyk8if4NGZlUN5nX}u6zLe^WFm*zzbV|*5sF}H4v}Wc`)F*&<%xcLr3MjJ z?0-+V9)%-}_GkjWqQ6iRZ2w>gQqH}Loc#h!J*aGLjFwsP3y6Ve8L@r90<^?#mp}

RMyN1K1_dtj61cq6YEi4( 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 Jf&TB3{{>qHNUQ(= literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll new file mode 100644 index 0000000000000000000000000000000000000000..8e791611cc1a40c84c5de0cee1b694d573400231 GIT binary patch literal 119208 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

Z;4A!-J9_MouVij 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

#^i@Z4)Dr}|#p@au7_lI(i{?U(sJkGdQrSHCs_ zAoB87|0-ACmaA{b)upDgLhGuZ?`x4=F!-u`$>9joYK<=KE6!Ues&e;<{M{zg6}EEq z?EeKrp?t!@r(C(XuQYf2KBtR;-o1wY)^_izGo3citeo(=f6?Q*hu7RZWz3LpotbJx zT&;%#+x}d;!|Y_A~GJC(J(w;qT zbAIAKTl(&|4&lnEQ5*Z^b#K@&sIFO!C0`8uUfFF$Z0(coj!nilUS!+5)0pV_`%~%; z<(J#O&aHEEZd-NxWrNlSrUR<#Gn)AkZJD=3icaH4nv8C~D zK0RgQk53y04Z5=Oo0zPW zHI}MZiGyx8*<#x!{f8?nCU!V-BH(!L%0*qD>>u7PzuT>Wr^YS)@^!;8xoPb~RpS!7 zhBqJK*gf4c@N~q+_e+Nzca|#}l#X#9v;3`n_2oZJR1JC}?$HVtIkvcSFVUynPe-%3 z^G=83orm1(+RpRDv;G|?b$i@t{mAQqjiaobk4&g5HyIP&ziPuVOIrjwE8-jzk|HLg sw~xJ9|JI^!hHd!e?fwr%DVnP1PAM-1-+esq$b-3G+OEZ^&K&oD031K&vj6}9 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json new file mode 100644 index 000000000000..ce563dfdebbe --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json @@ -0,0 +1,1316 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v2.1", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v2.1": { + "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext/1.0.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "PowerShellStandard.Library": "5.1.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll": {} + } + }, + "Azure.Core/1.22.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory.Data": "1.0.2", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netcoreapp2.1/Azure.Core.dll": { + "assemblyVersion": "1.22.0.0", + "fileVersion": "1.2200.22.6212" + } + } + }, + "Hyak.Common/1.2.2": { + "dependencies": { + "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.12.0": { + "dependencies": { + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Runtime.InteropServices": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": { + "assemblyVersion": "2.12.0.21496", + "fileVersion": "2.12.0.21496" + } + } + }, + "Microsoft.Azure.Common/2.2.1": { + "dependencies": { + "Hyak.Common": "1.2.2" + }, + "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.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.Share.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Storage.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.20.21406" + } + } + }, + "Microsoft.CSharp/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Globalization": "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.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.InteropServices": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "dependencies": { + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.23.0" + } + } + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.Azure.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.3.18.0" + } + } + }, + "Newtonsoft.Json/10.0.3": { + "dependencies": { + "Microsoft.CSharp": "4.3.0", + "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": {}, + "System.Collections/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "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" + } + }, + "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" + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.ComponentModel.Primitives/4.3.0": { + "dependencies": { + "System.ComponentModel": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "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" + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "runtime": { + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "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" + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/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", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + }, + "System.Memory.Data/1.0.2": { + "dependencies": { + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.Data.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.221.20802" + } + } + }, + "System.Numerics.Vectors/4.5.0": {}, + "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" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "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" + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "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" + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": {}, + "System.Runtime.CompilerServices.Unsafe/4.7.1": { + "runtime": { + "lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.6.0", + "fileVersion": "4.700.20.12001" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "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" + } + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "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" + } + }, + "System.Security.SecureString/4.3.0": { + "dependencies": { + "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": { + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.Encodings.Web/4.7.2": { + "runtime": { + "lib/netstandard2.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "4.0.5.1", + "fileVersion": "4.700.21.11602" + } + } + }, + "System.Text.Json/4.7.2": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.7.1", + "System.Text.Encodings.Web": "4.7.2" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Json.dll": { + "assemblyVersion": "4.0.1.2", + "fileVersion": "4.700.20.21406" + } + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.5.4": {}, + "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.4" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "libraries": { + "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Azure.Core/1.22.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ze/xRCHSSDe5TIk5vBDbVrauW1EN7UIbnBvIBfMH8KSt/I9+/7yPAjTBDgNBk0IwG6WBV+BBHp4IUtS/PGAQwQ==", + "path": "azure.core/1.22.0", + "hashPath": "azure.core.1.22.0.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.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4vZcVaxywAzfLm5mAc2/llaZQTzbCqu9KirxxI/t49AkZH5Qxf7JxuAMUuv2/6JEdOOkGDzpvdrrIlf6LkFGcg==", + "path": "microsoft.applicationinsights/2.12.0", + "hashPath": "microsoft.applicationinsights.2.12.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.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bKDPidNeqBpTDikPnIuoMoGd26pD2PNE41cut0ASwL5exJwLNggYO55U+f/cJkgjCUMR8i5nqnlfpGHSS1I0vw==", + "path": "microsoft.azure.powershell.authentication.abstractions/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.authentication.abstractions.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sUGkvOvpqlEK5zdZ7HWaou3GY5bnlNrE0LuZ137+TsNfgx2E3+0Ika3a02i/9+niDDf60xj4LaNOYDSuK5zdJA==", + "path": "microsoft.azure.powershell.clients.aks/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.aks.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Q760F40/qfas2Al+GQhhE4gJt768pQPxlCjqrjjkukgVsq+X/M8IqpCeBzbRTiiyerhcjJoyNxqlGuZpUhqGxw==", + "path": "microsoft.azure.powershell.clients.authorization/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.authorization.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1fcsBdYMmEJPMPN8EAgJkaJ2WxxTKH3VcLECYdL2cfg2bgN8CKbbjSvarrXEezhyduE+LdYnL0e8Pigsnaj55Q==", + "path": "microsoft.azure.powershell.clients.compute/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.compute.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BIMthJ1x2vQAN3iWChnNj8BfgrXvKXn+n06E0/h2MNurMXbAOn5eiPIfE8bnj2BO99uSh1ns09yEgOTPJIvZBQ==", + "path": "microsoft.azure.powershell.clients.graph.rbac/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.graph.rbac.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MfvwM8ABj/EswmYu0Bf/8kyAO6kUv2zYSihVn384SVmypomVKUu69GN0VXKbmGaovPI8v3H41Ldp7DqbPRun5A==", + "path": "microsoft.azure.powershell.clients.keyvault/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.keyvault.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UyCKG5BWVjYFRtH2JNx6f4KdccaSqww2y0OE2PYgib8VhLqkoPr/BQg6vKzaGsghLIerZ/egQ7ntPPw3PCtS3w==", + "path": "microsoft.azure.powershell.clients.monitor/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.monitor.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YAAHxw+zzvkGNWAi668NSoTR+V/7vf+gRhu1oFa1O1/f2NGpz5XuqPrQyAPrri64hKqB/k3OMrM7sjlIv16dAg==", + "path": "microsoft.azure.powershell.clients.network/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.network.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-urRIwRVzzOwpk8HhKq/b785DiL/arnmGUHbN4HvRN6ZsBkE1PU431YwgUlofb9pfB3buLcl0XJFRPLBJ0yZJUw==", + "path": "microsoft.azure.powershell.clients.policyinsights/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.policyinsights.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-juWnd63Z2Sp+6bvtOPOF0Gj1v2AfpxXcuyodd9+U7euBro2G7Yfo2UHmHo/uaYyQUbM3HaXJPvse7BLDKjhe6w==", + "path": "microsoft.azure.powershell.clients.resourcemanager/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.resourcemanager.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HPpTWIlN+5ALqJssL7+6BD/vYrWi3eWKQ3QpWYjCFk5c9HVLTNpP+M2dq9jbsxLsZj+5Pt6gC4FIS22Q13Uhag==", + "path": "microsoft.azure.powershell.clients.storage.management/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.storage.management.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b5yBD9FrY02r0kdNNgZ+uU0/QsW3AtmnCE/x1mUG5j8ka/V04AYUo+sDokQBzu+vnK6Y6OrVDtyWjmnKTDHpWA==", + "path": "microsoft.azure.powershell.clients.websites/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.websites.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9jZYZ9LKbx16r69y7cO9d7bDjpE0/HgeBU386Y/O6q05VRaq2wAsB2rbQ9AjxcPGHfwS0+2US/RImSSqjVABRQ==", + "path": "microsoft.azure.powershell.common/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4mJSjnwZVLQYWhP47eDzdt0yaLIf2I4pqaEIqcfAjkjdbKpnCXCnJUEFRId061yuKpq1LtfBZkHDRi68I5CJxg==", + "path": "microsoft.azure.powershell.common.share/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.share.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fObXEcuhk1JUoQ0fiCV4nK4NJWqvsfsKCzapF7SFEQ87X6AasL6m5KGT8JQSnHmc849xxxaixPTxyWaf9BBlpw==", + "path": "microsoft.azure.powershell.storage/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.storage.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HwyxUwDHCmY6Zdxg2xpFC9Gqmu92Xr0cAr4ElWYwz8Z7PE9uYVkTpKMIKd7oIJJgsIANTfqEU1HKoeI3FXPLqw==", + "path": "microsoft.azure.powershell.strategies/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.strategies.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w==", + "path": "microsoft.bcl.asyncinterfaces/1.1.1", + "hashPath": "microsoft.bcl.asyncinterfaces.1.1.1.nupkg.sha512" + }, + "Microsoft.CSharp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P+MBhIM0YX+JqROuf7i306ZLJEjQYA9uUyRDE+OqwUI5sh41e2ZbPQV3LfAPh+29cmceE1pUffXsGfR4eMY3KA==", + "path": "microsoft.csharp/4.3.0", + "hashPath": "microsoft.csharp.4.3.0.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "type": "package", + "serviceable": true, + "sha512": "sha512-92kNTi1N7zI5wwI2ZXswBRnk61OUYnuYJXrlgOhes5IsAqGmgw9DPGmhUzeY8OaZ8TTrQdDzvgXFnbCHwLzSVA==", + "path": "microsoft.rest.clientruntime/2.3.23", + "hashPath": "microsoft.rest.clientruntime.2.3.23.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" + }, + "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" + }, + "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.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.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.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.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.Data/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==", + "path": "system.memory.data/1.0.2", + "hashPath": "system.memory.data.1.0.2.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.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.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.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zOHkQmzPCn5zm/BH+cxC1XbUS3P4Yoi3xzW7eRgVpDR2tPGSzyMZ17Ig1iRkfJuY0nhxkQQde8pgePNiA7z7TQ==", + "path": "system.runtime.compilerservices.unsafe/4.7.1", + "hashPath": "system.runtime.compilerservices.unsafe.4.7.1.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.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.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.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.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.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==", + "path": "system.text.encodings.web/4.7.2", + "hashPath": "system.text.encodings.web.4.7.2.nupkg.sha512" + }, + "System.Text.Json/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg==", + "path": "system.text.json/4.7.2", + "hashPath": "system.text.json.4.7.2.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.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "path": "system.threading.tasks.extensions/4.5.4", + "hashPath": "system.threading.tasks.extensions.4.5.4.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.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" + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll new file mode 100644 index 0000000000000000000000000000000000000000..239999aa2f3cfcbf08ae3d6faaed5c002dc1cb88 GIT binary patch literal 18344 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

@tK}M9Zj8xmPQ5 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

EZg0v)ybrrtRzu8LSK3b4FbUlSzWg9kjyfW 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Aks.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Aks.dll new file mode 100644 index 0000000000000000000000000000000000000000..d966f6c302c5ff88b90615a3e398dc338c50f5c2 GIT binary patch literal 90000 zcmd?S34B!56+eFOnnt=7GY1-FV-i>=mLE&jge-23LeSpw1i+TZ{4`J?aLv)p^` zx#w=@-S^&P+G!hwLkQu-_5JrkJcN|~)i69XXoonb_>mm3J>$iahvd{3OJ*-_3j3CY zf{Q}+OMMOXEiJ)T--3WI)Yjr_YVp<0nB`j?Q`;&;L3g2Y>w~678xvpR&^bR;o#rTX>;& z2I0`V$)%Z;jFMvGV5IF*WFhfSm0~vWyZX-;Go4GMgPvq7Th$s^-U_;T2<(N7+X}nw z|9r5jDijVifXTMOM&SlA45{s34Z5o;6le}2BiTwelMlp^N%_W-*#2(<`4#`jHbb~X z^Clt2{91?%=33zPDN?jsWT#j^BLaoa^8SV+$_N-RMKKrw0|QPm7y$#lrx=WYfu2wd zM!-O`6@w8l(o6;;U|^uA9E^a0CMX6YV0cUhBgYsHe{Uf?hQBYoT7I12aQgdL^d*MV zUjTulyT1tB%FGa&vn-6fo|Pzxrnt*5H=Hhi;bAiEG8GNU4CUEXz)rW}hxzWxER`BT z)KO9Xd`xYZi-`PThM1~*#c*|Mxie8CwF3rrYD@kwhnODIo8#=Xxj$I5fX!~vA1$VT zh7mp*rue&)J)tu4Q!!l4el}972oxg?*F-v)gU-2$vA~+W_%R&OMHr>-U=`@_P?BI_^5{DL zBjp&$P>unfq};}=Hft>JXZVMMC=VI_5l9{A$@A^QX*3ieQzX+I<&4m{m<<2I&3Rs7 zM1K#dS2&_CbLxz~#HoKIG)8~NctP|^h3sWAKg&mf|5&P~JL3h>e5CFOQK}k@B&voO{-4CR3nH#(Fc)=1{hT_ZWt_UA<(#6P z3Wd0$m5itg2Qgj{Ek){%5Tz=_qD2)FLsw|F3lgpmTNID8YEGTe;hegnBREBUBN_46 zP`idQUJ%88k7|fg)nHYkYKY+<8{aO7xE^fNT+h**I-|#M>WYr$6!jdd5La{zBdT3T zF0K7;{WAGS@T&ggVbUD27GqP`i7sCHq`M5co1@kref zqEs~=RShxh?V|Yv5!W-1i#npGbLxy@>xU{=^k^_ck73Sz{~ zC(;iY>tDuY9nls}ozXKnbwz`mD*a0tFNiiHbw`L&`mqp`eqzMw$KFWsN1ovo2Mc^y zbKL$(w7QK$vry7sr@D~mTrKiuYg>NK^*EvkThK=Tcw~#7!+1dyK?Le1O4W@rR5vmF z6Jz=uqMuo}!>auF6qVCBrS&jJ*S&`8aYWDO)ET{iQ)R<>j2A@DMe2?arEEZ1vVj;j z8=L|gmgq+9cc2-j2d0t{a07b)HDl2s8>la^adBT<#Pv9$>p68sFXq%0-N30I&G1Cm zFWbdXDg1K_Bg&{7883+5fYco!N*M)blTpMl zjmjUU{DWvRe*BJVKc~d`r-!!bcCN+|-O8ymdIzVj=r&IMr;>keW4s{xOQh}y zQOXqffJ`BV|EGub4?Nh3e|l{M(^X)6}_KR_~%!QDF58ectP|or0xh& z$|!U^8AXi4`UfuQ%s;)fO~2-99MOk3bw(fN)D?Y%Q{|rr883)FfYco!N|}OwCsT-F z^H1va2K#!_Vn^eL)|=kimM6F#NAx$GI-@%{RqM^;j2A>7L+XwYrEI{MARCBbTW?a^ zF!vBP;O>UU@Y7t6Bl--d&gd>ql?_iZUJ!i}sXIcHvH@d_Y#@fR0paL~*myBw_r{8g z8>IO#1UDiJC~^85DZ$;tLQY-&#hkkRXK{HnM!>+LtQd@dft67)7y$#Tl439d2G$0}U<3@zOT}OW49pJ2U<3?|OvPXX42%!O zV1(jHhqxa7jeEvC!#@w^56L|To#F{yLBaazz*ZW5M4T}`a>w}f;CqT2GqDT)3^~(= zISMP%KtPYDvd1~_sVB4z`HLGbJ_-A482L#Z7wZu#HQZjR@Eml3D%HbQh;Api|Bi|E z*xB0G7;dUbjNEVd&$3zjYn!#iugp~P;GL?pQaUH5bQRd>|8tZyf?=d|GXno%-B1ih zl>fr;AN@1@5fn51_lm9NsEz+u8=vx54p!wtUqe8i_6#XF2jkBZA`Q$n{YGl20h9(i z0AgO@JsR-}|I>|e`OiZZ3~k(YQJXHL1Y>#~r!N0`PTl?uoTm9ND0c` z8hjVn_}9mr8gq%h??n5rqJ}yB*HGf}{{jg$uf(i}5it6j3`W2hU@{oNz`D{_BW@I8 z)8Jb0sb44!KBn|1j@BC$J2KEz%82NL^>!9|4gSIWy8)TZrjD~!K>W(#N*)YgYD(<&6%yp2>)WDvt#|HB1YiHGLylGHE1mj_bLtdYYmv2YD_Q!4R@Ig zMrh5#VC8>?{~i=FeP*9?_u2SOG4oY^nsZbxgfKeAoFlF|=SU4@r!@52#O$P)xhi|i zIo9CA0z}Svm=c%&Q6x0@?lv352pF(NHJK4G;1b1P1k>O_6gAs1-ct-l(1t$4q`)|*`zOp7 zmqa7{&%z{{9h3%}%-L~9Y<7gfPc=IX|86RYiA!nl=KzNPx0*$1@Hzl<4)qpAN5xD0RsQ7=>e4PO&n*j{F!EZ&Kp)|B(_b(C=t17&A%> zBT)N@$zTKw3@4R?5iqd$CMu*{l%f{ax4;2r>#l?DnG2`(`QN^@+WP_9%11(QgvqbG}^aBK{4Us`L} z=TwE$e*g)21oKHXj}b7QG8v4ZYd%9xvq3oyYeN6k#>YyhcNx;TltvFdsbB<*7L&oq zIfg$72A$4R8eB$Fe@{fh3dQ&f5z8EhW@>h})Bhc{!R0?l2?nB|>4j$plwirg*&;U$ zOM+?|BQOKgM==-y1B-=XFaicd*U?t}Zx2h)V`(HMxl zh*BOS@_Qti?(t5H4P+Jn!nGE}6K)~W=z!B5%(VINjF>hp%&-Zsi3trq)(KDa572FN zkG?`lgow)VhQAe({4{Txzm2kxEPNKR+4Aj@<6 zmxHD2mSo)u(50d8APlYqIwXzp3Reiny2~ht^zg%kkO4Bh3S=+}kew0Q28OK>6sCG; z-ST9I+X3^Pw&qusG59xkZpu7L=t@!Erg@6z`#*NguX)d@LI@%>i`rpgIf~32n=mo9_+|Z_oh?) z>8Y$q>?!uwjUeCe8f!Op^GzV{E!!Y|8lfr#894(AhH25gIHC;?1Wq=x( z!D}Ha4E_QzKiiw_$F}Cl&+=yZHv<_`YZR7x_#ujsmlegv;57Kzi5KfgFDxE=j>gG^_rs%8%j3jd8HNV0G^XXhcrQzzH~MqzLZV1BMQ z*MAcs-Mrl>2qg=9#4PL<{i9`JH-jFDR_wVND}WIpL4G%56{QCY{P3G)VK@IRq%z0I z%h5xY=XT6i8pi%xk;RA*8vG^YcG(Pv^WT6V&*j6aCr0B4Q5c~q7-M;^i_72)o>k%7 zP%Qd3@(Fj(Dhx-~bvu~BtpJ6=J4kJJZ+8loJ^A_GeE*$5(7>Lt2IfcKL3!N;`361X zt=RLRK@B89e!j7a(t`yRaShD(-$g3DMxK`qH6moL9@8!i2zo4Bk)M~BS6OW2hPK6~V5z-G z&=Nj~Z1g<4BKQ!Ojqen)fFfs9NJAy~2&1GQ8@uxDqs*d=D~<4DAfj&qHzEphsmD2s zVz6yb#MIa<;gter+VZ6`6VZ!DkAWH(3pcUKu5@v)Lw7Oe%n$BjWo%+c_alGqfT8b> z$S*jw>q5Up7pX4HD+upInU#sNnChUr19SqRS?~7BFEok|ss)1=io8PqQ&d~`csAcl z&{=wIBU*;mtp!+!^mC+Mq~^c7u)d&^#2FZ-n8;!TrW46>v5pNO8Yy@&eh%=J;H|}l z1xk!W{v*|darmEsC8(3)hOZ&_aon&6hQt0pA<=QewWw$`>fMd&`~NI%i0p-0Gmy)7 zn*p1SC*Fq;YsUwaM2M(7IWe9fnH5iv27`5SC=rV=_92%&!k|)Vp`(!dKZr2qk-4kj zvcpFh8KLQEre*(61CI~UaCr11N+Lug1s=rw(SZjQ{tNMP$2AfB5d@OTeK z=)i-}RDnlKM`GZSBuK3E#{?dKh85aQ%qlbRpfQ;oc#r``gk)U_JZNrG;PDBi{89x4 z9>uilslbB-6nIc-3p}V?Eb!ooh0R<|GcrI29*GtX=Y`B>VFwt82|SdA-J*YiT5TZ$ z53DR^;6VZkJSepV9&DjK@K8fG-d5u2z=P0O;1M$%L;Yh2x)OMNihMfoU|n6=l_>B~ z4a|>zhVr_B2s}!tfhzDI0RLVI=_P|5Q zlq0Dgd*H!swl-~ZN4JXDw)@1uBfe9phz>l+3>|ooehNIe9u;^{Ml*ILWowRiE+oH z;O)j`i#y(hadC0SsB|GPd9WOP4iVyx14wk-@kiLO3iWzWXASh|d6J1W)eIrJdR`Iv z0&2}dwzwnmHyi&f?Ahj1yfCVbegz?xlz&hXA)>M=F&-gVVmv~1nehneG`JR%qs~D7 zjyxA*Sv1c;NKaa5BXa)-5z2OIzz>U1$W~i~k`ekM-89(74!6S{|I-tbuVEKl|4&LH zL?i_+#Qf2L3l;tmfs0ivE^tX;>lh-Qn<8-e5=Q92h0s)iOH4;%;F2Urtn|kOF5ke4 zic30#zg-J<`7T5TZ$7c6aN;6eflTqv~#E^MJaa8W}x-d5u2z=hCQ z;1V+&L;YV6bR}>(h)hKXL4a|>zkMg>K2wVnQfeQ&JaG}%|xNrmQfeRUG zLcVb+Gdsu=o=b&f1kO zroiP8UHl66Xe08&x>y;T*wLjJF~Qw1RGpX{%5^$$Aq`gG65k0_hYnl_jRh{;6kaG0 zxI9m_@rjAWPN%1jo^ms8@gP=Mh&C=mYCkU-ir4{NBtA`uTP{aDfypf%Kso{`E{TNR z9Tne!=RsUzi(CE*+Z^;f*E}y-0Xdd0tVSqDaSI;&m~l%Vij{CpL7l6i>pzKG98jAo zZo%`V7~dARMDXx5#_yJq5YMDTh?ORTk_Zu%k;Hh0WQp+%*_Q)9 zQW7B|DexiYj}CmO@Q(<5tYUG2PXb%VAo1K3flnHY(18!3sREyvj>NzxNsw6Sj|qIT zU`2A^LnAmj@F4^6%^KN#Ee6M79u?8*K!Hy;O8H|E3Va4xfe#5N@S)Te_)xi6;KNfD zOO2YiWPlEQ5-n7LkIljkwr~p#;?5owDGR$rbD>sSh`?vC75I>V0v}3kfe%|~4}8>+ zjklF}I`APh7Wl*r$579Ppeun-9`fnHhjn#jSERs4H84NwMS0yo1U`N%@F4*OK9t%5 zA8w#M@F7F-b}C?30v|FL@1X+52R@3g`iRDzJ@8R79{6yZlLH^C$RPrs_)eiB zI`APgbl^k!De&QX9>s`J#v}0g9f)WS#CQ{zA(v8tk795c75H>wrY)b<1}pHvTM7w* z59{el7gOMKh%Q!v&kyTjWo%+cmr>yJ5)4&=&!JqW10T|01wQeeKy~QAhtOEy!%g9Z z0)fxVR2v6A7CYVl2XM;~rnD~L%b_W1|W#MtLp#5GfJ z*-hH*k4y8RcYbF{5Moj3LrH{) z8;xIVz&*364FYAw6lK&4?TRgNWu96#sz{4cTgoQOt;j47RcV z_n}J>41nwL-Z5NHL{jKN%pV=PP~jgDx>&{HLYD-#jw0f@DMFWCFhYkegr*8zVmcB- zmn1=Ar9UQg=?5#4Ll+vV$)O7wfY`;TedPLd{1qK!+}g7OK$2W?>gX7iD3$Xn&~H79w=1utFCSQ0PLbEp%ZE?V*br zvhlVOPlqmq#zL2v;TY=05OgJU8Gw8`bYWdx+1Ds^Q4P$G4n%p~K!h%pR_Hu7oaRE?(&ej1OHDU-c1!+N^X#T2?6qKj4N^254V8JpPALnw541BR;5 z;im9Hfzahms*OVzi=9rdQvc7+Z0M7D2fZk+;ug1F0YGTJ;%|2*XiE_M86qGij6#HbO@#V z4ZYWC_^W8b;_wJ3a3siwh|+@vN1CstQ8{RO7n-uw49zeiwyK9hL#I_A$FKZ#UiG`P zyHYQ8BYt?}ApanMvK?WK)s3v5o20u@)E1#h_(x}E2-gKRM0?yg2yL?Y-z91xFJ=E% zK?MKf`vmfT1N@J-&&dDP;24qN3`a1e-x8p&%i;OGrswyWp2zzhrsqi|dHx7W`DX>l z^TRC9lYl%=>A`}dP0v#~c>aSp&)cg05Q0vtR-W&?YV!Qy>y3Gy6|wE`JRVu=31qR; z>01I7``di)f?qMo?7kn0RypY1eKTf%D?=WIiqHBoCsI_$ncc7DbN(jm`HblthS# z9b>w^ZuQzZ$yA8%%5#O(Yhq-U3g}%S72=aYCWk84Rh^AWP)Y^;W01!l^poba(6h*$ z=lanvtN)0gpRBh<_h!&fO|Y^5_d$OR3_xdKZlg1Z2>q41a4meOUu`F5CqX}bCa@kk z<6mtj?#09{R~i$8e!LKWxL4b$PE{-}=ucql_&c7PBIrLB+H}xQs0#Ws@M?R8dbJ(X zDW(H&rEj9PbC82q+mi%|mFfaWuB38T0StoTtC7ZDZO5zp*to1$+sDERHCQX>7z)v5 z;|Rb_UmAI$Di2j}LFugB-6Iqz!&9T2YuPn@oB33Xh z%;6trs@QWamPsQ*0=yc(ic;Gx1zVV-UYyT1^0M`W;MFN+D@_u0OJPI^=X;9iIAF%A znDLlQb;OAfU%fzoGZuGEUN_OGi~{-HpJg<*v5u_ zv7U8xrJL!N;}G5a0FSgE*3HV`#Ll+ga&*^=%_Hbr<+eEY>01uckk>uD6PfU0J&%4G z?LV}Iy${_&byM|!yM_34;7|j^-on_Y1Mx$Ryr^%g2#wuTacA*T8Fy1K86PfYCWMP8!HVR7j)rP-Kt~1`5t7*hI*O7wprcPBZ2=uk zY>IYHrgYU5KyS7|zc5#^X9h+8 z9hj;*pv&{-seq22bKeZU{t{AIm>WF>YPE&AhW`k%@GdNtMuY_UxyC9=Z2=uyn5zQ1 zZbn`=J!Io;rD3ekhzX6I5yuS2P@e+<&Ig~zqBr_FtgFE3DCm%1MV^W>I)G!ni936N zw?GAO^m*i+s#&$R8cl;{$?BJc91o_>KRg~HSIBslr6~N^idHHO# z5h2r)0yuA;mjXDiEr26)jR--oZ2_F(tNx-fXb<3&OsxY{k3E3nHe11u8NgXZ4iUh` zcMuiP0UVj3131!85eV0#0yxUJGW-QxNgt}~2}*$*5u8s2ZK+HviRH0uwgR@lL5bdF zveg*J;m(t+Ikw4jzwz|JCT|`5SnSxrPwiB-$Gb7R7GfARBlRLR{~e|G_%D${6x+*b z&(6VqT!hQEXVZ+0J144!+{b(NPa%Tg^N{FgyRTrrv_Yu@H$q1vhA<+hLul^4r_(xq zI@*OFtqLQF)DlK$2?WyYb0z&J6 zgv_I4& zLyZW*q)jTtr~72C5g{1=P*d?$AJMq8Z&FI897*-qHz{tjwcwkZlvU&qn^b(KP!YXJ zkr{fEBK@>UaXo62qKr6Yc#KxpMZk@Sf?P_SGAIU@Q5#k#X4>*uZLl`2-=K>4hnlRX zD_u+{42S6ASFjNokssE@%Gkt??uQW*+yO(?L(N0EPTzl%2J4|_d?!#H`u>~H*w)NV z;e`TQ^HWqCKh(6?<`;C<`&bU_le9NCA+_(#^po>+|NS9S``)}Bd+7l1??#$CQYR|S=*nvrZm_1ur*e$veYPE&fvqxKdHVJ6Y zrqs4)vxW9OTMgNGTZyOlY(isucFb@L^|K-9%AOrTKD}qNuC6TTbYrO+m>*q*^16Z8 zv&UF_HVJ6Yrqs4)a|7*rHW_L}2zF)9CUcDl!T3E}@l_wuxU=usN~Ro1_1O1pZnL%D znR~WXG|O~dba;T0g(%}Vi-!#BvMf*y;VM!$(l@0Q3SI*(W(GS21KfY7Qm zv2LU2g(E=vouPA3qr?BL%1gg9^mMG<=R$;bpI}7R05c-z1ETd8APM4ir^B?KN~84` zQo?_&fm(l@Zas0)dP;1qry^ZyJ?mzrajm!5y7j8sW<=IAyciH3*nouo5D`4^9URB~|8F4F{|Axk{wE#qz$KLM--sX& z{6u?zxbOfa2MfSd{ZB=pL`d#`iKLVMXWgt69x#wk^}oeV^E<$e_5b-I;}XjUS8k5^ zU>$07(2rrN_mJG;CHMfvun}Jh5qxmE5xESQ5xJb<6%024!V^~_30AWwTu{NDa04Mv zq#@OwAWiVZRg~}_rXWw$XipFqo}lDl!C2E1R0K*gpae6)gQOErux?fgPh=vW@`S}s z^JjruuExT8k+I40!*w^s{IC)AIsDm_6DHtqR6GwqRIneehDeQtYk?V&UogB55FXf! zB#4LvW8rOcEWD$~!X9fZkPdj@dP?~3VUP!EwFig`4^U!zJQJYccY{CTQf$_Jf}g=XXqC(!M@DiRl-pv2}0D$*rSux?fw=Lw6gJ#m<^a3kuo`N1Wynd4W- zX-@nSBKTpB5xE_h5!uS{4nTNd8WaH55pNkrus^68_U4 zUTM&qs}=MvB60C{4JEc$AgKtHd;lfE?$p6OvS|}wO{^lrUqI~qc&@)tbtV7aFRlCM zT_k$wb^kV~bohIu>g&58Qhj|7F#LEo!}}QC4~Ulj3Q6#Y!}c|4LSJvEg#Vxj^>v-@ zYvQ7>DY5l673or6vu;)z*Vh)iYkhq;>g%MhAAm^p^{;{9cd!{g3w_fUQPAXM7=+P=p>1`*nbJ^l$` z_+e{6v~CBIAkJLTx*h#=Qq8is6Tt3iPip0lA5o6O@E4t&F ziR(ICh_%I7ToB>zSdc2l;conUryudrVZz<#no_se&Tw)O;g|M4qBLK;T}sl|dcWG& zEru0+=5veXeF#d%uV%a#!y_4f%<$&kpZPpugt4w7N4!{mNiQ7qRovg-Ev_yYQtTG3 zy-9yZzahn5(PQu#B_46};B^)F1xiWMq9TGL2T=YA3}2P=2Iq*IMDmsI1IJ&CieC*cDM3d`N%_M9Qb z5pmlgl1jw>J=)}icE%*hcg125_26*EfCC~=GVC8X^{6KM;W0PuvT`pp~c7XR)~_&8YW6^n|fY%Xw*nA_(ic=Br0>lLr|A^!S; z`~7aQVj#hY{Ff(3cnU~!4(jrXtbS*dc*V}X1eY_sjNxs79x-mU}Kz!LJ(-3GPdh{~m?@#2El`+LOrzQq5doA?ra zd>biv7&-%`S}3S*$C(s`~A=OJ>rdC#Cc2-9EG}a#L0eY z%aXojm2Pn)kB1(t?ZTpG{4@#=;+-oRo%CO>c(D9c^a0^pzK&#Y7w6vMd6l2%}6I|k4R_gd8R%W9;TYnE7zl2vY2{_ zseGBkR1f(7dQmEKncBcqmGm-o4wkX&@u!@-GxahSpXKBm5AJ1>>}nffbRcC{SHRETZ4K@MW-39kK@ z($CaUtmQ6Q&eS=q${%;{uSNM1l*Os9B_E|Re&A2l;?PsHs%q2R}SawPWS-U@aOz?!2Cz^HUd|AuHdqEZK{;PmMA?+^9ttl=KQPjHbKL|{A&O!!JpIK zSV8ct!Bpd8-L`=L66&4PK2{LSmINi^(-;;wh_l@wcpBq%PQt%oxYtei8_YkEIqTDi zQ_D!$#($vz|*>!*k4;&75q`Gn6@dSwk!1 z@3Ds7T<@LCsp9-u?DH>}vywSwtl>t+H*)^IT+1}ZUt>6&;X@4D7z)mF8sqOX+{W-2 z<`3XD9^|^d8c6MZh~e{W;meHwgLCd-+|Rw-x0G^LaoN{6XE)Xh0vK@*>X%A?Nzb<&|E*f8P@`&vswMMB)-}2dEgF}yuAV=##+hBH z@syM`{_y?^{OGzSlr4n~G&WQZQoo-Gjya0XNoiqx{3X}iq+gB}O~p)? z;^BT(DHQPt>e^0aJ zTdSAJPP=bA&ok49pjCW?S@BoQkyA8vX1|kN(4nbqgTCx%h$g01r$0038&DxF`x9gi zu~N&vh0Gz&)3Wmhf8Wn3)@#`ngPp}ru}RB1vJW_2VzZ`xm7R-|ky|x&ckuzITim6~ zJzkuPJG%$9EKqR3nI@jl)bfH{oVGrzsRt@N#p&Yrn)+jf7u1`Y`Z~K$afaBdsr;M) zp!PGhD7<-z6!#IUm|87fDU!Hry@OtY68kd#SYE_` zZ=I-J+0;kHgyP?>Z0aM6qCWDmgk;n!7DfGFQRI1xBF|eCd7h0FTpxUGQRHijB44w~ zoRfTQQRHiG0L#eN7Dc`u2tNJW;=b)yD``Og<&?_~* z>EicHeUx!w`2^n#@di_?(=RWt0kv1jB(-6t7{!hHNKzY46xV2q+Hey8)C1<2q&A!? zmf?(yC~Cvc#G9I;HY^a6xcMJRYQrLNucoLCON4K*Do1TtCe~_-+R!RK))ckjY%$4C zIj<7;R!s4&6s?+?ls(565l?IC$^MIdQE@<1q0Cm_&&4Em_f_JXf(w1;idIb(XKwVJ zFJ9G@e^7^S9Y46F8lKO(!?!^!#*;jvyycJjE*G0LwJ+;w-<9G^O=a|c)pxD%;UO30 z9G&?m-}Pdxrk3{p!grI{uBq9X-}r77-RWo&Ih`oCRn%zeNR+!v+^(s`D0jbjRZ}xi z?g2592gy~!SGm~tu$Zr@V0NqTQSp$b(jj|7e4wclA=@F2ro$ngjZ!=%>SC0;~{JfNwWm=C`bk8A2Q%!l8JU7C8Z=z#P0;&+fv!>(?k*lcmg{2cp-V{AGwY;qdBFL$Xw_5;`r&O6)l_l66HDF^=WA+kzmq|2 zWJ=YrM|8tubhD@Th@LU(^pZVdv7*wcH$N21G)2Anp;)0Q>XnbgYE4nEd?YT?6!r9< z#pRl!p8m7APE*v=AB&qcMLqqoxKmT)`Tb(MrpWXA#p9YfAF@xxGn%>yvQNbCG)2An z7xB8Ls5k#2{-h}yA)ksrGo?nzr{Vxp$`hZ7{=9_J4kX2AqC7^OS@M~fsHpT^*ewo- z8Jc-RN^EFjjo-4i(O`3YQXhq52#F?76a`1C7xtT)$px&TIJ-{ek)#xQSUgu74Io3oyPUQ#V4Agas6-ccTK(2 z{ebhJ_*PTzb6BBV*LI5|_L{QR&6K z4>ism-p&&wASUzhqWx%cfi?Q?$p#E zU#{pbpV!nUrMpWCwQqp@LQ~Yf0rFp(qWx%~H1PNso=>O!XrRp06s^~#GG9})UYE)uO+8ea z*ME>4sHta4dxILnlhv{O87k$iT1J)) zk#}hsSvEvIsAcbAoK?vuwCpdCRmo?ytfp{e|Dp2tnmVQMXi#rz>XXu+^dBboYDx^6 z4C+&+l-1R8EgmMDW3XCoj8X46s^u>gm3|PlkC1n3Dj$9sA%Cr@7ckC7%HL?}1B|ng z@;Rnd4M)g-G4)Z#Etu~|NQ0l~u16kR#ZB9evDkll=A!-dAXL6=Z}@Y&@%G; zvGQguBhMcvw`m!9{y4c^%jRI5{X{;dsRoR*pU7u4wP{dG{~GzCrmi2f9MtPfDZkXp z15E9c-&aWdwpq`y)DQdQ6WHi$CB1V*6v@WQjmKNEv9d!`BpW9u&9Y?U5Y)z4Dy!@`wl8u*H0Y#B)f?T!Gl1-2oYl>tO9tU6Xd2#E!he3 z7EO`tM7eyUB|A~B)fCBQ$@a@E*(|wHQzV-$8!xwHvt_HMNOqE(e}yGGNiNeA$>zwp zn=Bc3w-^_34P)?`T)49#L zc#rVk{@h#x=jvozNl(IwHpvTa2xK#B~DPSkw6>+<3aHiZjA~{>cH5r=b`aHqs1I2i8-AZEy?+5tkNhl z$4_D@vdy&TaQY|kEQ`-i`f0rVe^vi3tOI5nX_T6?Pqm^m={k7Q5HDc#I>gcn@_Ctu z+IVthZmwG_F3!atBi@Eqr;F;s+}sRt3Zxz}qZifH`I>Ne=|wm-GBvcb4MW*}yUvqw zE|SVNvcWBW1DM8ErNd53n_a`9@x9qJR*x#DwtM=f*6;?81f}P19xKnOIaKzvB%4)R zzU*%0RAr+mYlstg4V>;vl&U<-e5CUZXm*HoJpLE|7iur{#TexG zh(bs+#iu=TbF;(;g{d`n=7&Sqc#O>_V_>s^ez$DPCL8iZ>wE2C*Sk3%8=3mBm7Pl*pt(_`*_Wn*x72yiEoGM=FmoH~CXEt+YGiNSy<}zn4a~he` z$ec#zG&84}InB&z755C7Y^)OD@_EJ@mabvx8kSzn(oHPg%+k#)-OSQkSb8T*x3hFR zOSiN1F_u2f(id3z0!v?D>C5t-0rMQYWw;!tl(J{<7ROtXTKATGrQb@&wMH7=C)ol& zyyK`8C&IQ$vAO6y@W*TZN5Dq{zt8B=?=#>l@lMXGg65BF@L%?90Z8etE8!jrYn5!MT56ktd`*C)XTNbzQJ$*^_OEmel-`QVU6pc0C44BOMR#z{d%!3ENVzsg zVuTONe#G^%Jg$6~s|o$`qU%h#9A|Y?MSadIz^RXR8n;w@c=4VcKPvugxxzt=PHJ3|ChbV7z zUnYm+S=oJZS>+mchU5N$>!IPAiYwfCz<&Y!=3X~J^B(_J_kQD|LHD>HHX6$x27f(>dC5~$<_P9$NH~0F$-N-qcp?{^QhE9>T)0kGCkv3JFUeXOP zTD}tVi|)5)bE{ifLo1hB#ieF*&e@!EHs_qnIoEK`HJtNe&N-KJ&gGnQIcFp1+{8II zan8-0vypQ)a?VE1c?)~#PWIAv_R@Ct($S8b?BChaQJk^BGZ}4P?Aa>IE0zJO-r3_n+jFYpt6ovh3643v)_5}5&J4Em zRj%5(kZq zwlIf5=7?*s`sU!B8oKi!&S2FjMvgegfmO)kg{9ZXCg9gHzFDq;v_swsc#Hf4__s3ucKI3bt&HC(a|(0By>c|*b~zXD zAsH$3iicVHnA`;XamIJZUqSk`d>8OJ`8D{vng4<;?BNwJGX9dR?U5s1m8XI88gt&1 zD}cYn_&f3zNcYO8z}d%~59H^-KVQ4(K!P!dDw5oPVIP3mm_( z2e8uk2jDOxyEn#$F$i#!aV+2%V-8@Au@tb*SkoKhfy+)Zt^;SPaX;WpV>jSz<2}Gr zjBf$w8r}Qki225lKInbU-)Kw#XR$F4u-RA%xXid3u+_L9aJjJ?aFy{MV7u{ez%@qC zBJ?$vU29Yqp|6eO0XG_p05=(H0IxA_1l(*q0@z`^f&5!I|1HJ=aBep;;gdU!L0BuE z0UzFG_!Ywp2YD>l@e{!Aj^iOM00%RRVPA$N3`-f7F&x6MnqidTYKG@CT*q(&!^;>x z%#SuspJ6@2c804Nb}-z+a0kPk44-04_Alrr6^N_!t@zo4F7;a&B3rlw}zLVizhWi+Pz*78<71hYl z$FPK94Z~W7bq3WkpYeKz4aTpiUdC55JdZhRIOi7T>}2>9^LHED#JZvTnDYVW*$>W5 zL#2ai&v0xLj}0whe1PLoaLT}WV`wdN>Ks)2WN`jDw4ON)44c3y9JZSA^BArJXXvmk zjNi;~D>##f?PUBZhEKD$-QYJ5+sB;u8SV#X!!YS2dmIcioZH0h!%7$*z_1LQ=ZDoY zK91pJa6TPY&v*mFCU9;Vx|;Fx7_I~7pF_7Welx?Z;5;_;DaLmLe`DzTjPD2DJWRUS z28J1~ZNgby!uSA&W#CL6HjeShzzc^pFx~{by81lE*8!hieKX@*fj3n@#rSUEmsY>e z_d7yT?Y73^<=__H37PYuLB%Bd@JC%;kyAB4BroU&hU)1ZFuTm2KeUi znl#cd8Tfa@=QG{}e8`CQwDqE6;5y(x8_@y0XX#ep7me5fd`szW;5$d`1wMGte&Bx@ zA=1~2y9Q;X(>U<~A2_%S_=aIMz;7Qs8F=2v`M?MGn}Ao1Y^VJGb)3Hg_>i)#z{ii= z0sM}#-N1h~a&J1#^!>nxj1U>?#i(+TL7a??ZQ`<#KE}&{KRB`m(mTp)m@_%!x8mKA z^BHdf{^`heNGmJanX?Z0t44M(z7_bop*tYmRXXOjiHZW3BwwOwG8JotY^5I;TDEF8SZ7ckD=(v z+8Fv6mN2YgSj%ue!+M783_BR^V7QavUWWS^ie9Xfp^sq+!y1OQ4CgbfXV}hgHAB&x z%K8{~Fx|nT;p|6zr3_BR^W#}73{5M6BJVMTqXUl8kJ@N(lzWiEx zjUh&(aiMX8@rd!7@r9A)@H@si<~Rb5cE=Ttn;Z{2UUK~1(aU*+GvYil?Ul4;>Dd{V zX8bMVZcj8bGpjM{@hp6~kEa-TnuPP)0=&mvDAI94n}PFGj~D=M1f~yJ$zFTn>V2_*|052^2CE$Nj)>*L)8cyy>nt#TcpD7}|$V0VEt0cUEYrnPZ zUf}%;i8IARa8fUVt4bdS46%laeoq2ddQ@4vHdX4ETvq8(n&03y4l5^Z|15eI@P)D$ z06*cJC*-^id`3T#s#-qkPIwzjCvd$Je8f4rH$l72<;-^u`Xl&%>hS^K3x)duhxVnM zN~+qf+OoU!bMPy3NUHet+{U?uUxVWu^c`Ri=6uXPd6=yl=y&6pd2*>mT>F+mxdYUA zkvRKz@a4kzabolsxYB^T0S#Okz|#Q@T$#W!V?QA&IU9@1anG?Re*+wit)hD0W`$9{Ehs1fQDFu=Ppv5&re}45L19( z2xy44VjA#ufQGn8%mBU~&=41k6M%03G{hyi2a@7aKtpU4Cjq|<(7-9y$-u7yG{n{7 zRN&VD8hAGHQ{cY#69qq6!!ue zIPY2n{C+?~JP2<|@oPW>XJ1QzKMZJyN8l|f9tAYSZ{RJ7)36}$o$!_vPXZd^DG>&a zCj-Er5pBSC0UF|2_)m)G01dI5ew$j=Xy8rc4Z!~l zXy7+KE(N|H(7@ZhmjVAA&=7y+Unw{MXy9A_E5ZLepn+4ktAT$7Xozp&bt%3B#Jec? zWe|M*4QPn(ak5A+;am?~${T?jfS8SP3vef(fhR?MF+V<+)tDbyMk!#9F&Izca)B2K zFYvxNbtwfb1l|v4FQtIJffwThhUQQ|;6C94?i2limxzJDOT-}H{c##o3Rn(&0M2Ae z0jq!y#K}x4;BerjIG-s6JQDaIoYIs69s_(Z&T2{lj|1+m4 zA@!M;?1Oc<2v=WR{csiI^5H7M)gRXYTmx~H z;u?h2dN3|Ot}_WN+=@*b^8B4@qV*{Q{Zonzn)#CTY7U9O-`LVcWIvxLox;)1nl)I4r1$1HBXxR@}McM{=Bd*(UZBIL0?n=8(j!C~x z*5NuK{dC!ozE!@3Yag!9L5qy7@~0X2wWo|{<#WK-mQll%UM}@#+_MxjrVZnwDFg-*24x>*)J5jYzdvj+5WZE%yAJQIGKUoED$H8_?EV%utibhf-MW17Qx)c+4bQiwP)8iwQ31BV#YGE8s?(q%YrRoQb0YDicbni z|F~dtbD)6=fnt+LGA+=$IM_J0t*N;&5P~399aE-JtwEAao)rk4)zlD()e;6%^Tstd z1zK7u6Lksk^+=jNu6lTksI%jR1~tCbzVXuyog2Xq|;luuy!G zVj5L9%fctxa175mmIR$?Cu{9QT^unhj;bCWuf$H)+KIY2VpbegJtAI792rN0qQ=Y%FAlafH_i^#Hw0*@ z0gL9xa4{vYVorT?TVQ5=QwZM&O|EO=fmvs)gvr?76`pySknzG9#V%}NGv_I z7FuVa6D_oEmW5BW;p0aPpJPeTu@*5tjyQ6pO@uzM<+BrY)koSzaa7$XyC{wrF+6OO z)x}ZcY{x#h!J1JXtp?PRP`lc}*>61siyYn%qcTi>^qqR>!&uV(NLz z8Fkeo?VUSP6{oem^WDcPF@4-{8!-n2)`}x7R;`8BS?B}{ooJzTvn+ff@Gg zf(x6P12H?a8J)V%Qa+*j$XNB0YnaPuJkqv$h(p(5@kB+Mv zl&S*=>gZIf631E!a$2yltvPTUw{u3gt|`1^R@2JB#IYibhQ~32b}6}KPD`M5R@(wV z{Lmz2k7Jx=mvZ)c_{q$v@w0SF@(E3$a4Y;44m7m2Hk}nfQ(K!FCeLKmoeCFrR%$jk z3A;*NeQQ1IF!3dtH)}<>HLw)Hp&2CU*s!Sq5l%}Zdr82XDJGZbZ1yXG+I*CP69e^7 zHH&|&Q*lzvkWT7K*^jB}K19YtY=k0(C8;&R3tbqu|Nt6<(Zzsrv4uP*bvOY<)P8Qb5ZN z9Z;YvmLwOOaAspmGFKm;BnxVnHFYYpySdX$Q_$uR;)g)E(=1cewE7lwU*ovuHUu@H6d7g)L#?UUZ3~*48ZZu1$keDzZirgA zQt*RqxD7~J2d4&G7Mp4zA{@6jaG@020hdh0Z%E!cRK@C`F>$w07IY#b{q;>a&edCuPEzRLL(C+8V)?`s zfIJ^p!L)jsU3z^G_O;C9C6=(QMP`=xZi@?9lPWy9siiS^wt0`rjP((niGdp*;IKu>++|7m#vE5YkB@J39qP^t zqkQQyoKuC&IJdF375B#r+F(juU_slWMYQZ$yxMR$uyjE)_KVhdHl9J*d*3QCyFP?L zIw6G7iU4?tB~a=Ep-D}R*kUdI_~qy-is3AlS?dH?s>6_E;pCQu!O&9P`0JaKavdKI zw&0|@B^=9?tO28hAN#P5WHEvU^Ulu_D*x$wq~`kNjD;;Z)jMOs8F=(#@yzC++Zx+a z3C0DNtq3(OT5KzWVN$=eHWaE~k*tSosBf_eu*K6XWqxbZf~MxCR-2SeLe+SPW#`gL z!jn-<3p6&>(^Q#+^O8VFF-bhBKCFnd=;;84|I*-DYEG-5n#ZC>&*Cr}2fs}eJR#!d z;hPj>bCG23lEh$Km5#;Vs+dJCu~5D7sO5^DZ6MYW`g{pDwrCPD#ltYoG^&+~PPc?hOK=0Pc;a27}AuB&28p55gE**Q|TQe9p-xgd6IY z1yH13ok)q-+bb5?NRrw&F0&N%Z7RNf zPc!q9j->l9t|*yHGa&9hO`N43sk8m&EgBb&5zYF>P0S9hz+n=NBisXEz|&TQ1vn`L z!l;W|Bk3@x701N%c%N34Doj4>uFBTuyvfE3&503MsGp0Aam~TD#_`MPID{&%4K2bW z`Ic511{T+{&f>)>w%BBmMa>GdT10}~*o0dVOt!=Z7(a=|8o4xRvG{Rx0*{_GC$R8b zJ&Bjhp{LCW1?iD<0t=5-lX%G-dIFtLkRC%Pux6#;rO1`c!XxHHRTfK~+fNU)R?#V} zNO6j7uDytU&x|>fo)Cs&6y|oQlXoKUV6t`Iyann734Nc*uf5R0?2zL{t06$g zBfJb@p$?8Za#%HOC9|+0qZH;K3E~3}8kd$#jrve17>eh|-rM1W|yo2q6ATrfQkr` z1(eL9h=2yxC@BI(mnGV%e)z#Hu zs;6s^E{icD`+|s2PZ!&W2th((rp!F^yS0V586}HAE3`0y(v-Ol?YC0(lCk+=zGUN~ zHmAlH*^C&eq3{=eKw*;q$vbaWNI8|CgI(D{K=GJCeV`u^_U|Tsmx#@ zP7+TER@6fTRSj`ib`Tb)#elUmHCY@(5VB!ZVOR^uCW#iM;-mz$aEB!ik%pd>z+eqQ zq;XJ^8igqpmWiU=7PZ78ZkdMQu*nwZQlT_t!X-o|AxtMgV!frnq|r2K5U9gzIRv%1 z2a5@{T8g6{5MhwWY?0y>Cy)`SsMmq22`~-H(gQ)90=TJ{7V)G+cw{FE&`5#%G1_Py zj&?T)yul`o0su@XCshXcVF z!Xr5iu7p-JoY}}E;@|{G2AswqTF1aW4o^&$s%Ygi08mr41~c7&VQsr4xz_~H^_N#D#jA-j&QYs7(*T5w*;zi7DY1# zXe5eo5UPHF1z{vK2f;lEa&k~iy$|5a!dww;QI0$2E*?@+fh)vo4C1t{8*rZtu@u0L zYL)>Z5k}=8NC7vqorb|_mMEZ~11DL;Arj(F_ykZmybEtiFm&CaWF~x@71d`rV9bUu zWA~Ba)f*@gdI7*yG)|3yGdOW@<^;IVqC)OKMF2lpt^yzqBN?1iNd?S+!9&W88}JYc zazdPh!`t}gz?~KF6b`3^#C*1d=|XWUTrv#6UE!dE6(op(!{OC_*;J}<%hdKnFE|=t z3daJ%h+%LrAPg{sLAfv}jbO#tsM2A;^zTcIg(l|1K>~EOfx|W+Oszps?JN+J01hp= zgV=&VRFtv_2uYK7?2m;>HCi0Nf?{(p`RrKZcE@mIs#b&y*M~&mIYTt-xAl2 z0oY?Or%33QSiE3a0w`(>WJLG_bwn2_4b>=Ij7b16XbeK5Di=2p7t3H2gb`Jgis+zn zsK#8Nl8U9th4VQS?{H?Zos?Tz{=5bPjVL@4#Q_eaxLk~d8Uv}3oEl3}E>d!eKUi|0Gm22FVi_YFwn3@?6BKv4+#@Xz)U3)zK`JfN7z5K>*9jEVvGbna`16 zw3gCyhg{U0h#sNo4l}C{o?Sg)m_u`3HsqicFM3WuvqlOmL8JV=;)y!TS<@O%;2c7 zxCF;TS&t(uhKLemaD+3dTZJNI6=(un7DJZ+kOCdJqda3yoC=r8;3PsonP4(G12_ZJ z;B(^)gwljysR1fQJ)Llho-TpIOjJ^*z?izVr*567TNmnPiEf+%JD`;ZcPDj-0%vbf zSdB}FgDSv^2TIdbX6hvA=?E79R66{!7#tt17I9VRSO@}YfH>5~?CB(_Aau!)ig2X0 zC<7JHNz;N1fh2R1FD= zDy#}pLm9dRs*4x^R7jV=#pa7JqJ|LH7KJg<`50ue3 z6N2-~aSJ3V!W|r84Wu1`kqO-o zqB}=;f{oMA^&o@I5uWA<>%l(&6MkwS4K%zV0?HsB=;RDda0|gU0s;jLNQD8A$p%5O z*=!{=kPTq72#_7f5>gZ~i#XQ^FsY~^I9w;T5}^P9PzDWC$!IX;48WsgI&SnzKmf4N zVSqHoqK-RE6%(<5I)u26RQeW4y12rqD>2j%7K)%cmkIjA5nh5G0#rd5Oss8t)JP^1 z4QARV3}rPC;2xbM7>SV}E@^S0>7f%LDWP)EXgH?EWnf|H5==CvU^!A9`Uq-ENWvo4 zPy^+nf)boHnCL28)jVZt=tOc#M$-sx0CYRTV5^A=vtfkQW-v_%HfJF81ZXZSGvNu; z9>A7JgcGS~jVL+=6DU>%M$u%$W@~6OU_QYS6GB0a!4}oA9z-l2@F~QXs9TMS8kCL2 z!w;umj%e6Y!94>M1R52zfC8--$t_K`!fDb9q$NmHmlHy@<{wg95hDUwMg&qu1fa_4 zFzmsUfyO{oEl!9Ga{>Pj=CWm(%a$^iO)-ZiJPwSsn7IHM=6wDg%;m~5mn&s1mtqc0 zwj3DGF>^j$m6b&!62}J%)(5MuBzO>%2E^?H>LQx?Pz-fmaSjR}5kYB-6rL&rlXnMg z1`Blzlwd+|+^D;BM1T%yf;oVx9sXlf)E#w5NU9h0S3L3KG;!CQs43~16JdeSmcWEi zAvc6UGUxz_Ut5404*#X&EgEu_U~n{oK2E?=u>$pGHr#OsE6BsWxl)OMv9e0k!>d%N z!Adw;T9+Cf;be8mxFMVzhx;AWNTNF8+WiZsi+V95)0;6eU51hAVvy2iAf+-OrDBk> zW*}uUAZ517O0Zx>t01HbqL5gDBvDGYs3?dPs!pj8m4X(vvJfavX&{x~N=6H*6dmDw zy2Qn%zzrt^Yio!E2_%T|b3&TwJzn*S^d5&rdLPnE??ZHi5w2~Sut8s$CFw_)Db#O-_0o2OF15L3sqM|O zchgCo};&-p@{jtnz=fb@j$ZVL5CB5G)}=T z9vB4vVOYo%%^-GsD}Bry7eC2lboY{5Qyh;QUu5o$+ru@E9O5$f@T@qK$%_xVw$gjP z!*zoWZ=?DJn-8JSqoqiihRe#(T0*-Szol|otQIUDWhM1WDBq)+A%26WIofR~fOBQRGj z@$-PnDA-=1CC;ZW!xxn?p<{s$CWYUiw4tYDOHax6ca&^@Psxs+l0AL01AVe1JztK$ z>eY<7gm(wGbyDTf4K9tm+v%ON4o{s$y% zSc~M45NFGhkRx(C`R$HGZjZBV2rhk#*h42rO=d%APjjL{;e9TwcddF*d$ zEzXohPFrgVP)@CFCAFq4D^>*B>WMS|mIG=Sk;8$bgag`M8wC1dNZ0BpgGaA|R2C&W z3;AU!09o$k65`7zB-TE;gv0>)C4g=!?$Cb@*f0RM=Pt^68^HA^lbF@P)~+OYt! zE!Gm+p#}j^%^;`o2q zL`O>lNtBi+TY7jT1zLDVdU#ZG8h9_L9Bne~3f&8uo)+4cKG}|r7cT-0HZ(#&8MM+t z88-4t(8>pupe5c{USm=j$#kn8aaIPM5>S~LboK8G>PAydl$=b5$_Mk7NuNdaIU006 zxI@rppf;!JBfda~kGleGChB46?IM~v*biQBLS^M-@u4IQN>mDEWzb0jWzzO8KX|uH zF0DZrAx))GDSJYV+KbJCU0n8Hym=c74p&Df(%pmStwJ5*bojDXW{_b!C*6$RJ4)J zU3TjeAX~AN!1{;iiFY7aN?>kBml~8RHb5b;J*t$^9CJjeKD96E_-Ux8+LA z$gus;JkN-W_g*Mt8|+8PE$GuC&se4)*4NFeNb~ zlxd1C7AhhLHi`vHAS5B!u0{|PTMQV$RnS*D(4Psiz6LY((Q!#XnKQT8k6b1L;E=VJ zAnX}L8!JDLVDULbi$T;8W#>_RD-tlUTS?qRAnzDSQDd-E6GPYO|gACZ@NJAx2S0s$8MDatMUHOghg9vGRxAjbU(KD=5wWRlATG})iz zqM1t~?CAj=a1tF{miozcB#2QABK;4ELT=@qpz?(bBJWSo?emX6dO+kbh^#-s0_7q{ zZtdaw350MmbcMn{L7c{|t$a@S1Tl_5le7xyj&x`czE;T~CNxu65^%pXTv45Uq3qeRYfacF<5M%x< z1HX*P67nGOe+&8MgRz7>OaW;OV&osMy@VhPyMLy)$*NfM@mE3{4SE6wk@{zAON}>D zqM%^H0{E=ipQTDOzP>(5N?vdt|XW~CKIlY0>itHM89Wg3?; zXn>XQ0pAcJ4DbU6TLb*iV6SE9v4E8Vmo_vRiuhzVJT#yuie^QWD5qpxnk)@jm-@yu z0IHHx)U?bXmr}IMU`GKRXb`fSJMW}rO4e~dZG|WohwW+5Yc_LXLJQH%-D7JS915A4 z2^KWz2J$@p8_@u(P)GT_V`(cu`7Y>0Q%>g>A8^!TX7eUhlR8&uOM^rikRT6hw0R=0 z=(K1>jRPLfGfeu3>E0}FmL(5JCl zdX?=$Q%p~$7^(#2HiKRRTl!R^)o-znAAK5P%*0sQ;R5*}<2e3JqrEjWdMLse=FLU9y!>j)nU{uP0W*jF5Vb&yLS zaE$OZqtn^<8-<)7p8b}+H=S&!op`>>o0_Tz&mOcnL)f_V>Hg*Vyn;1n+#?fp%6%S% z6+6EBF}5OYqvM5Lw=N7Q{&Bsjz$HC!QGrsE#uUTFCiByVdW)jM{h^R9{NVG6#B<1dE|Z5Kw9!T8FEGeGXu+P9zH?Rt^e;Oxx0lb@Jz)rkd-t%Y zFkV<@SY}2{7#NDeQlm$NiA+&pGET6;vK7{H0;RX-Sf#~A6G465_;&V$h~oNIB8sS1 zDj6RKO%0AM5sbg+)ZJHFqhJ)~%CIaG^pt@k2=IlI;hvP_3*K6Yw4{c{r7EVzD+}z>E0IcYp zPEXkULZ=+P;VsYMSS!)HtEf~kep?jz2||;C)CIN;a zq2AO#TR6iHG9WA%Q=u&Kn~)6uD1R)dkN)aifeY`Oiv6x|;jKZmMMrs9K&SkXD+n&& zNdgYUSWpS{>M9qfM&mkUz*&APNbv_glOW8+HO+uK@=Acb1&js^$a8?yf56|<&4ALB zCmB=+gx?SN6TltG1DzU0@6A%a5s+jNJ@kStIt_~6!$rKKeB{$13G&k;SdD!c>rMpKRfWHgZ@T=e;5YVNa`FgdNnyorq;je$$y_e zD`*3xN9ZpBz9h>4iK7$8h$50>8ps=Ics%3^0Or>;E_@xDOCvL+ne^?DkL%|z!i%&8 zQ4`At#juwk8l3-{dZu7KpicY8f)>X>&3>;_|9!ehu6*47&FQt&f|feq2>Uk-&>?i# z9{FKHeuz-dr7K5*?odBO?ce;@3w`$;bjSJMO!xoD{g049DO#*CnFLvAHbF_XYf;~# zkD3f+W_h7m79^!J84R8lsi~wIS=5&ir@&$|6bUj+Nv)d_gT*LxU@}uGe@h4fR@VHz7_M(}(Ho#%vG@Esw=Dc&dj-ke4aX~s-!TGrKHOo z7{t>hbx=e_S8Z@qCVW959y}@Yv`IEfRMv%U&DiABlvth#X@pYLbm{j%dFEtil&_%M zPO{8|J<`}XZct)8`pyeCppP3DzN^e5Om+p2FI5-PTsQ9to6p%5q7=S&t83R(tgWt=QUp3Pv5_Kn=eT+P3FyFIgY1dNH2e z;CJ)={c!7*{c=ydcAxht{LSJ6wKM9}m}5%99$mkcbV+ZB(X|}@#D{S80v+-*npC#8N-FFx*u@5#;tN@^LPkDFB!_GVZEf6% zWkBjnwAn|6p`-%3uBfQ2pg!Yex0Wxc_Z$$^#vpTps9H|{O*I$t~USeIGv!VDu68mG_iKczyo z55wzW|BafrU%&5o`+)P{xyxfxPb~Ml92+EDXj5-nzvje~9`n3|rZ{@6_1~HBy!)5d zOAE`5a|V>#&YEeoW9D9+sk^t5kA`rMo!|Od{p!YXb)&4Ud?xF6T{hhyl^3((;Qmi{ zb~T*q*CyU&=jZ_?j9QJoo4VW$)1OlxuIp37)it>_>Ftgcbsa|R+q><@k&`Q?jd9;y z!@K+5kzrlhc(}7w)u{7|L;GJ0`E>vOlAmijt6yEce_!hu!X|W8{TyRoB=HZH8=_e&M-piOrL&Lferw!b5w8KaR^XavV8h z$c1wAS=ZW~>pJ5EuiO4AgBb;m!{%=Pdgj8n_rYP;mNk~F^Y;7Ew6A~f`vzXq9nw4A z-+g^U^{(&2Ha8}fjj-8c$iA%4X1-M}o{<07F#ZO$p@fTX$aa$*Gb@|6T$?gfcWFhZ zgQk3&S>2ppcs{Re)#+p4UVhY%QPz#i2X?)vu#=aUA@TIlx&X@3I z-jB5TYcFvU$wK8EmEp5IErQlr_lfSBvr`#bvj_8>3|8- z0ra``ufJqy8(CE~q^v8{_O;#nc4tWYWxd;W9r-jgVBKydM?;qP-f?vrCN~{M9_2Ks zzji#dKxy-Fr%Q}hyxte4XpV`UlwTHUnzU)D_u{7s!_MDc6tq>%qHfdG%5EETR5x9j zJLF`fq2klwqn_{sJ9DfbuU82;yUl%9c*9{Ug{<`n?@lGZ>mF92-{iUXj$`bGlvum$ z)#Wi-mKS=>{&fGAvgW0*F{`}0Jl5P_t~+{vne(f!_q&B^xAPrjzC0)64yXGr?_mv% zjeTa0zdCm7*rK*qUA9aQe=@~?g5lc=>md(HdsuF?2|2RM@?r0pZ(d~EweTnbzD<9{6$o|5qHhKmqbjy*D3r$`~EJ0hj$EiHC1?BpEK0@Qpfvg z;aUScM{oN?+^ycgER48*KyO=3+lvGHKX$6ndfL&u+F-YPuE&Febs0H#G9H`WuJv4S zLJuKDUUdGW$WQ=_vZ zwpvfPGI()V?PzoJH;u`4<|P&-y&U`x-ks<^<*=&Hk&CPPSPSNSO!<_}4YAM-kDRm6 z#ouPawat@T-&*R|G&@B5%*us`5ieldB>*4WLl?XBqqaKb1`X|RtbV+vX=w_le9JAbB$#T01?=Tg3KB* z@bDP{kD`<_OBu(&T;mo4DxQ7g-xjT!eT`AO#>`sKdv4zOF&d=@ z<07mqTt3xh)F+SsvETKH+Q}ZZUX?4}C0>uI?O?ZRUU=Mu(!6P&0RtN}X62qY>~Hk0 zXYXl&=Qe*IdEZ6Zs>`BB&TUs+++jSr%<10K*c0x~**P8G>E^926^t)#I@Ou!+4ay= z?R_gN6*U$$CVWY-np57@wd=?b@0fO~i7BD;=RO$UbfDy&XSZA5dYr4VdzI2@i7otULUbMGj!>8Zzr{*YKM+iZG5=(>UF)z13W?; z`RQhcyRl4DXD9A3F>+&Dy?R8HFqg=)%6{&eqfvL`@1FMj8gUT zJl2eQ*sE*Yin{Q?=%PB~82foex39hX^j5!Oq1oNjtLB}186M+yf2i`}NiIsGmFktY zWVLIxKPqa+>l;Vgvi9G0JH|GDc`MHP#k>y{VRIXZ%N3qAL*C6>rP{x*_5xwMb3~UT zTNbTy^%!kpcl7-7<;!w%I(+Fnr``ImULA$+mwu`pxvT%Yd(X474PQKSSTM$*|If?Y zIwoX2+VthywCC!=XNf&FeIpxLJ~M9L&PtA%>0G~Lke`38aBzo;Y#o04oL6pYTU@`c z{cC0T!HUU?2B#15>+5l#_lZTLhN=nsj{H7m*}GV%U2TkV>)n269bhf|Vt0l)3-?h0_!)D(jd&?Bp;MtP=@>W95ulBAA zL!p7ZJ}ukr;K7Vl$RMhBp0DV=$BJ8NaQfM_ZfASH-@&rzliSw2pGrdif)~44L(AU} z&6>Bhy!t~_=!3u~UL`Z<+zGvXAt1eT>CfqLa~6irSC1<6Za*tMWLjv@J>X?1b4zRg%)IPKFWs9a+lt2&9WGgXwacI# z?Vps6>Ymf}b&oeMcbg|}k6X22qKAXRu-ZxU@&&y;_vPJ1~8Xq0eZ%8>$ zTpn)qyzM1RYk{g|uM=BmJEo~dJHEb9QP>(5Bl_PY!c|aU@Cx-`K-v>Y3nANt{#8i2 z#AGP^YMUrz3{X-RYXSJZDKBL70@?P2Da{eIS%iAR5H$q`jd9}Kbvv_jofUlaEpM1S zWSzGa#Oz$QXm20OUI)^n*hX)=FqNY9BbPobHqhmh@PKc_wcA7M%Pe%hFC{N0?6Fq0&gYEOkqUFB`-}aitHJyw0R41!f$a5CtDC;RXi< zaXo_kx;wf#@-01VY&|WV+}+)HB6JF}=+Gy2Ea5fshQR7bIx?r?x%b&ecW?nx$2wGBO?osyN%RzubX|_=|Ed%+Ydg|9t-yt&p&eb!N$$Q zI}g+<+Vo{XuimdOcTN9rCdT%A|9-P8^LPyXS6iEwpH_-tFxqfj%8ryq@!MD^8M2mi zw<-v#@bC6=W7RT;^WE!nqIY-ht@`0&`?7eI2`YCpRtN4Jx9e?i%%Cr~lQ>SCS@sU9 z1G!bplj8PmiJz_D`quVcUvJNI6Czc&ygDOH_<4E5PvcF)D?hY(t#f0-jra>EF3;Mq ze#X}2=^9&hyLMJxA5;~*$Z>AFKAppj+lAiy#BcM+JxpKQR<-YLWfSZHY?lNrs zweyD^-|pU9dk5`y zSsb@%WthP?h z_3c9f%A?Ds?VfI5|8n)Kuq(Ms$Ba8$`rTqJdDGQy#)duHkI!B6EW23fHaoNaSlFz! zJK9YcHiS2#lb7B8bS2O5@NZMPEMd59S1TKHEc7qI+it#pT?!b=jvTRi)xSam)sM{P znO5%<#uE*9uZKle_g@$vpX#~(^6XDL!lw8=-?{O7+EQMRD-+&L4jfTk@B6{e?Db94 z<*b!&r|y4L5%qrBmJjR8h^3p;_gU0_U!;)B>NEJY6h26Gc!3=@54``r#(n(K6So&H))W?d}bdP#r& z%8*FMAKu>jd99}$A8dWL>cxtMCo+mot6Y0xmaOKuVVP<5#C@N7t_{sT74iHp)sW>g zw)IbLU`9k*rFw7qp5f0hbYA+?w6)Gmt9OS!e}8lGVV3E)!gGzl2_6E>`;w3{6>+++(hPgKxIaCi}q_8Mk$`a)Q?0z1Vkdn|7n=X`-T44Z680;v!lk2V%@W&`3JNOox2sD%Ztu*nzMdB$+|>`5EnhvpeRu>Zm|0fVuqWWN`jn`5_DXgJ6TGh9 zXj}h%>qVm@BR_-%4hZL5@3ePQfMQP45gp@xK@;RP+p7v)6m< zd~Y&o*tL?S`WcBwH;&!4%Voqpt19tqb`xf^t0YHaPysWQBF=*~vcz=7MB6o8*988E zJ-l##;mn?%c3sYD|FmYkl$i!;XSpym5pYHO9~vS{n9uk;cp`TDuUT!}k<}(JE-f`P z5x(d+23u`trXA}vXKOTG=BsYAt+B+S%kAGn`54l}jO?`CQm<5_duf)>Lko^+QC%=^~0>aIn* zcm~gO=-s6m{l8VFJ_~EL)5Xs#HhYWG?0L>Sn;lM94yD_>UW-l2J(uN_yibew;84le zr22|7gAOmB4v+61n^3Y!)8PkEAfXRqqZvA0L0?(cFcrNOmt z7UQbHt>i+D_sJcDA7lq*nGW7_bJ@EY&PU%R+>ZOOa?rYub9R~!G&^Tn)2qC;%}x$S zC*0ZWPOrI+8$N#SGNrD%_2%G-y|;bSSURoEl*g~tM-&_?Xw$n*VAfRoL&kMcnN}7f z$ELVisAji%I&*8~(A(ZC1RB*ZW(v>V6? zHS@|ilcDa68KG@vj?`SX()>nz8*|gWj{O&=d~F{*a)gJDSLK^s8;?JkGR%L;`Ex#_ zb_@l2lW14$?>6_#0yHD+|5zf)i^+;^D(%-N+6GS`yO;$#b%^3za0; z!PYiPAV-tVQacQb!Lx=TMNNbN?K7ysg~?Rk%7ncEWgONCqyQcptVaO$GR2wbEe(l1 z4;gltQ9T`wCOB^277#siLaLAFr|o4%y^G=kPF?dWS^d85y~6u+&n1KBw{Oj#uxtDy zuZQCweBLWO%PVAQf>}isYxL~@Y>Q$uE1gwG*34SS=tmk#jB#LR)of;N`^A*HBBax# z7c**Vx!$+ZcRstY>)j&L<(!hfv5l%G8=l;oYD5-%kwL(;<`q063m%gN56FTV7I%1F z;^()^iyPxA746woeRe2vXDwcFO8w2g105%4MknQy1@r$0bOn0BfgSn8`OM0rhD`-+ zBaANI?AodBNvF=_fr=~ltWI~I?sBz5g{(q?$&6LVBzR}LPs|ScZuT-qXGnvV>YlWo zYubG*^*q>h(EaH<`Y46FdnSx~Hidlo*e`YX&+bLSHog}PoF6!Zyb*NJdeLEN=h>IL zx>&GBC+d<0Cc%F_*Xw2E`K5i(l1UrQI+?Q?U5!n9*!k<)fAG0<+qQ1RQ{Kw8CP&Tu zhNf;By1?+>w~oeh+r4sIzmZkm`Q(Fd0h@-b)G2&(WNyRP>zQp1KRPmhuGWoR)m#0q zvPw@yDu46{OEYXt-sQY^{MEn8eK{Hv^Be{rR`8y^OVy^;)6~SBep`yLHk-e_r5M&VA?Vg>k4Jk5)xVOK=q%lE zW$@Ft;fr_uV9sqdlO6tq=pB8e&4SWo?VH+z-ZyE#`L19Vxu8M&(PF2j@e3Z#(HkCi zvd7*n(;iu#+5S|KxE)n=qa?}j4R4e6(a>H;H#er73RrO5-ZTGueA}O&O%nTFS6*Mk zn|9E#`-y@_D&2-%R-N=Nwac57wZ$gGdp|a*z9g5_q_=WIe-vu6~ldBhC@IExj|sU1`z0N?jsWJBZAx@ zry$6UC~_G5S=27^4jR^V+H%kt1kiRp553(A`~^;SG| z?;{RHdE8hS3z_(etot_!t*_X#pl44o#WvXJl~9ZL$IUKh_rO<|YK8kI|SuB`8Fa0Rt^4Lo#4s z!YM;CU|{r=AsH|*63UPa7;sw|k^!SRW=IAMOcXsrGGM?3Wk?2$wwNIqFb2g8$$)|0 z(<+hyV@S-93>ZUWhGf}qxB?Tj@AV&g)9x~^gBKF@r+KdmyF74 zGzNNO{g8?N9i(m{!n%ugiqVcjo1*Q7s{VPBFGpViErl$peyl9iPlltv;NeU|T<|)A zLZ`R1jA8Oi6?A*4x;l(N)yf)b3~kvI$6_?Zmc5asuloosM*9k_tVtjDl6*PZ6SNev zq&A=~Z6KqvcH(2-Heht>+JG?>8@?&+6rux#7NdiNstpH7z8vijS_)ZG8&H=vkfAoz z8}vQQpkrq15-6EuOfZ|oh8~F74~GaXMu=f3H$@ACR=&Xgm@oNqR0S=CEU7KfL0ibE zd@1RVz&i~6j3rF;pCWY&(eXly(FsDEq7#Ja=Yy6)mQ+7DU_x=v^@`o7Sn=z5{5|60kHqiaA*Axo+sI;fuvN59UgHt2Wf^?saF>!71i zwen@{@OWM$;)$>KNIQk-M?#Cyy+SK*~%h#fzbwhGbxLW|J@LYtxog<{+v(o9qIux3ip&m^O! z-Y5BT^b^oh$dZ~0H)$#vYAR#Vgv3s3A#ADJSBU*$<73iDA^N${V)P54YQUqCFGr7n zmO_@)0Qg4($Z-0qZyOG7U<0C$*zhZ9rw~0Uv=}`lRBiaB zPvZU%^ zE7g+`tB3w3ZxZ|fK)`ufbk2vvIntZL3RJFaMr&f9yNoS^eC^}GLW|K5p-s_Hq42p~ zGL_BgbDQMLQ7dREWJ!&JV>F74%9gRuMGqjy8?H9l6W|D%w3RVwYdM%UZHr^e#-=W5 zrVtGmT8zp8cl4%7 z9Yn*)sBEvD7tfbb#+EgtY9U%(Xfaw-Xj8PdP}s7TWVD^tBwvnJ1ucavX*(EbwnIj? zozbS9&7^7}+C*qE+Ei#$w1rT#v$am!q$OmO_@aL5vt1B*Qcq_up949v^QTe+RTBHFGt@5Erl#;GZ+juLx$@Y&mml6$QpC3R4qiu2rWj( z3vG&y6RPTumV7zF1vJ#Nr0OvSR8K~%Ugjj%%JD}3Ia0R}oh7swoh`H}I!`G4I9D>- z(3z4iM`wVRLYA~43<4V>BW@^O3lKZSkE^6=A-Ym%F}hl4Q}jKds{RVem!r!;OCd|D z9(_*rWW?&l5B3w*CeeSJ)Gb7}3oS->3T=w+5USJoR>_y6AA*)bmQ+9bn)=Czr*YCx zlZ^hKN!>#9u+U<(L}*j=s8ICNBa+dE9+G@HdJwb}vZM{6)7cOiaYJ!GO*ZYkC{+v5 z^FoW!uZ1F33RU&bNxmFC3t9?UQuXL-swX2>pY+odqyNuRw-EhFC_zWYp;IHu^u5x`pTip~dJwLYtz03swF9l6*OOAG8#*r25g<)K5l@ zeqcoz=RtvP)C^h*SyKJzW9lcv(cj`Nhj}y&`WbVHLx+}Z zY&o5=WhbmTP*K5&!$8C_I}CMDPiz_^?IE@ZMQjn;6pa^(xqlHyM>()dbj}aoN~y4L-Bh;CPNLZ|t2W?Gz$xS;DMh zw7k%!2p8EXt1Z|HM7|t#gO);;)E100Z6Tw^mWuYFwdHKu@^#aByNTtoEh`vXW=cDS zXqM1ow4%_aXeFVQ-PtcQBwvoEgO);;)E3MM+CoNUkECCk1Vb5H91L}CjWM)^YaxbI z#&M3cQ;1d-T8vf`+7zuW6yvytWYnltBwvnZgO);;)F=!HjUpp9Djutv{yD$Kq~v^^ zVQl(>G*gJaD6|-TNoZ5Fj!-oPTe31%Yk`(Rmedr?PntqTYzp)%hEiMXP<^M?6tRUE zYNoMeJ!uE~H$sci213<_btPYp=7N?&medB!Iod#mV}s7!n*O-3)`)n%%rZ7?BJC8S zO@$Vt&4e~Zn+sK2HkLeK1SntxQndx`(H1fsTl(&gi)u|t`eQ|7%hu9PA=*Z0G1^wB z+OU=6%h8sgrI01H0rQ?VkWpiUp38PjE};#5tUVl)m5dGBOFM;V2cg*W5~}C$c9Jhg z^FT`>OKJn=J8dAN<{YkBPcEx9A|8{KjSagh|sx3Q9z8viYS_)ZG zTV|*&WH`3ym}L9oids{WF_~>_*+beXM0*M?MtccW8@?g=alp~dKMp=!ed$(N%Z&{D{f z+JJdY8^}-_>Rof)00X$`jEl6Q>^(?E<^$LC)r<|j(oP{dN@y_(g*HV;3&olqNv48p ziMHrS$(N%eKuaM@Y7{0qjUuD6w+5OxcC2pNIYX)zqSJ&Hqtk^pMP~^`J7-Ep+gT*} za&#(aDP&38!6aroWVr3XHg65n&J|L%5M3&?7+of`DY{%J+PO+IP0^K-(FQM(d^x%p zv=p+W4PwT!K{8B(@wvUGY4294S%`ipv>4qkv?;nxsA|7O^5y7e&{D{fYR6opb~0jj zlJQx~=zmD+7NQ4*7NduSHbqN>!k?c>rm_#m=K;x=qx(TiAxqj2CL9|gqq3hJA6_4< zZQ6NWsurSWg%+b1gf>Ob303vaNWL6B4O$9WQuUZiR8K~%9)4&H`vUX>H`+z}R-PF9 z!wA%^93aNTefmXX%j?okA$mh-G5V8GU~r+8Z_?G*BwvpH2wDnRQd=)V+0|Qpl1Tg^5d}$cT-KF^}40 zhwAPcixk^4zJA%*^dD)a5Pc*RdwfFGgbyWOj{Xf=3RzMUFt=#}8L6$K?J`a7w99oVKl}xPioJ8d>a2)P6KS9z|`4tInC_iOt zV`E7hk_=kL#*Z>20|vHelpz@~M#l`v#0~C{H29o0_=0I+OnkUxP=9R9kPH|L*av+4 zK{8+*8Z#twbWk}A4BoCMtsYKk1xv{c&BB5s$cinAskP`;wdgft5q1gGBgvpWT-GZ? zGI9M|6OZ21`hOv5s$dgcy6|nGO_g^*IcAe$Es_BPSKF#qGGI)J8Il15*OGdKWWc}$ zoiZd7Tk>>b$v@d# zfPpInWk?2$6=H^DzyNmEBP0`>Xg~^|(eTB@B1u!F1VU4QaG|s9bl9)Bm)K@j4~tx2C#-QBojAi&&AOwN_H z!Bw=uRZWA~Uq{1Dl{G;*6L8|H7Ri8tK&%YOfPrYJ49S3jP^1jWfPr;e8Itk5vA`nt zG<)9qj4dIeMzJjjHvkz_+OX((-Yx~t`!D`4Lg9fDo_h&#WO3H8qmRVG(Q_^zoZmxd5N?R0PQ!Wb3p)r|tGTD(d-FR=m1A+FvBsxK$Dur}2luq*SC2<_RJ-FjEf5C|;R!>4Qq_qb-u=5?aDkoER3S|oxBJF|`?2DP>I*L87 z;aDxoVU=(5*i(^o6swCsM$Des+S*eLV8m%C!U*PJL<@){9mUG&kW|h)>!_GmF{kcTumaZN^TWZIz3d9pvcf98|d&JZ*ARAA)S7rUJ+%tamAr<)HX7&{>zh z+*um2(vZ%!r6aIzj;&q}=1b`9&0&SH6X!)~Eexd>^m58ouD~IVNDa{GSiKUm5!I`Z zb`9wqQu!V;gF6RTu103oy1|HPZ4u9|pkr{f6>0B!NIMakaqiCe-C8)kf{=o)!9g$S z(lV^_gR-dyP1iz`Id5>P>RH4|QMrzS8Vj*Dn+akpydI1Z)fFjp#bp{T2)qhsd8prfODH;%UE1|f|G z`yQ}gE-d#lS|cZ(MVxmFegs+dUL>)M-f24veoWa z3Z~wS>H|_YJt(w**x5{#>O+#H{+T%Qq@9O_#RHED7W@o_XiG6lQ_jHZ5;;T}QsJn}w)O z*Y&)LA<`l2C@=Uq>Kv6li`hoy7t&?S4t{xb*N9-^Qe7})q39S9Oc3T)@ttA07n~m(6a;bi0~vv!6|Slj_aQ& zX77x~;KeQ^AqzDzo6G^nY*rpX%(m51F+0P)5S@USo#yrtvv-6MCT26+SIkayWMg)X zAlv9bV)oZyg%g-f%;r3(joCCH2r0`GvpK67vv(tvM|>HxG2`QyO#x#zsS~qVFNxVQ znGpv$5w&|w%+6Xk8v~#R7z=a6Y_+gG+MUYPLd5J1Xrabz3K+9VotP~ax-na)Y}!`x zOw49BiP?$anCiPikSAt;1IL+|ExLXPXY<5tb+9Yi1NDuAh}j#`L5S&9LZ*3QHq8w}rsF>Qs_D%Vj@ga6&ctkLurWJ52yDZ|Y-W>~Ew0FEn2On!T^q9t zfyQjy^Gn5S{ygI+h`q0aB8(<6dl6!3H_AT%&BpBaz$>I<_B@!EirJVP-Ubr0_k^ge zG;`Y^+#9(d+z09KAlw(Ex;_Byi0ZE}*j>fWV&zF>hIAIV{n<9_i*h}~+CgiyABp_( zptBJ0$<-Mz?-zvR4hecmmX_CwaWtzy2?n)oa7*=BkU=jmkIS&umYJoN>g6cEgi8WI zAJHvJJDMubfv?cVvYRWsJy@97la2Qh3^M}RM9)j@SU~c`@tmgiwF9?vGJW;_)g;Z&MLWl7u}*X<-29) z^Zfv{m-78zm={IbCVe>(2gjR0=nvDnv;PzC4T*kw>&VRBP;*6u?5CNN%?6Rf`!sinz6Hn8 zqeqa0EYu)QGE<0CZ0mq+sa>Kp_dN6hcZpazAL5kyL+CLs%Wbt3;>@rO_)Bw5KT%V> zOLQoVFo=`cz7S`kBa1j|1ldLhf;f+a6~<1SRq-wn=cGZL(is$KSIE7ZT!@qBCJ|>Z zsr-P6h;tLd9o;3OfQXaSL7c3YAWk{4aH8vJ#vU+;Gi%{&jB?6CoUqHYl(Xp}IfnX)IHjG3 zg~bDbIDd^o6e1slno6xDa)>gd&LfE$$C3-cBrtZ4vp!fee}lu)yF{Wg&kz%FHW=b( z03w30e?zRsW(Rt6%$VwLVW{pBHR?KpIH|!R&h(kVHVooqHbI=?iYydBoG-C8*(I{< zmdfwIo$keZM2{J~xe{W2r(h;c-bU>I39{eEEQKh+o7-X;>qhxd&^ZpDfa_lH9>f39 z$U{cVH6O+mDlbcug1P?L6620zA;RQ31;pTv#b|R)w6_HRKZ2ehJRZUrT3Fl>geN%s zcM+8pj|3s2b#nZ)Cd)s`;cxEnPj>iwCwwP1$Bp+7*PIHqSeh1*gew4r0_YRsWa>SWBJGeJoAVh-I1LOK?6elPdQ7J}nKB(~n%a}19D1Q6*mRPO^K z(F+F#wf3yi9J`WYA0TWFn%+xm?Kw|4;twVU@4VeA9Qu>0syE~$u>Q|M*J&^g!+knQ z$U+V1B6Gl?ixf3ll-t*`&S4AtmVA!h$Xe2)ale(8YQQ=;B#F6ERcQ02*LG zSJuMW7y#{mW8w8+EaTRkTG$?)1GUCNfUYeq=%Rq2i_`&KVxbGVbjqe}CC`8^W)skr z7>=oaCIopv*SR>(fG*MXL->{lbg6?~5w1I82LZaavY?9sf-X`Abcus5=%S%P$TSb= zqPaoHG!43xud|5r&IMg6(~e|2F6a`UEntb!jIH889gAiZbfpJ{RSf8&8Rpg;^%HbS zI}gi5;(;;fIt%$A)KqFI=u(E%c|_{eG1EED`e4nh1zn;i&kz%IH5lS&JjVY14Y3-V z9q7%|psP{W8PG)y7IdWtfo&Mj#cTq)#1&a6QlQJS4d{w7*Af7#ecg|6-Dmh1wk($}FtW`*PHoh9fu^QgDQ|ntPr^uEU?)1V0lP+! zZFC?38xS~NgfSoET@ucN+JH?1f{?O20h_a$0sBf)c?Ajs_SQCFQ^0^t>I7`oO9Hk` zW&~`V+BCof?5u?vupJ9?1Z=giJ-P~NjfDu<+t`3j0RuLv6R^cXH(=|OP1{PI3E0dg z0Xs1qQ~h!X@&xSf;W!hpMOU8HoX^szgI&?psBauZz~0sdYzi2#Nu7W#4!QxGh6W+i zJOP{L1|idQz*fGF5$By7uvJFyv>i8Ki_iBVD5iHwY?TH9J3T0@VgfeJFaewT8L*|D zhb8#(z&K!EfqW2ZDz!9VD?{pNz?STNHD)@;Sz)7qEqd|{F#~pkA=ZH1zads*vjd$8 z*p0f*1Zvid4Y1?0A>NOZG`VeGNp2**AdH zeU|1r2cni;OJcT6X2fir+BCq#?5u?v zvmFa@z_Ko~)x!4ZcBnNLB4*FCF`EL$Y*Hs?i-m5?)+w8|l{^!(nN4DLVmPKc7UoyVo<_00tbj()1 zjuGdb8?#lW9m#gwm@Pircn8!Yw+w8R1~EH5D6C>)Hq9_GoBA2Er5%mgJTQ*gw;~^e zno6xD64sR=bu?zzG1EED`p_t5i=I3~%$VI^h@bIzk=?%`R%5dRor&3vy3WLGYOojC z=|Nx{CT266#B6az7K&8Nw(QS6W?u{QQZXBo!`n!%v+sgPpC`Eoxgh)zQan#`FGzJm zT>Olv{vNYLo~8K%GJKZi6;Sgm4Qu0hk{^@E+Yb3W$@Vxe`78~&c%Fo0X?dOaSsGS> zl0QNTo~3yWq|UQ6qFa>Wd6L(0oZcX^?B>cF;4bS~n!C|nq4Fml$!BR=yq6N+e*zJF z-#-X3jp6(Kl0G2mgOWZZDSC^2@-vVsdTkkfLapeNB_#4%MfS-KrccO4pO83x!YaA? zM0AVNRG(OOs!zV-wO($YFS_;z$@4`xf89RO=ZoMO0u+`2Ganv9E(m{)6u$ogq`L7k zeP?a>{y2%e(UHFIXnZFZzLPk4lwc-2IB=ROn`uNyBw?C##neBR-on|*TXw-5p%;H*QBvM@8u-d?24VtT!q$hKlk zPn|)?R$|U{Ao(DC!Qo()0_R0=+*^m#+}yLK#r@6v-FB(!GdT`xLY}9q=AwG))}h`b zq=n9nzU0?+wA1-@9gA|9{dJvMF30>aaU^rhC)zdq9oj^nzf2OcP;&)BX6gz=x}^i% zl6tl(%{>nt#%HToIo}nC)E@$^e74F~OI?9v*yds&%{9YDP4Tl;*wl}&K$z|83MA2y zy#lEbWE&mG6$oY^P^EZ`vnt*-eUOwC+r!d$7$g`&QGfk$(LkZJk~MEM-VAmqGruRv6$ z9m#gwD-iMdKKPv8HMCV4T!Ewqg;mTIh@4G8N|-g&&npmV=V4*-KwN?R8HEVQ5e922 zwSa?AOBqrJ(cGwUEV%$oK3nA+XMF&4Ge0``3vy=X*!%)dROT6CUV$_iVu)}B(!U{A zW3vPOH4Jq1uP{`ft!mVD<_d%w>=j6Q5ZH#f0%10}0ufhap}-Z$TWn39t+MQv%HP2K z+@7s^7RD7SZ%dQ%Y}K7uA%Uo{9K8V%MjTxdpJ2&+{p>_<|Z#XBtglh9>wz(F7(`3QbT?bNUDSvZnhCOUJ>xJZR!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>k7#w>j#n*zcHQU^A$UIH8BjKX=U=NAnyupw)q!Uo5}>v2LX=?22uw$h=VR{prJv?G!JZ`xk1P@4I7lNW5jvq!UmOTN3tCk zHi*wQWi2L0r&jFp|@P{IQ6nG2qe>CO#O!l8(U7>=LU-$0xcl(MPK7a_b>m!i5 z_ZmNhFvblv&j&4q5G%mPBq0m6_Zlg)xIv!}qRtpM{9cg6f536~99XNt@AgH(DRAji z`Q1KVhd?iUl8}X(kWJ=*LpCc9AY|KWsgRvvo9LP5_7SrGiw-sS8ky}YWG6bZA-hJ9 zZFC?Z8*e;|mtoA;_)4Gipf+UFfFPtSPsrx1X2@=0E%{UmL-sdp$fkfHo74%}te1pr znao&mb!yW96SA`w&c-a%Sz|2B5wg|7_6YBJi!DUR-ou7$3K+6UoscaSx*=PqY}!`x zOvq+73E7F^nCf_6R<4lUjN?qm7F~JPbB1hnuq$doeKQ0I*?ZcMO#wqTsS~orK{sU6 zP<+S{X`YZxbMeVWr0I~Ye4Ry{cW%g5nRX=GaYMHFd>;lleWh=!Gzi)0L17gWvgK@g zNM;T7Gh|CU8nSs{9J28?K)9o+)Y6cx45{--qQAu@pHmyW~BIF5OhF_4)B7++W!hpA|(8-x8H{h@|{#6YjONgYdIYxW@(r zsP`QKpya+IoQm%|QWNgA;AN0FN86C{UdvwSao%?%7x!97mXn*z?zJHN^1dTh zlzR6aMYkx$y%yjLgMuu(xq>hh-*;T(wVr41v0Zd!a*vHx75HXO#V$?W&(RN?Nk8Bf ze(Z-G@hWfR@bXtl%Sh1!BS5M+4n2ScTzdeMM|uFWJnjMNKo5*0k#9z^2lh5SKrVWK zWN8_AN#6#>D(C@BGxh+cQN11z-J%pdfJkF{z_Oe9nos(r?=d*ZYdypE!TA>_eb9*( z3l*#jF@D2BVftVcM0&3c@6kjb@GDjDejG>@x9OMRJ!`}J@g(xKDtf<<@t$0GPvUsb zD!IHD-J&$*y=5Ekm+=mV(P%H_`>a;agJ%fLcmXJ}>ogF9U4I3oZ>3q!5Ul`Kun4`Ziq{A^se_=>h zW6tjdvM&#g3)yK;<`;(IYQHx2@HOT1Z9;ts1HF(RY!3*A@WaaF2 zOB>&rxdPU#D*cb&5i0eEKr8Q1+G?rmmJHimLZrE-@2DxhLs@|l=DLMhy>1zVcZ3eo zcZ3dh8U%R1m{wgt2k?&2M0qU8Hfs1Fm$2TYNS1@*%RrNNgbvEQBXkz5Fm^iEEj$^_ zb>cMQQ+E7frjbgiiC0(4n0}E8jy=UKV;a+tPQ0azzU|hD3NHFc##ANIQoFm3^@w zo2^C)y09pdI@c|%hu4l?3r)IQ@P~-Hc(4b|bxYR5*>X4!FcxANinkg&Iy>|op?q2B zjcOs^5vmpri)OQyS~x7=w+-U0Mhd!y1-+!sb&FUyOy3dO9(1&uDa)nJ+RABcu3MN* zu3HkrG1XUuAkS7K-liO1w}`GRs4aJv^&O#nS?C?=Ag^20!Qs&y)Helks~xz{Z!({rEgxYsS>v&H;!KH!4DR&lNt>;-{tHKqrJRm^pZoK1S&LjAmMk#+z_ zFzBeBRA?gbKN2{dqn(>(DWd%4RhVXEU#Ne@)xA3T-!E1Q4Iq}*WAO^2JjfM_|9RbdbHL+mgZS4@&;x#9t z#zOb~46@#~;`EAzSjgfxMCi-MzW}vZJibU0vQT?>ld>$BS`)k&@+g?1eKAKt&|2WQ zAc%T0Z=w?W`UQeU4C)gEv2_QQ#BZWX{C8vtWT6j)EaD48_Wu~Nd;P|EE%>z4{2^6kY#NcVIT{$eLhWV!fXOr62mdo=R%MNvTT6k z%vP)D$`j8BS=7Pd(T1pR90X)J$U+th2w6xS$RZB9kcEcgBN0gRKo**duSFnDLl))h z7;)aYkVR$Mk!;6>EaI~b_c3I#RT@B+^q{bcfh;t`+#RKULKbO9Aqx+TA%xjj_5}DCeSQi z`6n?(8n3Jd+fsPtLmab(>@RHu5%9`pAO^2ojE2?$UU{6Dg}TB`AdFGR#|+v>A;RJn z@0&XOL4#v{LmXpXguW$eV$s-&BxIo$s!(R33Y%3!Vqn4s)r6R%P-Sz}bD;|LH22KL z(a9U3`VUpUOz%#F*Rmgg_cy&Pt+Qj|t(vzJdujoS(=^_k~+wP^?;$Sl@XT{49G)IHyU7&N7lmG$pkSLI>@8m2UXO<_Go*k zH5TF~Z`C3X3V4&3)IlC%p?i~8r)=6*@(l7|HbEYV;h5@Qfglg^*a62G5bJd&t!EQ!r@jkRUs278k?JqT>WAP;7fo4n$REEKrOJDjb_bj%1MhMC9}PKVd{-vdtU_gkw#mJca6TQQhqchtmk z@(q%Zh1wsVQI^FdG%!XWib-f%%%KTtRLoJ7@^u{Jq7-Uw?)f5){`66bSa=G~F5nhL zDYWo^ic_#a2t9lnmPdhBUVil(HL)FeruDzEDb{ zBa2dM1ldLhf>QQ^6*?DZ?ht6kn2j^PR2hj=G}2?(d=N5U83pcw(MYOekmz7l$Fe*Q zNzYd>Y?bjWPC#PR;lzzG5a)U23d}u6q)PCm4#@IgATATcK>L#R?u3*WsK;U;3W$M7 z9Sp>J2?mlA8W>1VZ#rl&P}V}lK-vRhVGazW7Pd$GL9MY67-)gTKok%IkvbSiEOarD zo)BqU$uk&;*#rY6hT}xq8v?|?$FS@+{HWaiIL=@o(Um7aa`#0Y?1~ORed8c7(4iIs zQ9ukt>R=#o(8WMB6rbWiY9>TO3`BE-kZBqNDc{ag7XztGJCg0V7)X4!_#p-twu*y1 zEV$4cM(IIe6@!6jhS`0geqtbLM==l&j4{wY$m0tnl1eSbK+2Fhj|c{;W2SSQ^}(8H zFc9Z}xnU%F@(eLCP=g^>4Aj3NR%5dRoxwnjy3SxAYOok6JqT>WU?64_3?#0|LXpBi zmR*B^-ZvQNYZ(l5B&H`Z(CVf1{>w{P;)sDh2F+rijeu{qOYgsM%}QY)yZ`b{h_I|y zLF(?m90XwuTipGZgB`xbK<306ghe>6RD*STP!r3>0+Nu0+Wi;GvRH?P#5hK=4o!$T zifrbC<02dC$^5MTQ`>(LdronY4ej}#BAY{D0DAT?l8}X(J3nL&7}>D$0FaHXmO?fe zwgDMwu9;5m{>vdS!XO)F`$9H}jx4gN5o8-32(mdGRyY8|d>oH6u@-yKfFPtS5BA{c zN$hbXY43qZi9HUp*nR?yY zi~7bvV2^KE>_Gvs2dRTS#6cH(&`^8`25BDbL38nm4y0-9p?n=9&N~--s7yPO?YP)O ze712r#vZmx1MHC=6jm|VgJu})LH)!Y(vD&e9vEYfBap{;OeB?BianGebrgHlG1EED z`cQ*C9<|s*^yC?0Vvhzxtk|P}L#)PT2Reg28g-q)9@Jp5M|u$0hQS`pCfGw6U)PiBq0m6KboV=VhpO+2GfY*I2`373f5}wxgAG;g1wTT)0Yzg9pXDWWSG_k zQJ7~-95nS=-?}*oexbuoCJ9-nxphP4fT05`4*)vYYANWDVVfwP=Jo*{j)xHjIxyQ8 zbVzh$p+k)z+vq@`!zr+$7CLas)j|gv5QLQFfet*o2pvu(?L8VPp~DdtI#599Kc14&O#T2sM>j3LTUobrd?(G1EED`p^hEh@Lz{Oz6;Hh!r~YZ-~{{ z>_BIrL!+)U(198(bVv^Z+c409*#tU>E3#0epo3*6&>^{Zv&igQybJ2yySWANoBI|A zW$xW{A@+0MVs+5$zC{GyBK#i>Ib^(d!$m8F9o9|m-JAgtu){eZ20Q!_xZxzU+l4ka zg&usP1;SeF5QJwt{QljeIUhB#ZY(AVS*YE&pe&0iXh@7H^o|Toh&j4%aV|J6%AlU+ zo_9VIlp*$xC1# zQgiD?^;4Dy!|*I8hPjxu_e`Y3FrmdT6cEFZIv9ra5)32fDKLzlwKTwBn5>10VH^u{ zU>LQqJ-P&HjfKE4*kO!+t3v@X45@=*#6lOt=n0Xwl{|xCm`yNDVmMBu??RC0*2|?h z&R`hPl_$Uv!>EH@(PgM_90Z1mEQX3lrFyf$#VQ6R&GR=cwXl@WPO=B44>lksC zx)?@f+L3I>#W3QtjsG!*u~iyinDn5qioq~6!(bTdCx(%B6vObq7{gqIJU;Ctsnk*o zqYSC@h}?RqW2SSQ^`QpCIJaIzPo5zrhG{UwiedUU#AoJStwE%#q$ZuYHpp7IbdYM$^$?qwpt3AWY`8Iq`7?{ldEBb zK_<-hg-jA1S!7Zp$Tm6>%e2u!EjOG{9hotc8jl91C+`2eq(0`T^7$3xOSu zvDkqEVh2(OJBWoYcF-xCwv{}C9hgn9Lt;3l`u8Eov;T23jx*Rnbma*w#186US9A;N z8wY_MjNc2K^K5$BzY9aN?r$#z`qAU@l; z8)FAsr2%$G4+^Uo>_9UNcA$P@2WdyK0}qU`!;Q$}6H}5(EyWJXkUEbDcBo^fbDZ^| z20J*nPDD?hAtrWcFvN--`ZvUCY<8eC*r8F^8SFp}7CWQ|fo&M%ko2rfE{iFG1%d3;Fmer|9AlZ|Al)e4KacdwmJ`KV8M!i zS);$_y$iarNZd^lvQP^kD6;@UUygD+cxeD}2RJT(V6Eo#yNUb%NX7`@kJJs62bcY3 z5t_!I>57Rb;iUN=|4jED*n=Ma5lP5G4dNiP4&qq$n?+bTi#T$;S;SULA&v~&1phSG zOe^1Rv0@S#KAdQ zi#TWizN$sL9mG-Z%_2M}`7_=7NPBNZ%Ae^TXAuVl{FyGPgE&|(`I)YqXh0l#+R*@m zIIQUeqMt&ou@FDgJ>DV?3ivZ!QU`H}h3?OEb;_n~CC?xZW)sAb z7>=p_V+isfj{9+(K^&qh8;X_*qXMM1UV-T7!bHF?(Dtht^ zF%d_DAy&lEzads*vjd&^nQo)5Gl+v4?9X)5gTOWn;$W7DL*6VRuE;`>`kAg}$8Q#i ze=GBV*{fJSvsdv3Vm|jOuFC9H@IDClDh>qA?p53d-UIkQ8gj^ZzlBRy>UX;TfL!qg zqAT&n&p-^`I1e_gj&>i${||vTg79GoL5>XDME^9m56JN-j4+Uc*}fo0q9Y4AY6RIv z2Ld^sfEBfngEO-ha?k*L+KzVTfE+w62|1o5?R^L-A;*apa!^3XLFzyb)=MCVoN#~~ zdiv1-139u5D&%l1%mF#n!eP-8Xoi6t)KADE?L3S% zQjL!x$FCp`LQSQXLJnm}okyfj9W$NdtPhPKhv>;O#Dp9ThFBp-|AttN%?@-1ay05X z139R{LXPwxunhw_m`xyuxFQQh3UXL>3^|f#JRUZf1K$)#-5>cg;yy9QH5tsY1uz3K zM-?=SIruH5hwnA?n`i1^S;C@q`l7}<$VdvmiYan6!5+TsS~nU58&fk zSq5b?BV_B;rU52oXD!r_?O5o9?0T=%Pz&3mSE1Hei2D)?ZOEp8_a#W3kS!Lv_a$`7 zrfnt9gluM$kewKgss4Ki@`UU^;y4qsMOSt`ulGs~b+9XX4fTzKxG(W-8?q_jeF;)0 zWQ&9DeF++huNoq)3E3ST9en?2hx7hXnj3^n)AuEmuVch{=Z0*RX-BdhH)M;?Hr&M_ z+g521veSdYDkfyp3=^`cpCMb?(U8pp_EFAyR2(-y{*9U{c+KZDeb*?)qtZp{8GgjfRJA_-ZjjoFlCV>WfB zWA>ZixG|fxntPsXP99t6*`eUg$2%!Vf>0EEYBBq7XbfJwO%k$D6SK)2aLi`q0mN)u zEfupfY!g1y+&*IVUtolZ+06D8vlAWJm|Y{tHad`){dZVV8?!kNDmBj`(g1u}lXmBb z*__pk+5aHzeFG_D_Ng{zQ^1%_>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~+tmQPEn6n0F>Qb%KU9W$NdtPhQ1w&=+-#EjVuhFD{E|AttN%?@-XW;g0O z6SJwo#_aSUuniNlnN4E0xFQQhDrQ^u=N_}UXw`|?&9EFXdk{$7nB59t-IzTDLM#D8 zNkSHCV>V^km`$DOnB4}B8?#xfxo6|{I@j5v;8Tm)?Pv^M3?m6ysEOHR4mf7B@&IDC zt+rm^&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!7E~HfB@6m`&=$Y_ZUd**ay@wvuOJHnU00P7KFX?}Q*v%pQT`Ow1Nt zc@}iWY;~|J8j1SGLB#BHY|N&BF`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+za1I?q`pJ2;Y&d2H_aw@Euu6$4NR~(g~7IlynkO zd}VerNEPo(!dGS|V(-7J*jcPhLS_g)5IY%k))#{j7*p!TS7xV>^o~Z#ugso{vzA{O zCKt~Dkt{859e-n&RiLCBO7M-{sUU-1UcNM9rPh|2rIzaDnDH-lHSq&zqFa>WE3?yZ zoZf)2?B>dH;7-RwgyZlWpm&MadX4?Y?oGER-`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@VIADnOcfL!ze$W~S4=lU6vJ$w-JgD0T zw5w2AS&tpNvVM14`(QRi=mUIrdk%6zxT>V9NxC{x^u!tm!Bt8-P@|U8eV}4evK3>0K8oy$24E)qq@hPvUsbD!IHD-J&$* zy=AAy{}``zpf2Q~+(;{09489*KAfh|aS zH%7`Hzy*Nx0J-P^5~l}PC07rKZc&=*0n5%i{K19$wlghUQFLBQ(I;@cpYKz1tzB?-v>0$%XGEP9$U%_`Ym3Ai6~Oc?dM$)@8QuY9TTqbj$T=W2m(*vxM zs|Q54C{6W%W#`2Lw9DxOo%`AcyF;YozXx)7r8`o1zZXb#hh=)t+VFmFlHPA1rT6%W zoOn+zyeDzIXO&#ui*8Yx^4_xZjX$lb@1k3jrhK>Te7@7Fl<#~GKX4qd{}B*jKerde z?B~{g2k|HfKN3-p3<=-Aq%y?yQ0i)0_(4= zXh^&X%m&qjnDcx2-BpBR+-+g%$$SS{hy2N>zZo-oadl)ZLXxb@plkeIp4;#)E@$^Gq+Mhv>Fh# z-I%u8gl+bS(_CW-HC1s9(Y9O=9t|VR#x%2iZA>RRvK!Mif^4G$*_b{7Rv0^-jcLwA zvoS55L6LSv5K>mn@cl@FX=am+>BMkM^%Eh;voXC8$C-_3(UoV{k{i?NU{~~Q)He=dWBMvOcxS+$pHje$ zX;NonS{!sYrfDeNXpGd%75spu{&x^*E?&KhG`%scd=4VsE{@dQm{yr~B-?Q}rp0Hw zsT*%h+bRtv8 zNQ^WTd(ecKquAq2a9r#`J(+I+NhJ6*u!q=_!XC8ee~LZMg#qZ<^GHG#YHo^?IbiI; z$^*b2w%U3w_Q>(!@u!o**G{9hwtc8j_91C+`54Es8 zx)5rOg}@%ySnNRou?MMxJ;Xv6d+3x++e)6n9?T}#BQYFPeK7=iu*Y|CoWUNVD^Fk| z_D~1AqKi=9I0)=L$5|g5VGq%hXNZYC8Vs>wkNyp@8k-&H4EAW$bq0G-gT)@{L0}sOdoY_|4{=2n ziWK&+?9Ur}aLr0#4}ODL_dPC#2-xEa5Q9BxzrlPdgneO;%N)MN9zl4y!`}ki0r~es zzK5DvPOc^iS*ZO6Gi6y!LIYz2qL_rH#T=TTM#UUODOchc7o|{hbI$=dI{B{9r-o9* z!W2rOh5u8Oat#bXUtdcSvQYCO05S)RQdoHaD8*Jwp_B~U0ERTT50r8hj4&vL*}hOp zq9cn^Y6RIv2ZBH%f{kLqVI1o%cO0F zI`bVw&huIfr1~kVVv}N7FZ1OxK@9YL(%wsu5(8alF%SjBK%@=^V!Z?d$q5Y%q^CCx zFc>Inp<*D%!WI`A zWw%K4U?7?sgiO;INclQOoTV-XQkixn+i@|F_-ye*jDc*G1{f$kD6C>I5X~?ci28|v zq#eaTJTS&UHy|H`no2FjK+2Fhih=5w=^ST$sKG#-17`n4^yC?0VxR^?tQe?&L#)PT z2Reg+8g-q)K-6F{Pk6P{VsXcc3PghdW6^7HS{#r_5p+MKEkIjaP01$HgnG zmH7?;mb+55U%M*2U6Z<_qxWy5b-^pi7m7qTJ^ie2-P{Gg&|!Czge=r-pO86VV8Y4+ z04BEDdhYf~hHWrHn%f63xgACrV8U!)z$DR;1tv9uY@-7KCilP!W2XZhIOS@g0}a5d zuW5G<=)kj!(Ba3Vy|*AGbojo74ipeNkUG$T^%CeH=MA8Po<%gkK!>b_3LP8^F>RN1 z>qaeXkA4ER#zH`c8!dF8fY5=|fevD!3mtUIrfnt9KnG?M=#UtWss1Af@@${nhvN)% z5M6oV3Za8K*cJU0^^Jpo4mVloKmnlxsRJFvK^HpEP`tGkX&&f6bAym+8agOn$B6UJ zg$^pyj$}J7bP%6y*o~ostgHThcrO-hc zQb(af9W$NdtPeHN!TAn==*ct0gbodcSfNAzhFFcw4s-@OH0nA79jL)Vhx8z@4FesR zO`wCgA`3+dI#_lB9g=%D*x-K@b0c}M!y~AP_2E&HkcHZNG?ZEFpq~JE7`zxe=o2F}A?E1r$IrlV(FFB0 zr#}kNe>AZ$izf8>5NX{-6L?oKn&W$U#Z*DVdX67==)OuQa^rP#8yjzjttwx|1`G`(6IzY7|_A2f{yg301_RD zys1wC)CjVTnhGHKKLzj$SWyc)I5TTO2MxgcuW7dfI_iB2fTtzj%lk{x-UpEKy}UoL zpo0RwmzUH59juqUmsd_WfDS$VXn+A7Sqo>&?Q6$E3}OsA>U|18EgTm83TlmocrWkG z7IaX+_wtfDphGNl-^;60Hf<|;26Ql+fR4m)O!dbh$OAf_#Bm06h^}lzs`n`Xb#Qp} z6zUrX@m}6rEa;$s@8u2Q}FD@}>uYZ5YtOEJ25S3P4X0;sUsuQy7y_c7>n)?L5C+)?ImVJU-ZOEp8`vjy;$Y#A{pFk!vP7$5j zG{A)Htc4n~9Sfb1UGEW3wXi+<1JoJ|u}^TD4cQcMpMcZ}*uWHXzD z?8IIvMJy`0jU$R#X)zUfQI6| zwMc71b|3HMrMW@KG`&xtd>tdsJ2zyjOgob8xFK77w&5-g*|ti9kewbBRxu%)W|)vo z{S4XCj)rU=7>Deakq<&mrIv%ixj|~#yU}E)7cD1d>+ebDNzDEuMEGsZ zjzRc3azXfpq<=z+U)a0}Qr#KXj3cUFM!=Wfmd{0ozb#)E)cm%bI`9jdKa=#nhLpds zxdUe>-!VWgu4hP=mUoJOTh1y_vObjHx8)mv)cI|>=oY2;h0TUIPVtXrH&-?S7x+hi zS6KJA<+Q6%*;tQ_-!Y(l@E3@*58gr!@8y;BZKUXfzk^hFS!N$l2m0V0lHR`}WgpyW z`hZ;Y0g2NGtdgq_M7JnS^?_yQ?E~87^nw1qUi;u(h|mZ4ef|F-hc}x_`ktikBSlaA z3#9tBW%dL$p(j2d>HP;%_QYMLC&)!lkT^ZTD!F<>bc@ndPgu6;iDmr0o>n>ipuexw ze)u;;`dhRAAcwbBB8Bh&1*z`3Oy5}>zAq)|{SYaAzuWjuE_^3(d}ozhzKd>An)2PU zQ@+>zZ8@!SeAl&LJ6Q`phDgr?zd+vuNef8P14WSP*QEzG!AT@*!KTP?E!YgytOeA8 z9%y3KUaVQt1NWF7AQwGAvb2nuG&U$>>1P!v*#b(i7HkPpXDtxjq7*%_6^_%jz_Obw zTZ6mowSaaND%yoN!r^t2C35b5~0AQyzKNa1}ONOiYmde7SMeh^7-Gg6NKkBs-^ z!g~_OdsfNiz33LDDeo=Yc)yI_SJSG*_x0v&ww|vc#T$%1IDFL=S6*?>%5!F~g@V`Q z9fmWfw%oU@1K`?9N@_GkW_u#?!LwNIdoOtD+RtBmM{W;zU4QP9zh&9$j-*`77!tIFzH%A#muISq zZ8-A}be`8;@>Uso%;-hlEb;DQIey))ea7GBtvHVUzSPOq&qUpy3TLSI&vC=co!*GC zyMn*`SlaLojv4AL8N+rbkC+F|Ex|tHhkDxvgE4S7l?S(WdPk4kb!?~i*Ac9>Lf2E1 zOWw!hm>%cT&P}D=5t2SPhP`pwC?3C^q=O`#D(Tut+q@UXZ8E0QyJg&Tq*sn3=NNE? zdKbX9lJ|<}oZfW_`0W#(o7(36bqv!NN3!1@EzsugOIzoSVt#+|@sKHlr+o>ug7+6w zs*3F8i9E8?J4|GIO1(}m6j>-oc6q0XYw0TRX&zAYh1l2nf|Pc|VsfFkr}rf(orqQHLT`WX%Tjs-i_e8# z)mv9e_lTBbz4fK^72xm-z4N^dwS=deFZ8bQHkK0J)`Zes-lkIGZrz3G&CR8>x@dXC z+fqt5h?Xb3t)=uYY3~_tTPe*EJKyl;N$F%c@&j*sDIrcnXRE)Xln#{^I{claw6nA@ z%HKswM~Th}{;pDbO=PS3yGdzf(YcZT4K0ZeU-kEt(p6IWroXq8&>Y%}{C%Z_U|;q?9%kE!}uIFvoU3@o#z%N$H=WWp;3klwK7d)(Vc3(n8TPH#k8` z_lTVv1t&@A716n6aEg>J7A^CFZ%gSo(XvypNJ_sIExQM&O9}84-tH5eDWz#*%Ynh! zQo2dB^aSTh>1vT35u7ij;UYUV_>PoH;_b!3g;E+K?cE$)B&7$XbboM(lq%Bt)4^p@ z8X>dbkHHmE+FN}1OK_ExwvzVV4X&2bE7IP-gKMSquIT(YxL!(2L}#h+eVjQrxBqR7 z@0~a7U8MI)`r5GfkiT>2T`j)1w4Le4lAqT3Z}6WViqp@#wxb#8sE$EM*BIK4^sSCA zq$hWbL^`B%Y=iV$qHS~0yr<+>ll+B}t}$#P>i)8W?M@WVqmud^KLTglj&4W~kW_2! zEz&W=c>Ehi!wei#t67gcY}ksBuGX;zQ#oGw%Biij#<00Ka*bgdAU#j4Rr`;Zx-O@$ zx|^Vuda4$xkE1%a1b^PJZp7PT%R3;we(X+2|1$cnmXbGm;(^FtFnT`H4W=B1BaaVG zKsus8AAeam8Tqw~i;!N`M9$AkOh0Zu3!HuZOOc)*T!r+zEjJ;(pl~bnxUDQNt*Cx& z>(g%KM`$sc+>BH`Vq3KBQO6Q{jI}3w%x`i0tzFtDZzJFTKKX~V+qh3`D+@c>)(xYW z{%knY<3E?yZ4Yqt>1lsPB(IO3eJkELj{Bfw)Z%d;3Vu8Tv&Yoy^Tu_pFPt-d>#u*z zWZ0wa>ipbM#$9LE=!q*q+MoWPGj7@E-4~(r(`ak!oNZa(IivdPQJz+Ig-6lkc8qo3 zJ;^@V2gk(YerR%hwjX%p@qHd?y~rMOK91Lwq2Bx%J@Gmm^VGB(k@kPxxFbhDTN^(6 zwjP2Pm&=OuuvwAlUH|=hDu-X$wr-sA8?>c9em*UJ)@|)IL}SWl+lSi9=hJ(iy+@qw zpZz>%D>~0VpSJ7@6MNU6l|Sz)@&C6HW7Ir7_A=%`G`TB55%pGhyS6hryoFkEtjTJq zf8@tWTkh)0RgOAauv-@E?E6SPyYnC4_((mA^Bj|>-TK;W|J3gpdyMu>o+Ir%uRkK6 z{V^jjYHIT=v(8TghrQZAT(`n_deQjW;eXlIU1R3JuhA1fTkk&mK3p>yFZJcAXkQeiwaL5Kl(ro*40pJ$Hl@c$ z?}z&qH<^0B9X$+t`F9#wp=-a^X74^z8qqb(YxW*7C4btz<6FF6nbLC89zy9wQ#xVD zGL!L$H&r({_`rMS?jc@bbmC|u7f1mOyN*@~8Ws}|pC$ zLurtdmb5P4`hVjGdtFAhQR@dNjWe<}yO)k1;!QQOExHR6hIq4#?6t|Q6NY-L8QBMu zhoZEOlujJA<@n8Ur((;b^cC!>@0yf`Pw4cHOG@J>4EL^)(#fb-nK06OF)7WSFxt~Q zBb0q{!Z>fQDfEG*jVDa>?w8VW-V-BzuiN`)H)XH1c1#_I(nnG{0Y`2(q1zihm9jTl zpYPsz!c=dvl#Xk8rF%P+W~$6Ta?oxQrg?nI6G!^P2JbeZ;=LuM#ok9#kDoBZ8#Rrx z#opF~&zvyJn{P_zOgnzU%HGAMbPZ&9sz&~n4B?DiEh%wE+7f5v>WPeV(3UvsY>D&C zmN?IBiSulYLGK4eBmN>I`FO+|fVJ_JcXOAs$ zzSt6HNK$HI@7fZ3_e-kMThg@ppsOa#O-kpsEt#->QhF7#&63i&DDe&!|CTiEKIm@~ zw$TDgM-Cb?ar>k+Z1C)fJ0+!a+qRp?d%OH&d&f`QOA9EC8Fb^s{gTqswqH!-U26WZ zg&QXxq6L(8XnSkoVM%HAwzf$}B&EY4>rF~W4w^pcn51-f+wl{RPfF(wnm6g>r1UCE z-%d)y2G5(sdu9Av()44<&eVd~dHAGrlG5&j4xh9*DgCBx@ucr2rNi6qnZ&y#{A0ho zIO$3)pfqf7Ve&QJyE0q#?6}?=x*WxNcHH2NkdmGqH+Yj&=5vg`?;UGO9HSq2#pR`* z&oR2g+sl+VMt6G;OKGvUaP0Dv@Acj>rEzVmPX39vNrm+mdslXDGWmY*2vfSNb*ITo zymw6L$Z5+@e!?5Kf*!eW@T!x4 zzwM2isYh--_`8$e^?FU|oM|^te$Ttkl&%^4{wpQ5^FwdUENka~yeU#rJOAU& zRGH7Y`;m9IDRJ%={YfiIJ)d*8#b0PjoV$bl4@`-3x5M9kB|VaJx9s0S z(oara#V^jGmc`y(t#3|V%U@_p3&%E3S=Ybal*YA2(u#w>JY^UEep6a9ZZ&CTJDcAd}n$ptN_ov+GpJz&Eb-y*`7XN-zT5<6EQ*QGot)sKxfO2#9 zUH%rP^m6O)?tA^)P3fs2mG1lfKbX?xt+Try^w<2d*86Dcy4^qX_cEoe2k+4RsQ<7j zoinYc`*HsrQ@UpGvE9G)H=N6QCwmtRf1&j$e-l$WXzZydZLTHY3Ez9#pO=(|p|ppV zS{@v{U+Xje0jBiy;9=e~{sJv|*G_w(^;!RLEs2(A{iBo8Fz;FabW`t4#PH|*^G)eu z#PH|*OOqpU_tU>7DV^W_y#EVxFYW%FUs~70-^nfC8-Eo_?OGBaUiL>OrJY+}_Gg(R zTf6sb{e!=nDUInK=KaB6$CP%0EwA_+nbIDx|A;A_H~9&ao;0P)A^Vg6qAA@B*`NGZv?MLO>Hj$?z0m!pKVm)Y zGxq%7{0XMSp8uP_yeYi^+1vg~rt~Ms-uBltrP*WmYyG=F*Ob;BI}FcfZE8w4pqJk9 zw>70Z&`a<5JDbw^}6JBthK|m!Z zRLmg_5UxTp2^SU9x~P?=m6oQxX<=z)S!!ijnPJ*sX{lLhS>n*Fy_Qy1R^M-}bIv{I zaxd8Pn*G1$`~L9k-(7pHwfA0o@3n_B+|Jws>>rXRZvt=k`NZ4;u^=VJb@)?i?1;6G{Zs0yYLcCj+*gf} zosyiY#>f^~9tX}s?;YtfVgu!$9qFz^>@SC=B!Xn`RQ5>ZGRZecj#gqm9=Ns$mfNVYNL*V4%kgTA z=CcsFhZ>{#EJPlt#MqWld59x6E;dxoQ#Hq-ei3q^8p}fcBIF7+M&&h@=c_R)ud#f) z8l&=>$akwTDzAyWT8VLak@CZi*yPwqd9SKT{SYPZS7X!ZX>6u zF`B*G$RpJljp?@X^=gd9bXz$~jgc+wF_LwZZR2!VM|qJNBUvZ8^m<*^ zNw%vol695~$Lq4r@;o(0vUvGSmM)8zFRC$;b&)3&=&~+yz8WK$MGly$%Pew~8Y5YP zTr)?PCCCTW7|9alot3&QQQoh{NY+(8I9Hc-m21@)$-2q=Z`NhqEEymoDomFIHnD>m_$urOSHB{nQxAdduDJ*JZusR5eDj zK601P zmLl)}OqZp|$JH3gQssVM>atXMxEdo_n!NRUU6v--s4>*TdTy6if6vl=7WFuA&sE*mCq zRbwO@E^i3dWy9s?)fmY}$eZzdHJU9W+$;Qf?ac54Gjg@z*F_LA< zPekgnOnHYIBiT541HWyrwDmaoc{N6|>*Z>^0jTA9y}VV8k!-xY7SGHy*?4)g8Y9^R zITF7-tH~zFacYcY6XlhiblF6CgBl~*BzaADT{cO6LXDB^2Kh*TU3PwSY0+%j#6VJ%awgHbs2q!LJ~Di{&`%~n({o? zoW9SY(4R-vrAg|cO6fP6G);vzN|m(4*Yu4X(ln|0pwx@_&N)}3 zF0$B*y13_4tv4edXFKall^0mI_3{EKf6Bo*e`n2L%)4Zpvu{*~6UWtN*H-=CI7%%# z!)9mOuEeJ{d9hjDHlcj}SNn})*XaL_ z--cI#zcZqh)~1$p@2lj8huY}~BUJl=bnS?cY-YwBnx%AbV<>5WR`VjzV_}BERxrFFFe}2~!J2(-kRg#~9L|q2}OT zXJ0GQ*@g8^-(6E$Dn%B*@CrD(Ih9p|b-}ZN5|tb%t*f1skEgh$1?>!}r}VPwqwCt> zE|vST8g3I!N@{mTAI>0f85uH#xqEoavnQCXYN08q2*GEF zh!agj5JD)z52CeLhxdKfLAnm#?p-I^BD6z@LuilC0ih#8Cxp%j@d#ZIEC>k*i3nX0 zx*>E&=z-7^p%+4Lggyv;5&9wYM;L%G5FrU68DS7Y3PLJE8p2?NAqYbe(h;sh7=|z$ zVFbcRgi#0?2%{0kAdE%GL>Px~J;Hc|2?!GrCL!E_;4A1!RtV4&XYml-3h0MAjED|~ zrG&|h>5QWpCo<+R7BJ3atP)-Ep40=NC9#|F2Vfk&txQ+`z4>nOHi@MBfWhJr)5jQ3 z;(1$l<^l1&pAkcn>ZVj3l7npfR$)p!c9PoMe$(dZNQAkWkB!9 z`+(-i{{VYLuE+gQMd$UXC(!Cdk7iCkaV(H>c(e5m;ES#I;?508Q<)#YH9E%n!$l>& zu03457V8h}*0iaVDN>`RNR!3uF*YfWrFksPV`(9C3Yk;L92@J;WBo-eUBuEwEM3N& zWz1Q|oR!R3$()tUS<5+W;2buybTdmgv-EkE?qum+mhNTgUY71>&VJ_XXU-Ak9AVB8 z<{al7&TtNAS$dYGXIXlYrI%T1lBhLI619d&qSgptP5^TPm=n&NaOQ+FCrY9giuSVVp%#OJSoDtEh ze2)pzUoWa6*Me^kUGF=Y(>@?ik9h_(`OIW#d+hU&e%O-IzSVRG=dj0jJ!`Iq4Z&i) zbYti{;QWlY^ty@XntTjg*~BKTmttFg>YFZg2|DS!O%~0*0#ZKP6?eT{N`II z&5jN8vq}5f*d&{@vPmaD(oFCx#Ay21cZHaYJEpCqP~7|7CVB?+^Lt5tIA*9H-aCmJ zP{Eiu3OEs+j}=KF4vYTEev zAEUbaZ<5Z$M*5!w-4b;Bh<5%nQR{gBZSt}f-TVvW=VAtcUxBA}Rr0SC`TrodkC@@VnKhqB{*^-V7!keLze;{4W`+N75!-wTx{0DzuR8x3T^6*#5Iz z);zX9lkGptrJUtb&T=V>IMp&vwUSerBpMwnIaMB~GD+l1CW(B>#H&>R>#XHktmRs4 z;93N*W&mpjux2=GZf4ERtob}^hO=fkYlgGtPPSw(Te6=m>BMRGvn3nYl1`ke6Q}CL zsg7`}<2lBk7=LB_gHe*HMxKm;j3JB>jM0p(7~3;;X6(+` zn=zR&jd3*NIK~`CD`N#?C1VxiZH#v@u3%inxQ=l><2J_aj0YGGF&<<5jPVP`Zy5hz zOz@x@r7=zf28kjM>V=uisbJ20=2S7~HpaUcSFm(Fq(NdE>uhJvZsr_d&LP(Pg3;5& z{=gW>7{S<-F`BVGV`s+xjLD267)LWsWSqiSz*xjs!C1*SpRtPZHpaUcS1_((T*tVc zaTDXyjN2JsV%*L62IEP_KNuxXs!JeaQ^sh<-i%WiD;e)%+{E}Q;~R_z7!NUi#`q26 zIY!Bg@{eF_&)A=FG~+nN97Zc+1!E;+72|D;cQLMDT*bJKaXsU!jK>)NU<~o5a-$jB zGj?W7W=v-s%{Y;93S$nVm9dg>KI00;RgCKyH!^Nwe423^<37d%jE5LMWIV?B8RM^v ze=tfuWM>Ft1Y=XiXvPG_-i-Yj(-}uFj%LhZv@#Yj7BN;a-p06u@h-*{Kr_yeYS*R} zV?3?~+qH=oVWJbTx#$jz5t+b_VhXUUSPASawg6MaPT(+c1~^vS+BP0nPlUN*DR2fb ziStZm%x27Cv@=#QF60ucnO@IW!?>HVmhmK`kjPGn(ahM2F^MsmF`F@m(au=KxKN^c zRWrSwv4(Ls;~tjQGJTTqjIRP?#u~=mjC)zLmg$p>r{!131`oD@(d0oTnwf6Jn8cXOn9Z2On8%uSrmGm&Gwx>G z%hHofOD4*{6=O1E3S+8?%1SpqCyu1#FejI>0Gx{{RZK5rTmnu=>UyRhW!wZ#T01QN~S>ew|vw{N2pi z!?+LpxYSytN{Xvx=}G3FX8Zf*uZ>-C&ym)45u7{>PC3`t97I)yPEoJpxU zOy@EdfD@8h#q>hPCE&!Ru4npD#!cWPr|xEY592;?ywgrHeVXwbaHgh7-fRz}ulI9e zQCcgeV;I|m6PKFIbP8iSINoVFOy@EdaH=Y%7cwpZ2Yt=-ql}w4pWRIFVcZ7}`kLv} zjNgDWDOK`edl-Fvh!ewfd(e-jr7)ci`bbJH(*>a4PFu+I64rT?=}oM&hv|KwLsCyO z{SD~2R1aS&#n+c?h+(=t=t-$5Os9jsn3BtM0qAyV3z=TR`j0Zb3G}J7JxuQdEe}4; zw1*$%9K)Exn9I13@lnP-jHekr{8^tdg)x`W96Q}X%R$anHiIUmWpGYvVk{t zwgb;}t`4G{Ye1L8*DzhnC>kvl=i)^pE|)P0oWd?iOxqh#p4E&s;GgeO3!G&U!Apgl zUy^#4ov|7m-`>?s*D%(CGp~0o(;|%X z30o?D>1}2@i7^|TvOd{N+Zn6D`L<6r(>08>;AHi!Wm<%DKH*En@xErJlNhtX$?2EP zw4JdUoU{F^nXX~11;^UImT7YY`vzln#8UB9e>*UDKsE6AfEr-Vz*^wv14ZMdVnUL+ zF_oJH`s1V|rn4FC;EYJNGhNMC15QnH4b!!ZqRCP*V326SmNO=Svwct!)7gx6aN4KX znXYc~lz1ei2Dl}~9LaVvW=B3HUQ4NAx>n&gC22OJow1s+hOw4WG$S1|qn)vuv4*jh zQ8Z^A#w5mUg%ic4GiEc|8EY9uG^b)rV$5c=GgdR!FxE1P7NnoeXlJZutYNHW6fHSV z#w5mUMmu9QV-2I(%(gLRGuj!e8EY8LtyqUKo6*i#%~-=&%P3m2ZH#utT1FAW_An+f zRx{Qx)-sA%)?rLytY)lXtYs8!Scfr*F`LoOSj#BdvJPVsV>Y9mv6``lv6fM^BmJay zj{@zCHH;#TI7y6l#u`S^p81S+#u`S^f%%Mf#u`S^k@<{v#u`S^iTR9n#u`S^nfZ)% z#u`Qu&wNHZV-2I|!hA+MV-2IQFrU%RSi>k1n9pcutYH+1%xAPS)-Z~$%xAPS)-Z~0 z%xAPS)-a0h%xAPS9u=*nfl{UPko1D|g(S-@<$m&Xd6~RH-YFlEf0g4r(mZlJ=6O8s zvESp2N0`ZC8fPjp-DX;6!d0N@Ta&kEtY@<4jh;7qKIZwZ=V{NsJezrS_Db>^>ov`* z(rbm+Ca>LI$Gm><^7XcOr+ZKJzS(=T_dDL-czgLY^NIHvKvlBO`c&_5#WXzMy@8 zGJ-#7dVVP*1cD9#$_R}>2LWY-5YYHO4d@W~oP=kYVW7j{cM|+B0(1nPZsNpEpp4KI zbRC5 zAUsVf2Q35PZBhkj6A+#z%?9lSgm+1JrXu`+@Gj|Q&;dYrmoy)A5D?xa-3mGw2#=Dg zK!*e2MYwwaF9O1gq}xC@1Ii*=x&w3zpe$NSOF)}}GM-p11>G7bi#F0-pxXjv(N4Mt zbR19??WGlu@ZDgaX;veVh!j{;y<7}iM60Ri-$mW z7S*8R#Ur5O#Rkw_#ABelh$lc>#FL;cI90zL#>z9G6U0`~iQ-w%iQ;+CUBwHayNVs4 zyNQ=UcN057cNe=rcNaCFdx+OT_YiwQ_Y`k}?kU~|-AlX!x|i4wy0>@_bZ>DGbRTgT zbRTg9bYJli=)U48=zii8(EY@5(EY{dp!hUfq~Lv#W?TEv4MEi9nNh(yq1L^sf5MGw$pMK92qq7Udy z(GT=EF#z;9kp%jBF$nbaA{F#_F&OlCF%C#f^fHYE`Bv;B`%E2CEJSKV+d))2uACH$j ze)kw;y36wc&mErUJ%8~G@QU)j&-S#Dzm|Sgek=VR z_xr@J*6%C7@%}ga|KT4LU=H{>ARus8;QN6m18alM1ubo~zR|CZJn;i>MZvcOFApvZ zSrC#Eni0Aqd|&vd;VBWLA|^-tfThJRvUTJIEGt1xpJ@7W(*sRSc6!fA`J>N{&8&Dc zPgXhf5!}p%_mZ7?O`G}Py&!t`Q2%S%><8xg=`7K@*%W;HLSQ_5U>tj3{F*RsO&G7Z z)u7g`9tb@VdLi^i=!4J~p&vqj zgaHTx5t0y+5e8x9O+iRSNJAKmFa%*J0{jyG7z{rQhW`b_?}FiP_(cMQ46N0o5yl{l zMaV=Lhj2Ys@9_u|5GEo_Lbw5e{^Et7Z+}sY^&m_tz?QFi!Yc?L zAbf}5;k{3EKuAHDj8NhIzIY5_ulF$_e2$55ggAtLKBvVBgeQIeD^B^0kh1+oNLvxU z_rn?d{#DX2{}QRpe}wc9!s7_r{WnU90UM?CfNjzT2*(k=4S;UoHmNB>YXl2IKZG=d zu?SfR`3SQD-;gdK_yxTowL<6>bVzy?;Z1}iK_$}HK_{gAMkl112)8yWk=Eez8H5)R z-e`0|Y8mV)KZ5X5aG0DP5+;v9$POuyD)D&_!Wx9fLR!h@&{lGLgr1=#(lC53Mp%LH zFv3#^&m+8!@E*d)2wx!lfbbiFPgpBC93dK^BYsG*Cqfd!NQ6lUxd<~6&LjMa;2j<& zhap5EbU^5VFc4t`!bF6r2&Lg^@;L-k#CW*?;bw%p5FSR@hOj3hP5uz!EP_YlG`Sf< z0>aS7x$=7mA0vFxxJ3F5pT13U(UWvR-j%s?F+y!9}!nmfZfik zt>ww(mBqOO^0KlLETZ4=f^yqP>l|A{N+Sw#%Sy^irrF|?=T?+i<45EaBcCE`F&GuL z{F1VQxjD9ilH&O5t!3r-Otd6)&$9H)vLqPI(2E5-rOcXhCF`K3S?83Nn1f5o##qZs zD#~)LWW7V4s3tPV9WsYCMoyi~hLn|5lp5tjta|2Z-bV3&3N)ig&p>-*Cy0?1g@rj& z3yDlmE3PQAmZ`CnlHzFv)6sT$nK|V%l4s`>*i;F(=%`X?QVXI^r6tAXlmYdaJ3eJV z`KOc=7Fu&D5n^l-Nk&-FA9;f+3JUYAWe_-uu%vyPU zPGN;LBd4G&J5i*k7H~CkkTrC4&(PbstKtdu`>3j5=ymQ$XV-vIRzdNsl3Z@;^gJ@k zHKC(aSCO-GKyGvnRlROh7 zQoF!WUP5=Jkqm9n@VHj>oeWF_Q!PtzL@EqCrBg7!K|5>s|pk{cS()rnv<<>Az5D$iZIddo`afrc(qIuw(G4TFuE8r(WH zt~Uo))rK1f`VBRXn%$L(YtW_CJQ~zV=&4lE;V~Km&Bvp`sc93Tjb>7O(a=s{*Y$s} z6fbq;?BHmATW{r{srYe28g)9x;Tu;<(_nL;c3^6D)>N$$v3RX4^* zl;l+uS_k0TK;OP#dDZqXyq6p$5?Zax$@JF zPWfs3Cw63G9`&y5hFZAo7_C~xIpc2>By@paxt?mu!xR*6B&_x{+>z`1mrtY(^ z*K6x$UhlM^DKKpSN> z7Z+w(T`kIQY{k^_+_HjFL&7>NN|sz+UNF6wE`_wrl{H7p4a&)#fnSInTwpDPE_To^JVOt;3hOq!tA=w6 zyUOcnGgrmr++1s^ZFo-c^opG6R#!Qh;>sPFQ{;wAy6z>Z1?8oMIhF2(JQ7^X$gC`N zQ^ug2a_hLV0#|i%Yr47|UQj&4RXVDyV0uBZD?hokK)n`sm8Du8e(fqm|KnQJR$wi6 zl_|bXPRCVqqoGYkR7W>rTw5086sk81##(JQ`n6%#a$w-!Q^ZKg!^lIPZgNS-((Hzv zVJ#~vz@Wudwrk1y7Qj`O%onL{5{)de)hl!McsGet3UgpgZgO4`=BRQT?gEsQxlv0i z$|)$s&@aQ}>}nd7qEAF_6qM=5HR14*;^|{5ii^H;874fzrr?6fvZB((IYbJ)JNf#;&r*2pZ zbLKEruFJ10FDV{1^(Nd4)p?r9@W;FgcY>6X(n_qI`Gz#;&YYs;va*~?*L=u^oMM9j zvnCB8=GzLU78DlP3{o;l9SR064IlPmF~XWxkVC#Z6c=aKGKERvp*iJBWER~Zg+CUR z%)&UO?JF&uG(P#3tul`3)+(lMp=R(pT z0o|?U(ww+stkbMzR%{Z7mz0z`Nhl+1{n5z|wpy~<8ruDTHlaK>r__ohIm)G{$ShF_ zDq6{g)_+l&gVJo;xX;M3<-`2Ea+*JQeo%KtY_Ud9Rd!1(Po7#{QixH6-IF?)c@>~2 zwWx9bq}1B5p%TT$2&vQka>GQSJnzUTnQbi_n~!aCywdRHb)I|V6&4C?tcy!*gRIo5 zYL5`lvDwZnnPDv!xh@q-Emp>OC|%Mi_RZ1se`w-K3TmDny& zBVrjxCl}=Luo2oi>{#w;>u(hN<39XDY=uYGR$M*G}g-RYGS|1@#!#Iz2*-Y?ywym5uQ{ zeb-#K$?)`rE&}mvr$npaNUJTL7LU5S9A4ZtC2Z+uVxh2QWldF{*QlE*eo9A|vNNn@ zyn0MW-xW{iK?e@ytGJ=YDJv;ahNLRh)-QD@G`=jS6q|Z=-(=h)X%cN(Hawn!{t(<1 zpeI!zox2GOfyPv-PMxAM({L}lOr)2W^y*HU->{q3THAP+&ammj9Xp%)sE(A~?Z-uY zt|6b)f}H8aCFQn)+;S~zZTi!ecy*F4N9WNRj=saqNNYI{WPOLkH8ez>+t?s*XOlr( z-wsTaIXVU+XgOl`)(Yx3pj%d!Ex*9gd5%>xp5}hVM#F_A zmtl+}PkLyoj6kCxSHBuHOqalzlAi%9Z`Oavg$sUz@M2Drbn*rgb6uLBG4e z3#>?+Q-Hh*%F1n{%CP;(!IL{$eKDyLg}FXqQiO5kF)42WCWhHXNfI&h|{%b|^m^E8@nIB@A#y1m6YTv4gcjVijJ(6)7aFM}B) zaGhq9ppp5$m*as4Ct(fkYK`(yZ-*oo=MAzJmds|W2bJVivSmzAo8W~RQGyM;^8O8` zm#nmz71-0;DzVX`&G4wQw4zeP@YiT6-jFXBR=f{chIbuBlU#gSMIJ)2uz`~!3LzK0 z^AWS*8v^D0J%cWIA3g^fIbu3Ai&X7+#OI0%&VjzSUjm7UNW}Y}33%VLGd_DV;=2j{ zlz(TGiZ}lQb5TZtnumzUK`8}zHxu{7P+9?UDHfu;P2__v$9tJ625mYipaS1sC`V~z ze<|BcDbi5~5tGYS<|3~`{O35NnaFhpmnd+86Xk2eYq0o{HA&c?F0Uuca?wTH4AuGz zoDYps7*Zl;AyaBZszMjMj9S13mLOIlrlGKSywF;K&wRwm@VN%#xs_D5YT_=1PzF%VU6D}?tDyi}VhMCUo^m?Gre zneEUzrZdX3;_D6-K(eAUtjQA+a?i!Tm7BgZ+l@<5Xeq8CWsQP_%GDd+%sJVhQ-(T` zvzZ|+22veofhKn#E|o*+DnOZ0N(s1DQ0-LP+o62jTDSHM8HYS`;39>b(uO?DoC`TU zwY*Z=TveLSpOh088t4||(~8~_P07+Zuq6X2$mz*#is3{eM022#s)oSVZ8dF8Yd)M& z$+d**O)WMADGnsulll?KaouzH&p73*5}jdZorxH0x_n z_foANOV$4Lg)^SSqubXxDHG$D9^O`ZN%VF?-Tl zVTIcZ`}%)kxvQIp>yqJqmiap_Cz`~biNjvs^^bvPH8*4!(s# z%V!y822u6E{~g=`(9hw?wO zk-S1h{b}D^qO4MF8q(G55`n2`HflN>g0Qcn-KUntKQ;3GvN(r|ahI*%oH8e|x}#^75GXhmyX=1xaM8$E9ne03Z~iLxwW^jyE2Wht}(gg1V)Hgt68Xg`Z2Nt9y?Ve+G_ zB0{Dp#f1r`Wl9-R<*R%IDjy-rM}+dxls-bMTKS-?yFj$@M;!DYMEjYAMnYbdK)lA@ za)^C#M2LMAsZ|l&CWU5(xNv+iKadvcL3ReW5T1S#lKN1l^TFnvmbs*3tz{up%nArU z(@OBCRBCCy$b&>-BEYDEb`2Apa=Df**+x2SEk!u{<*c;Qg};(*TBGr`+GV@cE}OGi z!|H2Y)LFQeh1Kqb)hyiLUbw-f^4W&UXB(@W&8kmm`JjR<)@rMm`2;I%HY%}&o0-4W zg};^g&%5xSXZ{Y2UnPa+JDQdvoaqj(*-l+a>9Ty6CREgSvU-h+I_FgrpnE}RJ_gKu zl;RED&!}jU?d60DbCqVoUbfTdJo$$9W1BUv%4gNLwc^o!dX*@`X1vWx`;AJ>-_N!m z)cBgWl)6;4l+_Qi`Vkj(79Qa;j_ShDQe)dHIUHrB<3=S;e4P2UF8o^NpK;-zVgA=H z{I8jR)`fqTEkCdGl|EIBI?uw3?u8dwc*(u+5(_W87hWb|6%BKziH6Ip;<=;B()X@FhtXlV%l4_NYmJfPdZ*_`L>sI-&lA|{q`~ahOmMY#^s(NQB$*O`m<4|V8 zJC*E$Sro2{xP)+KMH*R=%!)FyqL^hivdqkiHL_ya+Bjwzx~VFT`JG(&otSTN;aiyB z&4u5M`Mq5Dy_nz6h2JlfS|Ul~W1g_v1D#^r1WBxx>MBTO!BAJhP!yc&#B0F^{g6&w8F$>x4gTis+U)`Q8mP3Q=E$fVnUT*qX!Uh8Gh9|RD4*2|oz&Q>Liq1w ztf#V9kPk?#|6zhwSp!uif#-*xPy+K;WzP{N%DkKSgu*O+ClG|lT~bhpeLaXJa!`~X zZA(yJi=F{piuk1Q2PN-?1O@W zaLR~`;D>Ei5N(vGByUKo11-;&RA!z%ly-DoUgahnJF$r`C=`Vtqro-1ti zRyJ-yo>UAPj=O|Dc1uD2YHD=*VxM41ZXtp~$HB4CgWP=fH>hu5nA(~}O7tZ)I+IJN z@P(<|@<9Q?5dCy{3$1c&6@APe=xlNuYNseg z_kh-V%bcpc%utPGeQ}^548YjQ#D})H(=4%@tTZxSbz-2bV0D~2lxR!ftVJB>j2f$L zXv{pszT7=~B@et#2HkAc{jS}>(;97!Q=_dhG};b;GyVfa}wT4{Q zYAV%ED%A#+YE5N>lgb8z$_BjyvyIJEx7}$bcIujJHyy}V0M1%29hmK=r?NxrPq=4q zcF*4Gp8b3g&9mLO9-;aFT2JqAYTX@%*4;sKE*A5Ay7I)HoH{r(pPf>%5@HOUf6vsN zPNwcOn7Y&Gl=+%dVxO-&CAf-H);Q%-W5}hZ9p;13e6`lP6M^OMpU`}`j<(mN#-Zt7 z^%^Cjj`-005aVD+)V^1DSEUfO0riq}hLa;wnRVwIzS?rua&gyuH=YJN-geL4U+x|0 z6WWifuNYG5>V;UQ|Iw8m>$DuCb!Bsl=h*K^{47nWP zA*R$Y)J^67;ks!C9d$D3sKKD4>JTfXA%<%R9%7|l*q=mUZ57yq+(xTt5I%WTtFrPc zdY6~Lc4dXSvaZm|Iqp=>aYH%BHI-T?m0E*Jt)_CuN#%?|<&38CwUf%%29>Whm9tJN zXALT6HI?&DD(4L<=QWj!PAV4-Di?Vkx`MM_qyD_)WYr~uRhKlwFFUDRHmF=yRjPzh zrAp{3RYFrSIjNWoDkgm@DK!q*x>HH1K0B#H+RaqLcQc%(66QE5^!(j5UuhG=YfHmH>n@^H!xg zB~3LXP1RI}I;jjbs0`IqhC8VYH>eD^(F&zBiQ>-g+U1{KqBOfQob1Xl*p(5;4WpUl zt6rth^}D`4+3n?ehia<-TCZk08J}q|KC>h3dhB+t0)6VEl_T1a#Qg_5U7O8Uu7sdT zHy?B<#k3I%U8l{D-H!VwuB^$ftZY|S-ayA?nrfxidU}Zlj%ty{fzcrjqa94$awE%W z#lb^X&lMt1kHJU!~mXCHg!oV^-npbC>+ zh?RJU)=LH;K4xrk0!~H6JEW4>etG#<@~zYFXfeCbJ)bY>^>*|T`DN=%=IHE+1Mc5@ zueHVEwYvv~M|`(^;O3BoXZ%0t`o{O!t)_Qg9r49kakFK3Bi(Xvx+k0oy#SLJ?s)`Kj*c5KvX@M$4-ve? zqAGGvx}qoT?Y_#*3kXT$LzqKO8U#(l^CB+JsqZsgEy#uiot#R@cFHB&H5Y>dT`3@g zZd^->xE7G_lzBch$;41%>jO)PY0rL?T%0U-lW{2u?#Bh6ltPC)l~Sr#0Y;T-)=>(Z zE<$UTy4H@g*+L}~)e3B@9c_y&?RI39ie69`4(bJam_b7uR+@boe7jETM7y0kkngr~ zzFH}m_Z^wQJT*_JmayA#&n!4BNXD%2#!6G+P)n z;iGjeGaG9Maj30MNzsPRP%a&fR=0G{-6eILAvH3l0fi4YX1cZzSE$~yFb?WgrM0mt zB**BeQ<)Y9b0DpoLkB}`6l)b7*qc!&rx-&{MpdK14kyhHjdFHUV!%m*12wCT0Jd_ zTm3>-gj7#doFqu&t7aBz3pV724D2gHwYdSRYUxdt#E79;bT*V7ZA1AwwT+=5?CRpE z>A7v;Hx%QvCN+W&dM$6HSf)8xxcq7$#jzAEubs94iBQu&Co6aaef+(T6YzY5b_Mjn3y)9~l6vG1DTrTHAp#F3RDqA#lX3{6XGQd6 zNs5XvdohQTgcd3vdD^qH&_YN4p@j}+p3ck*;0F|HGR?qwWZ*nDP{BFGnB&E|Fh{9| zeUT@)_C?A=jYVOKZAw;j&zmh5YFsZe+Z0D@A7C88M2|Q;LW@(@JoQs1K_o#Gftetd zAdbL?V1h4_DDCE>QbEWmN@JtCDmyff^yd-G@dVfxIV9O82|G(4`q3QvYeAdcOt~=~ z4KUJhS^^&*S1v)1HpfErkVMn?k!hLurXHX8)JZ+_rT?tNcnfj}3U?ejV?3a!8J=A_ zj_NU|l$4d0C|{Mu>sylW9)m;6akhuRFPn(gjx$=!uWvHflgR!6zTkDAF66H~n)L%a z%*xjl%gs*TW;7QTOfAEC)A43HOu&qjYs?kpR`YBemtnT$Tg@)Hlqtu(#GCOYU2_3_ z@ioty$LXfifuA{r<~-{xe1or)PC}r(@C74({8CIpeAoEyJ@IWf`~r)^Nc9wT-AMPR ziU@J5B<9vlrGF8#&KV?X`|D?~Bi9_)v&HmpFn4VDgw^hN8+f54Zn@S5(03x~oD%x# zsd`|AenNc@Au1(dyLL9{-;!6FBiV5_z7X>zG3VbancBfodRH|5?eJ{-Rg`b|K7HLz z$JdsfzMxuf`;!ycC2{jLH=|w)-~skK(GrWUxe1Q1>eg!u2C{vTByPRtrZhMvdR_Iz z;MOzhj)b~C;_%G`A?8Y=;-7AW2FiC7O~c|U=cNCs?oMM9W8xM`RQ`+gcPgHo@M_!O zZycG?vBBfHX;nnoT-!`McL5W_u%H`tkoMU1fBSV~i znB=Nm@^3VQv2^Mer(wAOzb$x;yP2BE z-zZg?rX8ii@yaAobgk=Z+>T-)yvi%YztzP`^U{josBFU3U!4A}qV=UvFB(oYTM}je zLPI-O8E$2hM9H--*J;O(AMFzJBr*HnC{$bb^p>WL)>U2t|E*rGv&cAIZ{UX}um0lm zf3d=`)H&KC5uSIgcD%;vjGDu_4QP?SRy*FhC2MZrY{5Tsp`jl+Z8*lWRW zn!TQ~8@kY-`yT&*|JPHpGPh|zXi)D);-8rT>apQUJAG_ouJXA64ZV5_CqJ*Z+L(L( zf$dWRB{#f{wEQD`2)D%>2V9+<3+B3iU=MM{QjL2E%xV9?h2#~Bbar;fl!~D}OA<4$ za(TOA>8hJMip7{JmqhWkF4k!&heKbhSP{Kx?!8>*K^zo=+|bH zhvd#y`02;3o84p>U_55nZN_9}ARfaPTj$v5*S_%0T1j}$;vWJL&D~__t)30-)*Af? zX}3*g_@N;8a{cEH@W`H?=Q}mIm-71*t=xzL%Z!J=yR}U}A3N4f2Eo)2`p`+wYwAYH zvz&fF$gSx(d|Nv^+->%Xj~R}*_v(E3`}l>!-v9OcFNf~m(eFrp%hcPOf0|xAXYAo- z>ps8x^QN~ya?5A?A6|dp@S9&h_CnzMOLw2RIq2{_kBI}5&fgStc;o(0w(V-1I`saf z-)?Pk;kC1$+Q-e`k=uLoQ;*#7WViBN8wXzBF>Kb>&|Lw2e<}Ct>3unS;9Jwbd^l*$ zh3=bEqQ6|U7jHWV(bjw9J3<>_LMJED=m# z_!~1eb!=)`?_Cz(u|u{D3GCISpAYAe+Gldk>>d7-B(^h|r+Gu~K zzM#!o%=zWz`TMI4a;e)S&e{EcGA41QBe6Yn zt{x2_fy04a`J^`#VM3BD)_PJ*`CIFWn~6BHd926+rs0&-u{f4&6b`n{!skda7&QI8 zYWnY=jv(egdTm|rUxk;74+*)_foX$rau%IFmyUzfrr|g>`im8mDicyV zoU$Bp{n#~D5L-=`p(4R1Iy{+r=zT6LA{m#Za6d;Z6K1Ql}MX{(u$0S1iCrY z*^C1PwezpdI4HP8%!aM_NfDe6tDHb>b~?S94mGa-7-%yeA~%)mMJGnaLwgi#F9dDo z+Lz&zjz*>^fw_R;LZdrde-ud$>3lmkR7^#hL~cRd`NT8T=d1DK5mM+#_R7JDkENa8*Hg_UOD6m(CCWL z9jBht-<_Z&_FUx%!D4Pf?a;w%Z*x5QicUeNzkJaewhTx6O=l~py-VR&)RNO7wL!;~ zXBL~#v%s_95l$*gTAYT+~+Yg==pMwSOY} zj$3EZW#!0(hmr5XM#vIsylvaf;nf64#fw7_!O z5X!Q!ENHjL%eTYrLvQ~jQ1X_m7qqJYYo;to35_g)UcTA450$JQCRy?nmdRdz9la!z zw4kRfnW{%xhFh8#IE^g69+IdwJtEtMC817Qllj1->A@|wB>dVos(4rDCl|N)c|&RI zngMMVzI!xg;rP(D3#%6dR#_H!{$*L<@l~~lEXi^hF6HGhOS?XKY1M_^pHk1rV<=nI zSjitI-ICyM@%8c;XYvY@$Bj)0vxHE@C(LhrPC0&;bUJ>aE+Nf?OMdbKNfHOoynoMgKmBg{ zbjz8R7h|4!qLI(VZudQL)nZ9V?AWbG&+ff@Di+0%MfUKa#d%+3 zcz&?p$tFE}w%%U!#5)!8DoZ96+0rz^GR%@*J)}DA_LO|Q1>L7hm)Wyt#}^gkmX+}D zGUk>Pbt#=uP*PgnCAX}w3!E8V3?GL3lJ{m2bhh;DZ0Qvbxg|%dvm}|uS;ksMYjKNw zd)gHXK()%RP=w7AK!%4&(qASSdu!*x?6E+WMC0_HFLlZro|JRs)1=i~r|zukBu&rG zn)JY>ArljBKiK}M$gdZV>1-RmcS`c{Q|pEter?5D?eD!XxmlLSxn*mHEm`lIA`SUs z*fW7A&i@p1qNe}&`ya_I+4soEkMhRa|I_tQw?mKb`?~My^s!5Nr9Cm~h5YaO{MO{5 z1=Z1WM^|^dcSY3p6)%U}x#L;OmlMrz9e(y#|6|YGx@T6G_~DBicX)VNWJyBqqq}!q zs(tb3!Rwk%AMnEL(f3HN1-!ha{mIFVR~?!XHvCm{Sc}i^_;LHAds^T0%FECF`Nlhs zF0D-6@oK`!pL$7MmY>_(HvZ{Zhdpl?c4We()2G+{^>|zVV~_26W$N3-7k|3z(Ck^! zZTmlbeCkc-?tZ7@rstCvPkR1|*3HndhiQATa@LkwFUB9ka&~3)6 z_SavU_La3Fs@IIWCw@>Jckd@H4|ceFUqZ)SPe64=(?dIr)=^&)xH6 z`p7>ozA|jk>Bu3=dd`eFz2no(J74_6-t_n#D{t!hQnR3s8VAWgdf&C^mi;#-ZuYxD z3>Y!t`4-z(Y`VDZlO;EVJ+!{f?%2ex_jc@mcJOzb!rS~Z=H9Yp+lJWAHPX<`npM!L$PWco)9rq5Q&?t6K{d z-rK^9Ko5@6%Fuh#|M5j?f$X{*$g~{DSPn4eo;v?qS#VVR(?^S+To62>+si+`Frn4M zgPM1k@y(=+CwF-DYGz7*`PMxFEk5fxW{uWx*D@XNKm@-`Reb)WNCb#9~1A0*v(>GbE`fget; z+?d|}tH52=VY7Fw?El~2Pj{RY+;YVAagWR`s}1e*V)~6o&z(zIvGCZ<&)$4{^J4?H zEt~T7l2MDA{kXo%#52qLc7CSogg0Is@Mq!&&w2FU_Ux8>d);z)oxRgfBd=f4s(YI~ zy^Hg19sBayMo%}5S@iD3mpyL3>zAza2gkg&Y~>w0Yg*abWJSiku)keguQqFXU)SUP zdE4%NCMxFfP1DZiw7ltLT>84K#i!a#`JmOX0b}-VA3reG$*;|hi~HeR(Vn<_I^C1hbJXsWx1}!G>pT37BO6n?*jD{gd})q(LZ`4P z*{l9DU{u#dpKM*+4OTAHvDSw>Zls2+BEy1EKswQ^nNc#Xr&bo$|LUWqVnF={bb z9gAI-rE6AVA}@9~YKt2dyD^pw%SbJb#cohTi(QvoZKZ1 z4-C40{^81i<-4s}@tp=-+EaF@XyKo`27c}LPT$vtYYKcMsr~27jkypu z|FPw^g?C+ix2-(5!|Qhjzp`PIXTXE!@_);ZUsc^f%L8$%*Nh12@BgFEl8;*MNsK&o{*BJ>-SE)! z>An5l^n3lyr=R)a*<+tZEFPUUp;zL}cFk_xcCp>1&pY)o7p!@9;*$L0lE+`P?Md?V zdQ9pNH(Vw};$xS|egZJ7y26)Z(I^?yjqGkB5oSg0FkH6X6wChCjTS0N(e{St^ zcJs}nD*-sn4QXz&B}mIp=qH?}>vabVi)7Tw=G{Kz8@&z;-)x1p#iR;>NWfL*6ZhlB(|FS-({LJe|4o#~W zwC}-LH~86y&iJG9;oYwm72ULNOnF$~+>8SW3!2WdENEJW%Rfuis{hjqSG`w&hKthb zs%I>ifYfV3UypQ6jP0}H7DvwC_u=au zP6T!xIA!MG(VM0$3w&T*&H~Hn;6;`}hU5VW-7JaK;r3A1`(W#v*(2*4)5c+k3p3LK zN!)mct$XJFO^PwX{Tm>G-<@T7N@>jew(T3gsPppM~?QJ-0HED58b)*qv+-T zeea#|tA96r^KOmDH>c7|Zv3Tr%zZw4p7{E`X1#VSJTm2$AErF`!1uda&$@l>yB7Z; zyC1SPe|cxRU*dr8hy1nU$u$oj|8VNeN6NPM{UPAu4xd*R?uhQ<6YBZnt&;-gorwAU z+yCs^*m%Ub#RGr)Pw$MZH~!iXK5hBE!5fZt_ZyaXv0}*Rz4vb4(P&uY<{KJ~zV5Y4 zLmv3)-Y3UT7(VZf%pnUNS#OHIE%fkb#Ybz_R91L|A0PZ^r^5k<*Dq*-%}C?Rj>h%ykP;R&J`3L0 zjvk_W6OE67^`R_zxZaysAdU9&*SsJYwyXU^C?9uxL>pSl}GV*}m4__3W?o#YO9cxY-JF-t&_v9X((-M28bnf0eF)cyO&cm1;{pNaSd@H-C)U5s- zZ1sYW@z{?CSQeNr>bGR1RWDu+{OEMggf_SdDWp|Kho)OH^R7t)s5SEli`E;!V6l2b z#-iMiNkA_p^tNePfs@t;KNP#G)olYa z&flN>Y2#HZ_Y8V**7@7^zI|ru`_Fv#&@ZJm&lcR&w_o?t3HJ;Ly7$Z1U(XuwZqfGO z4Lc_N5Z~pK$Da<7bZ^G?ktk zvLNr}vI!U7`fcR!ip9TmPx_$8ZQqu3^Y%M^_SZ{3kG$Ob-O{(J&-ML2Xz`Z3w_>8p z=8sN&aqXVcvF~NS-Rteh9UdExf8O-f?GJ6eaL;tFpRRkoc!GHGtrJ~Ne141n+RwL_ zOz!Fteav^wiH|G%idXb~y!vR{ZHK)7+Eg>)&0mh3kGkcVEX(KC0k3U&@{Y4Ydi~ax z8}H~ovf##udm;yaQT|?^`PZksHU5qA*Am}7C%_E^8F`Ia3^FMB`x;0>QbO4Y?&ow>WcT8SD(ndrKt6o zX0NsVWYxjV9bY@R<+IHTt3D_V$zOWxnU`A6Y<%6yu{poXDI-3AVrZqu-1Fmqd^lr# z>lbUk8~ERGrG0WIHkTh6TypAYyDzJobbEKmj6G8~X&d_#Ay!gdo>*LMGc5nJknI%ivjZd&#Z^^74Q=M`9 z$okf}Iyaq^yHRZtE&6~(1Va{xt+^#Gp*?TO3$-mRw&dBC8*#r`y$6RadBzpX(st#4 zue7?iqQa+yNZc3;2us{fM*mrg(NY}2O~CO6wJmYx#f z2aZN=Ip5Sbb=})BYYr9{ykB|4^qMZ4iz3GFzh%giL!a}1a`C$B-{|jE>=7LK$%GH? z`}vE%w!hiBO}jUe4s;BB`HLTJY}fVukh~k`HvetO4M%(1?!5cD#gFaZ*!hp3k6La_ z-dEJ=rd_4YF2(J9`rC-dOWVhlr`=)N)Z4pd;i<=0zw&v{=lac?_1i~lo>=kH-nE|v zTzBlF^44!ee$wK=I~(6^YhAi+>!K{rg-doygWt(}bMT*|Uhxln?ETcT=%kz8*;#w* z(ZBYOIGz_%`^Wypy)Q5AE(LU4-Rg&<_uYEKle6q={-5s7JQ~Wqf#YTv`+mt#WDi-M zF&SBg?1hqDwrp9m%orpLGg3`8G?AM^4CMn@@v$+#^XA=KJRF(n$6~3tkk>8 zJF=Fni2j88>9vZ?`)g_*zN=*i8S`wJFR=t=)t)mbo4JC$Wj4TekUw{v#Kg_T8bKYA zdjRaVuk^D|eq;=U2re~pPb;SEs1utE@H$&G5IYpktf!Tc=2_UWD<(BeOOEgAYEE#M znRQ;LGPbcELoww%w1Z_uK+tinV|rzuj-Pw7XSW<*b*9_hqtL>4;=yCw@O$x}5lZku z`Ehzjee2FQ~zQPgEKmv&Us;a7LARIyMyjetU6#r&)|2LXVjNLMye1MhU zh@^JXr6cROdx<}<&Zo1mJj*|MB&@wd&3+LQd(w1tysk<|$PKyfY|-Yubk!Q;IF2`U zT&qO+Bp6F^mXUwxico#X3!id}@wbXMthkkE9Ka&5&=UUf?9mrA!*-0bB|<%meSZ*n zj?U9BYaOlO4n5smu!{977A?H9h^kkU^%}gURV@;Qyc_3)zr?#M!)mR3%0uRbKTns- zuWO0cU463&c8A{%*OGI8p(K@PC|agZhxl=Ipp-%q5$$Snb-z3~C*3sqC<$L?lk{Q* zW_vBrSL?cQ-CS##a5W!F9;&pX}^6(;bx+f!-Ly5>X0u8j-5{h?@sBQ&Ijc_Oq{ z-&dJ;=8UEBcu$=_+|eBp+TlZWrOSmw$B}R>{kHhK#ua{cx@R!wBb3)gr>tA?5-!I9 z93>^Czv}2R2g!W_#jFNDV>0w&XU}TM^Ia_gi_TV-F8o6>)x}3)r%$%3l52>x3LPsbx#!Qf`PGD($H#yp zV!gj+Z45W8jn#>e;7~tYF!;`(4QumV%=}LTTJNG=XVMha*~7O7opRZU{`5M$8L;~e z*%knp6lH-)(N>J}7X{izQUoXgC?!?oCaE32K@ueOMhsfj zeQrWG!#3uN!rd{&-98Y6w9{B7*6d4u@QkxSxy}(2uT%G#lYc}bkYyV5Mhr@K(CcJ$ zcbGi#=R%kreATA_P33Hqg9I5RH_lP2GB_!All!urBiVHZ%1qD}6h z%8CI|LAr`;rv#=cCHYP-59Q!EYiB8O&(N<;b-cAKYR;~xiVURwnzTrPEIw_;tuC5l zgLw#sCfT~i4skK3De-UEL|TO*pbLqR|>H|WaBju zN{wBKqcP45sMpIqPhNo%4)u;IZ|ojio)nc4;@jYy3W5)~wo zL)IqCy5&Sj97(9bYV+kA>+I9}K1r+j>>cH*e0?dcZ%lIL-5!0kOv-B<&dI+gQ)dpJ zg+RvCc1}k%><=;Qx%|GpQ1gN&t4HiWh^O^o@;osx55`NwF#Gd95Vb`*lxBx`f5;|6 zpMrxO@Ua6>OMS}z{~KvjrP#qkV_}Bv&9k`EZO4O z-=-mFv$l6B;4U)~2nf}xo2OO;XFp00>cWaHmf6okjC} z4t@F3w>GXz3OWX*A&5*|pjKhqY|+Vo?-kwD ztlzUb+chf@VhV_C$vDuna{WQK{hLZ9o36nN2$Q~#M_w;ws9sU9!=xvao-^P3Uc%O8 z_ky$~Kv>yU0aOJ+m;nfr0AT_k)G>)Wzcw2qU*?GN%a+pZj;Io|nT}h1SQeq0W^w6; z;vr}oK)Ch~_$z$>#DN|e1-sy}SjDRBVYBBjP(f=&P9{r{3qSKWwM83H;0W6G1_>%N zCL)v}N=ce}J2~-H?Olfm0?#9*J|FG1IqCLDh+dFh^d~U`+`Qo~O6#5Vi$3Nf^AuE6 z*)>|2ONs;2$^jOMw>npM1{$G%-v(vq<+|8KwJ4l>ERXqOTwn?pZGtbzM(0Mc^T{LCt_aiX;S`W~PT1R=nT56X=2MX6+?u z{34rnt`1i`D1*Ed>GR4=oAs$hgk9b!ap&c|W_UC6aU#`z40&Pbdy?5ba2 ztZe_>pu?b=k*jQL@`SZExbBl3KYg&t8>QT7YXg4f5^f)_YxxW6bc~ogUEz>#YqqV&d$2Vq(RN-uhoetW^n6PvF&HL;ST!^J9W|9QjYShi@g*>GZFs@P`b zMJr59oVj=-66Z`74Rx%Vzwu;Ca4>(f$s$Z9Cf3?+azfija*Z`7Cgbzv#9+;dB5pJe z;B(Epszwwu5T!{5SBrMXYZe#6yf_Y-D6RHZ*BCRHtG+^E%cAt5&HLA~Ojo z&}`k8S2;nAn3#jkWHBh$oVdSUk7`&oD^pXa=kqJpZ5HU)s-r4fnj(8zV3{Ho8V9kB zv5akvczT#gvrwMqo7b^5ShY%}Cxqomfo9v~d0KU>rio(c90^=D{hEm_&IE0&$oxa!YA z{B~~Vb=;flg*J-qWODKubRDw z>DNpSnnUb&7sTr(an8EbQEY`hFQ>IsN9FB7Os*w zIn9n)F#ndBZ2!-zP~TPWG3OTMY%+b92reotGfb+^=SXr9FX z3N$+>KTW@<zK&h21*>6+RkJaLE77d3AHI5^wnm&T`;>YPPk7vwbinOH7Q6%P%>qbA3jMUsxFY}-^p`P^Tm^Hfg{b;w{MLf|s zh$k2u%6ux0GOy!EuxgdccAe%UE2FnsE?MH3d$zatgm5MYTQdFRMk`=Wb$4a-;d$!jsV%j)}GmT{|Hlnx4BxTMp zuj6#EYL!YET4~8B(8;*Gq(kHD?Rt?{E#iFRATBVL@nR!77n(H3X>-mquj7Sa)hd-b z6uxv6XpYYU?9aQj>DGCLS1sb@#zDNwSjH=jxqn_}UdKzps#PkpXCEkg1(w=BoFbh6 zJH2iZZ!-?!?Zz_RVPrerm86VIOtRqKYF@`%z^YX$71;|?RAAQr;W)M4m0q)mD~yBq zn6ZqjjOcybB+Kn`^Ey5XR;^Mg!%mQl0<+7F!_qpR_o_vF);NfpjEoD7S#CF)*Kq?_ zwMu37l)bW7V2N_$XrJKVcmB6}-6Fni9K?5xWqik&`G3p2j&Fiht5oJs*(-kqmdKxD zbAls(jmcrpj6MO+tYLnmk}?B(ayDdHE#<|I|QpPAS3Q?P24N^SOo zv=wN`ygO!dY{LnC*4XA0$)DWGlNgR|@M`T}Tc?QM7zgoNV;R3QvOj-s(wr(&zcR1m zmtfT@m8RHfGNnNC^fcA?-8)ai5_#HEmRug%H}tRV=}(p^;?KrG{KZ(tUyW(yZu2_+ z2v)69X@&hOD+=^h$Unys^gEX9H=iaiEWCG~VdMSrJFoL{k98PV8yQy{%lNmkd8Ufx zALe!Z9jscV(hGG#UKD6f&tkz#jw4)8M#d3jv{Xgu+jvflE|>pVr-=KEgSg+A_2pjk zI{ph*ty1ZMIwlVa{2%HIF2~fD%{mX0b8`G&7zZ&hmQfn1FO^B|q!rBTVAPE%rP36Y zLZ%exchcB>G(CPF(MNE(Oj)Lgm5qZ~#aPCw#@t6Mnb)x*ShY%}6^;X0QDC|I=-Cgl zk2deTtYMuZ)-(=cEo1JZ)y?Zz4Xj$F(gXEg9uyeaN6W4!iyy=T{Un#iy4ERTJ>wwO zH>QVm%%%D*&{LWF|2;WmYs)TO|O$L3(wDwTR1ane&@L{I&Prqg?v*DPW?;~=&-mho^SdOMh;%(murYy(!U zQYphhB^d=e8JDAUw(fNH^{PcY(m06yjAiU^MCSmLoIl*hypFxWs#Pj=I8dac!07y; z+Fbg4F294kDsvRZK^$T%<1xmDs?S`7Idc^ta}_Kzd+NTjSD>MO&h#Vcl}{|_@;}z= z7IB<$5Kl5@zQ>r?@kFp{mCAgn&&pSUCGypNU)bgQ46j?nGmV3Ima&Y}jg-$BNy?Zu zX&9YM#cAesJRPiBrBadFD@6qwDtb4^rTxKJ%jLA#YZmbw;~<`EEaQ1b^v*KL{jtcr zj%R~at5nKRX(gk;=>E`lZQJQE7vg#G7Z?W-#xl+|qH|u7GG1ts7401JI-Ula%oWlhk{Sc^$6?t5&JhqxMQqfe}5G z<940i`@Cimml_B0eq$LQFrs&vNtWY#&Fgp%ShY%}43$?h3d}CY?K_=oylN4jG!EiZ z#xkxoqH|r6GCpmR_2X*uIz9nbtx_pSZI++{v+BnVo!(cxW)WXC4&oML8DBS|_cfE; zt}mO{aWh!8N~H{yTQUlaZkLYNhj%)+d(|RtGY;YoV;Mg&=5h67^E!S6R;^N*J#|^x zE3m|IrTlm7^1s{b7V!t;ApT@5(KAG6ylMkNQ%b z(az#vW98;-9d!Me@DZJt|5=BAkCA?lv5W_dlqoay94yWAb!gw~ARQr)ju6W z1)A1}Hf`-VPcI+qY3I(-CjM!G%5GUgcZw4zCRD$MJc1glo5^u)m+PYMh@WnZ-` zr(wVOl}lOjxkCGFm(J5FmMLOY;~?f5%UI2rR#rBzV+yQVrP2z=i>xTnTOt23*8*NG zFBIr9t_AGcd0ERkMXYTcL~Sf%9b;Y#Skt_YHNdJ>D!p(l$%_Ib*8;LXv>W-4&cDA_ zR$kCqiGIK4{QK^mmxoxVhz*QfLNYez^6OaNypHw2s#PjIaGc450?m1ut;<_uJbM`K znb$AFf`6+q-X5KYdDbanQ)6mxVqV9_VAU#>+8l$@R$xRs>*}7~{?Y4KZ;lCr2aS&S>%V><$)vZmM3sfMRo7eGBuxgb`Q&dQqQlPmo3uJ8lc+>d$ z!91eRH``dIh;5BrLNk`JoiXdjLi0KnfK{thTA^K#6$M7>$GBtp%`&sh_GO>W%Z}D5 zVkhGu9$_qFXCvjai%A|p4>zx42e4|DN>elpGNnL&0F7^7-a6J3b;jkhhh>V`(>RE| zjAiU?#M3?|>1lWKI(7rAR;lzv!yr!z3_XoGrr$n(pD|HuPy1V@hy#p+c$Be>M;mjW z?Pp%cBf+XwDy`5i$ch3>?X#up^gCr{nRR-<&dX!0Q^X<0K^$r<<1i!T^H`It(+8W^ zaS&LwN~I|dWSLT6xpn$oo@|eTBXtoZI!Gj zFj79tZu8zFD`VQc13E9qTBnF783%EkG25ME%;|4~^tV~22ihumP++9pS+5djv?i6TV=0;F$t@IA;^rpRL z5oa0)@oZxmi;U{ zuavt24c(?C#-oRH`CsaFi@40l_`{g_zR$dl_kvZcROY*1=BvOG`Kp`_?ehJU*Dc~| z;~=gvmhnj=<@D(!j6h7XoIYV*$5mj}DwT?~EZPzUM#@Qghjn^i^O{9`#W;ws8q2uF zh~77nFaj}2y)T2w*~2&bWh>(~AMTOId-RjX9y&#|uj6&T4s`yY=Z|0VA) z;#Rk6`c+gzR&MAy5Bq12@4T$ud0E3ah&4MeYZ)oiwN0AWsM4=yUdLRpYL!Y;Gzc=K zK=Zn+^nL$hX-|`5JssJ3TF)}vhh^kGEMplP81b~BNqSn>ypDCis#PjI(Rj#{0z*$@ z`X2*XTK1UYsLs`qUtOYL;n*c12bc7&*U=+h^6-@;SQm zvXym;XpD5Bjb+R?Qa%ezvV68QuVV|aYL!Y;G)6L|z_5JseES4+M#niT%F*k)T69sr ze{-Dk#Lm;hEW@0nkvU0Y!vJ9_wl!x85@ZUJWm=%!k_81Cy6rP<{w8Sf(c$MR`(S=xNMxw7M)U`#3tT^K`Ifig=8Xxn5%#hZ^%ZI>@|^1Hr0Q zDy`6d%8CLb$I-Iu?3&A{F#R>HCwE?suuc(=GY;bM#;iAoo7eGJuxgb`5430UpukAI zS+<9@AH>7)orfn_hkGZCgE+>R9*#Dz<0!Cdl}Zn^-SVJ7dKlMF{U8R^Po3BIQ%!u_ z=)8JD=i$lLDdKqJAWkrraiWoWa*|1Nu@2_r%Zc^%ILt5&Jhp|O>Y0<(3V(&@a&s}}J>Bh%tW`lUv6&NoS&bIt1ruxgb`9U406 zC@|E?@ zU0xJezL%@UdpWi9@-FKX@owWF-eWA|y~gx%iFqCG1glo5^g_!$ z-jUz#%Wt32dAPwkJcnUy-Y4zr&FlCKShY%}Hf^`G6=>eC{Kjqn4c+!{)^ESb%=SOC z)4s_%MSRi7BOk`*GI{vCc^#hvt5&J>K-(=33N#-a*(M!_&+791p4TnnR^uSPZ{%4I zW9I)I^E$o_R;^N*Kkc&eS73?!RlcV$S-ziF`F;owD&G%}cv1PD(RsPcIy?trY(AoG z`-OQOKL@K;snk9(wH0VCpUE%JZ`K~UZ{!Qh5bw{i)1CHjty9GBjNH;=Ob@>?ujAKX z)hd-9PD&37q=#|)_~vdOKeXS+Cf>)iofBtv9{ywW!N_>hSjNDJUSX0l4|Fp3TSlpr;RGTX1v;6T ze!}8Thex%nvzC#ep|OnGh|W4DIsRV5ypGkus#Pj=I5|j1f!X8l=X5#`@v2-iF%DuQ zV;LJ7n~!VntZ&Y>6Od~sEHiuBdu6Xc^NE@In`4#dcKI*xxht%-bu>X$0V=!?q<$YDIia!uuMf- zXelZ%>w525o!9Fe4q!%ecHJ;uC_gTbm*Dg|lvC8)qieU{$yJG~RVCUdt&=5CE; zJk^NaDM`vW*(CK&FlSa5WLB4D>e13mPk|9V9Y5!Ede8BiMLgFyi02v0INONcStePI zi_Pm;1Xit5DMQ0A83ksSW83Mx#H$wZQsW?AW-R07Ms!}8q>NXXWc|3%yp9)xRjX7A z(i%%pfm!u~>3NSy-|98FKiA0pxyCZyX+-ZGCb?a2F|XszVAU#>GMq#tqrm8P>0B3` z&gEXUh>sWtafPvrj~es1`mlK&9|EgZsmz}9gtAv)iQ`K7pWEesqt`9sdLz$i8q2uB znE8LkypHR@s#PlU=NzE?6&T4s$J8$*|0UjEn^wqHd3bFF=;-jM(XS4b$ku1TBXtyCkmNTpt&|1seZm}X-_{M>*+;<#zKregamlQfYhgPY?r8zJr-fyD;JhUd3N$xlwk~h=2kl|FXMVm63;wP8gD>ek{M9-| z{LPr!e=)D)&tTOmmD-%!q^-b+b{;=_dizK32e?b}R7)Q}RE6R3^U_ZHpVlejU&cZF z+gQebjMUZtn&h?9d(3%O801-DmT8I;piC*S+-s-58eczN)_J<$GDSRKkVOc8U9gILX2#_C2qtznX$Rxz(*Ww2_M zN>7|@bz`Tx!fK{thn&PA_Qwl7%PV>Ot zxHj+Aou|z$Q^Xd=L2PL(V=H5p&qK}Y*bJ;%rP4~I6$M7hC&z%Z+q}QZ%9u9qHJz6Q z*5Mg;BhRoKv)!3*PJbJuzs)i|aPC)eC@|9QEZf81AH>6JI}h7ir-&VlgLt?xJ#1%Q z$HTy?RVqDj-jfFf(!;oM=sz)_xt7iQaj416Iq`L!hh3~w#LmV+>}D)uS7URd&H;}w zuVW{$YL!Ya^grZ9f#!1~=K!5^U*F|_u-7f(KqJq38_PJznE5~2ypBhKRjX9yPX$;0 z3XJ5R<;^9ZCC+pIRe68DYvpfBGyS;#4V{-`tW(6XM((*bHeb*-KGD36CxBI}RC?fq zArA^PUz*v*WqbJFgLrsj=ivnF6mg=FX>4P9INrRDCxcb1RC=J#AP)+phjIJ-fo`8~ z(eHB;?{kI%6L0D~oMxROPB9MRRAU)WGtxFZJqh=KB&p&VCe6(%s*}x`1qYc0XPGuR z3}sV+<|`_yzMpz=r`vi(?#(cAZ-%jqFrxbcljf^ZIorIBv%soVDplyTNJW9>Yq>+D zqwRZhr}G-GTEr`jJY#4qSfo z-M65tKKtB}Y4HIM15bY)f2`YlW9U<3%C~kt-(?}@e~rxl8kzq!;`4n;%DB{|`KAiy z5_4vRL1u(mragKyvZp}vZ437O)3>F+VUMhmx$ku5ZtZ@XbM|lVynWCrMSRFOhz}df z_=vIjuAF?pypGGjs#PkT(1(!|1)A?W_k5;XWz~6EqO4Y2+K%h2%IY1RpO0Cqh%1de zR%zrpOCx3Vi6muQZITYJFt6isuxgb`hxBaZP=Rzf?uc3$YidQe?2jlDeD!tiot?jH ztyILPjoe0WEaNjq{9T`f5n_@mZZv6rprZVgc^#hwt5&HrN_R&_6=;5>qU?1q>2z=M zibZ_EIEXJA%lMKJ-J6q?@#Q2{e8nVnKX1--GRSl?%haVyBV7fCy4oM_>U6*E6^rk}7U9$?g1}IU`Jv5hlwNrfVW$1%}(Hw&XpX?%iIIxnd)8#l|xJU_|$i zNw^ayNfm!GN!{O?*YO*$YL!Y|x*^h4U`gHgcDj?ReVe{4f9pJmzsov*+ghoJhZzU4 zow1DVjriLk2~WnEq`z&<>sSa@ty1ZaUXJ`JFyk-BaZ_FS4IB0K*wt9ZZbrQAZjv4GN0`&;1L^d!OiOg8WJ!U(BmQ7z_K*iDvk!K@_O?_J z`xpnYud$3r8u7JX5}xui$uir^ypBD=s#Pit($kVb1!l@@e4X3yLHvEF^LLi%b2kad-6Sm2AH6mCQ((s5xH>m)Y@Pc^=j~XlaNo6&`>u^;JlTl1 z<4v;89b?Xo*dRAzvrJ2L>|{xStaIZ|*AK;yPS;!Yr)v`(2h3MZe6;iQG|Lq66yqSC zYGmf#h^JGMlyPd3Do#r>C!TK7+^JUOB=b5>1glo5v`c?bb`@xTmd%*^3-WMz=YiKS z`MT9v#zCBIEaUk`Je-rHj29%S;@l*2B21c}%fs``>v%3$wMwN2`k3;dKy%lK2ek)R zbRJ&gb&GhFaS*RImhn0x9$ssbLa#Kh;}u}lDwRTX=p>{-FQoF;81Q4A&bz#75tkV0 z=Nij+w=uJSr+FRk0IOE1%%1+JvR9zbex`4DWtaa|UYGj?jDxt+SjNYVY{%6}%J_sy zDqdku-w>p4$TAh_aY|8vPH`oHcjkeR=bB4E&NJX7%P*Dr#-N`Vd!j z{%*1oeKaF|G$Va9BmQnqLLV&&eKeEi*V@IOH>ZyV(nn*NM(KLWr~=JzQ#XBnVwpY{ z%IEJopT8gV$>g8sjJ|Fm`gBJ6bVmAgMtpud34OXGRorUQ{6RjyW=`i0q;tnIebQBx zPX(I0Q#a?>I-kQ+*tSbq^uAVIx~B8^1B(>#L*pQRWGv&y#x(MM^E$o#$PE@O(-fUu6^sID zYFzue6ModbHhueQ(jV{FcAoxd8J?9j@~o_}jJu7^pHx|XZ_afEkn0L8(+d4xSy7<* zizJpalvh3N1~NP*_> zDb#Prb)C-Y&W|}}BU8#oo*y;lcC2b%$0}geDwWyOe^mAgjBH2F8-0fSN3YTBroH?R zJg{nW&(MqN+V!26O{`PIJR`4*FgE|xCT?tA$3|e)DwQ7SGs}Yl&A&5S>U$o0H`v3- zgvA~*@t@AbfBoyeJeUM@xo=?|`rbzR-bVV~#^zpm+1#9-Hb_sKWqP51EH4T)_sw`& zc6sdeAm#Dd&dWmUaKD6c5ZfBFJQkSOF(0g2rP2faV0lm=%VS(M-?yvgTldx6#BGt< z_0M%4cCbzn4>t~CM`IZ~8L5YlNWznoNvhbzq`6;3wY_;A+ksW9RNAClESm~6JS>st z6ODnG-t>Oh!z=PEq>n5qCxV;18@<~&0N z@(dZv%$+`?a#x@)MvjLZSACiMXOHC%)-lX8EN;`vVYzGjztZ`+)LKQn-^eR2jJ)&0 z$o79Q33s8IG(3hf74I|WX*7_h(O9NKdYf{nK*Q4^?CAdb;#B8vcwRk3?v^=L{%Ys# za;xxOHzV(LGnR3s5pN$i$#Kg^&ABNRSrKvdpeF=lvZZ@9$ul2I~NV|soSAE z`r`7(@6sZ{M^^5#KV>wKmeTHsbA8ldNCgFt6k5VAU#>mgu<4k^;l}mFLvlf5Y8(^wPV} z=d*)29>3Lj`hjKWTN~+H8*{&X-<&=*NS~TzTA*Jp3ku|Z8+T4U1_SCk(*EZ2$tL!o zHvik5huf`F#2v;#+-WT1r$)-WsPX;>4v6CGSg}*S_C*+RQRVJk&Ud&5dPjVa!8lQ}a6JfmN$iTA?qlO;(^kgvfu4 zm#2*P@`KLH*48OvzLCcsjb$t}rkBRNj;+9|RVuyE*OwOsmh$pL^5+~oJfKgOmo=yi ztlRKp*+_f*qt45A)+u6pBU8^tW}c1BTB>pnGp}P?uxgb`FN_c5MS-TyDmT7dP90w^ zKkmHjY#rvFjm$k8nR_;7xje$0DQA!=XO`)O@rS%9uvEEp=k{T_Jbk>E+d40MS*M7- zjdYid^p=h3Wl!@u_5iC^sr175LtYd}FXP&~XW~Qc-GaWoGjZKjALu8YmjkR*#G{OZ zc(k#M1C1O{2PG-vV3TGY?X~^Q=~9DqsadAG&!syBn)PPtg!FFj^bYfyMLgCxh{KI# z9AQN7aY@Q}yh-XEYF@`7VAU#>dW=X^8VZc)sa?9G(|dx~U<$}6zDc*W`F&((|NX6En<<8*H;*Mdxa65=O*C|cqX}FXPVbB4OXpEDaZ&!8>T?F zVH$I5fBme}JI8Al!Ato$__;;G$UPHA^v+Gfd+$tA@A>9+oDEj3QmMztLwX8~=xKj3 zne6k`g}UY%DWh#wE&EfhF=)`7puj^10UQ(*HKn|2ERwHc~#HHfc7|23%ua$JJof zDwRSEG9;uxv+1yWq{9TVb#C#hyvM>wSJlW{D~#xT&7|2(I$t*D^%WqmuV9%v3>u`P zK(qN!NA>I1oz87uwTPb>2XVWxj600z+?j+Pm`T>JADi-!jM)dxYgeR{|QtuDubi_b9Vk}dSk%jaWn5Fl-PVXMC$@`IwydT-f`;m?4{U-@e zUYVrcKg@Y!GRPZ~S*9MN1?ed;OYirc-u+&a`-F|$C%l^43GNd%qBohOjKU=K?(?td z0D^P?S*9K%0qH3)OYaYz-W=yr#EM34{WbEvBO`h%Cn;kUlhmus>nOphRVwx9^-E8I zS$co$^j7zpMXX`uT_DCX)-s~Eb`qZWGD*GF%;|W7bUaz69=(6*DKJZq3ll!>*7ur4 zJj6JN4U9bJWkheIBxP)Dl6vcz^Wi0s4==GyJw^f2Q(%@Jli=3d+-nxGnQ;&gHPUxA zqPJC&GPX2nw$K5;sX4t_klrlI)MGRtJq4Pre8BhTlRtNQyLe6B?Pg?((#Q;@5xw1# za0jSKo-lVb=ZzI0Z>(UMdW;IBr@+YhU&lLh_ujrkye8Mqja)l7GE-A}F36j8S*9L6e(5PNqNjHAubtlUUX%Cg8VB)YBkv6`qIZHx?zShH*KsUZwMwN7 zoq5S9(CxOFe!$;4oin{^5oZ_&F>Pdq(1_0BB)sX$Bn3}5uj5%@)hd;O^zJ37z^r=0 zr3shg1zxj=7a4hs-^k3M5xtirDdR$u)H~0d4>f>%sDWkbF+z}@0<-kE3}L;Cy=D<_ zG!EiTM$XSh^xm4JjJKGi-W$y8xCpFTrBaVkfbwU;;^8C4xsXt>GA2y=* z(Inh~Xp(xDnb+}tuxgb`z1vbxfmwQ7FtOhCUbBenjDz@$k-PJZ=zTUx88@1w-lxs$ zxE8EhrBaXHytYq)S$hBK^uFaaxwdNL+NzOfw2bK8nuHl3lhpgVIS*@rJgmhs_2|t@ zPk~u_T<7uj{laS&@iXHfer_z|E+cxsN>auzO;Yct=5^c&R;^O0M{izw3e3{uijnp1 z@tQ^a-8hJU7|Zyl5xsvWDdS%zsrNVYI{pe)tx~B+uU>iz%+mXBr?=wjIp0wkc_zhJ z#!5!?R!+j1$t3kk^Ew7#)hd;G^zNmnz$`s3YI*xM@S42;$;kVkjGPyY=xv;YFY}qC z-g@So7eLMnEK~1isi(k*p5`?E*XeERHF-Y4$ooKzWo%>2e(VBsu5*E0=VF<;)0fxQ zD6m97R{3-7&D*oL*X0_Lkuk85=Yoxy{~qRb><(6~Qkg$}c;&CaQu%Xb%lRMfb&EL6 z$m6(1p3gOA_xMnAMwK9=N|u>FeR$=sK;J!f`z!wsborm;bs6s&8QvLb=Z)DdKHi*R z9>_3{W#&&`UimA~cZYT%MCvWSS)+yrI zMn1`7c(?Sn)y0)Pn*|q23WO9r71f8GNnMX(5LPP@$|;Ao_Ld)J)LbC?zJ~^ zJCTw1AR6)X0+aM~mO1Z11bGi4%k;z`L7o&CdKxn~cJcUm7cRTm(|MNR9A@MkX5`&8 z#+-L~p*dH#K(21FOe>5ZWJQ6c=773=Hr!=zS*mzu>JOKs?B%7_DdJ_uLA>0^Q_jXL zmY0~N~IUZ7V@G%Uo12Gs+*4*xj*P_OBGCCf4D4WFR!sq5wA54;&n!zPB5~s zE;7jidbN2SuL7%9sWim^M5Ywz3#hNtOM809SWjGHv!{zKQ^cE%jL(f_yw!-Ox0$4; zH<{P*MzCs?N>2<@sA7&{<+W^AcIwraR2G^#Rb&8E`evo-VOW5$`e%;@!qF z-eYVYro-!<=G;dHavvGXw8HpBRupKq&%=v-me)#FvX^1?dAF?W&{=tS{#af#zrd9* zdwIWgcweTG`2}OMqdZ({UdQ{us#PjIFs6|Q1)4|9c*u9u*u&7mdzWFsb$DMqa3Ree zK4P6BK59(u51aE$JIFKbEK{5DjkFaQ(awFro8*?<7ne$X=dJ*DvD1EEaBa@oS6Zit zj~fSZm61E_jLohphmV=paRpelN~IUZKJubKv-?arq!+G(Ea~MkdD)}$vgZ$efI^*-KtNXUKkh2ivrC)GhW7B*ZZK%Jd9ev%K6dP{#fR+ zjLYRl>u?R!$Td(S*FcRNH#eE&adU$?7ehfVhO$gk44!04f#Gp8&eMm-dgAJUJ>6`X zBED=K#8-@EeAS4jTTIf^m(1(J$-bnC$3c3(>E={^-m+$KaKQ$ zjd;4%Bt3n@oa>(;*FRaNCkA8kq`>k$T`|@Z7eegm2bSUbr;+QQM(!;%;^{V%^z?mm zE{K9$5M`O37_iBc0?YSw0A&db-2Bj@!YiRVqC( zsFNoJmhb7Rv7WdNWKX}g4BtpIa;enFH`0uF`n^ed`jt7~NCWvs8q4&=z)zkOSiYyL z$9m#&h&}zuGQ3a8$h4l3Sv@13{$`S%?l$K&N+7RMVws*89Lkdd%lGujv7XlLJpI!$ zyjQ@;5Xi`T1&nz5uSt5k$DH>HfV@|LWqM)&DNhQ__QVyQS$)-O&JTHa)rxj zu4Rf?%{YkFjb*H1#M7E4>1kDSZUP0l36y1eVz4St3Jg7s=|A7NRCSu^vvM)Sp4PEU z5$hTUv7WJv^^IALYV$hQ2CG)7w8A)6Rut%~(S!6^Kev>bz8-DVdD+N1e9z3t_sooZ z&&){qY-*CGHZG( zK0rS3!7@EDsFo)Mmhb82v7Y92o_4Yf?<6)3VrOF+yBP7bt4Vs=(VVGYkf~pm>4|~3 zJSnhzPhT19iOXLur#&rG#9l^TOJ?M)WJWygYm%P!FlS-{WMYD4dZO`>Ck2-8>6Wpc zxTa=L2Uvz{^G2@C8@V=b#M410>1ls+F3E#jl4qHom?V%V1(xsW>tj7VwDWYRWtdkn z@>vffZ#gsK=?IhbbclH!j{&Pzsr1AofjlX&d{5sT>xoN>E~ld`Q^e6mzO`&D|m7bU+kS7I}@9EoPJ#Eo>da`ABf3T5heDIBHw(LBeVj12wY~)?TM&31S#M5ae>FH#1-m(DlmIapSsZ37_ z3_UG-9Q!>v8Z(aN>X7%{>6YO-hLP(S#vDsN%beE`gS>{AWm;g4K*gfK$XIgO9)9p3 z9_SR#*pg@ja$K8)~2L^OM(!&0JBolkk^|}R}hYPJ! z#7m5Wc&V|Bml>&}FHgcunMt#$9%Xp3c^wykRjX9GW41)@6d0N3mL5}_-sabMP3FFg z%zYV|`!b?;Q4+qhXp(xbHfItHWD<;J>M=7SJq2dzF|%a7H+#(@-eTl3ma&Yt8PR)t z622I2l6n`L*YPH>YL!YoYMS&E7}0wc+s6!+_1^6@i+GQ55brgX@jfGZmnJFW{Yk30 z%%pjgdf@Leuj3N1YL!Z1reP$kKyzT<&sVuJ31;07dqv)VXyo#lv5d=&=w6YejE|Y* zc7Djbjt_!Wt5nKSn_|_6+`O53%G{l|@2g&ud%KO?+im3DZX*&0{>EQGZwak>=BSKk=GH{Mg7;fU%6*jp*Hxg!^QYRB@+CbBKh0WM0P)!Kzg% zg_)v}uma6tqx+F*N9*4075VOqk=uoh+&^qY_peFH_?t=Y$3L3a@dvPKl}b5gUnHl% zto_KurS<;lH5s!S8M7K0vl`L+Z;~?ZHA%gD%o)6b3|?8L9y2S_Q(%_fPMzKZUbBb^ zZf?{4Z7UeLZ`p_*?{?-7b9v8&N$TD2wfGVZ$d_nXrXI5<(o>Mb;9paU|{VVQc&Xh=_i zS$ey5di!}z-W6eFSYYH`5k~Y5NW!}!Oj2)e^E&ndt5&JhV^&0Z3XJIKxMyD4+xG;o zS;XUwgE-Py#!*J}j!sg>F-fX;qDeMzk2B}$GgC)RVwwE zagd$@v-G%z;O+aA*W|lrM!tJyM>IwJq1Sebp4%4MeE(}HTmAM zk<*`%w=Wsg`^ z#xnk7WZVC2(rmA;>hH~Y@Eqj9bCzj}LBC8XFdSEnyXNwrv7YwtJpJ7=Mf}4!hzdR|hd{6g|^~4md%jsUr@Z7wS=jM%N+;7Cw119O| zzvgxP2drA9(i4Mzc~W5LDWB7$$Ljg$(f8opCs&W9XT#df;qF?^^yMDi`6|}RbL7A{ zh|*X_WyIHU!)>=NteUJvR#t!+uTbndblEH_X^A=i=x6raogIlLT z1)3*YaD3gGBX`Sex9I4*%(k%#bHhgFhKM&^c%%ncjyw5v&a+R>c3VUW3Dmg$Mf1bI?m`JPrD>xt&V zp7yj1bHhgFhKRvqh!rpKNRuncp*;Zwr$a5n+^~_kVIygbw zF}0^tEW_Nek-1?bbHheFoo14rPBv$57-VjkWqM+AM4l8FdK!OjURSQhoSSKo8(F7S?0_fgUlSWOoPm($e;qtJvXmEw#=T;d3&B!ia5*2 zJJgK4L(Pb{b4;?#o@-vmbHJ)qDlIY5B1;Mk%WPb~Z-cR(I9<8C&b18R-!n37GM4co zBc9GTNl#&3#|yx!RVqC(86!^$EZ@^cV?A+dw5OL?hHtzW`NoTpZ@d`s^a_*obfGz) zb^-ac3(NGxgpE8YuzXLOjP=B6+MZrx8RmVB%=;Rd_ch|_B9rv=YIBBtAj3YE>4`}l zc~W5co;DrpiBrBkU2GZdc{Fm*qmg?ajd*&SNqTydIrlt*-1EpXJu&ekPYNvG(?iF4 zIFJ&3-24b~^CQdj#N?1XDKPYu*D11JHSFnaAxF#T zQ|Vd>Jsy|SWtQPt4I|HL7_;Z}esi9!1bMcSWm?!ZEhvyZr*YRQ8Vu+<#WwwQ3KNeR zH2yrk^KiL!xcAY>`&o=-Tw!ds(opXs=5>4+tXieg3v)>-4h5R6`QdzzKeIem z?wEy=I|UjPx_1j`zUZV*?+0F!d*zJWD`(_hIU{ddxyePl4vt zCG=2t9sjM@EZfP^}-e)6ve@wz#?MzbdH|Bgj5ajEDEK`qJDCsFMqNisFuxY)& zdQHB6V;scajb;49h~7OWIc@V7b3Tj%@?jj7DZ}KGWEAM8ZD#7pDV@%}UbTq-7@5vD z^3^{hI`=0j<35wzu78`?@h`Ayl}bTopCqWjtnH#yy|jJ^dy~}J#+=tjgSm`ht@8RaWff(cs z#4Iyk=7p560!!qp{eX_k=c!(o@9`OV{>NCxDMrfYWRpA*oM>Lh31HPKl|oGNNJxSH zM9|M`oZjgy_Nv^QVC3EeBX4&wqH~r>?uSL@+^hg{vjWT1IVg1$7~K!ro-;a~)~gor z0^=aUSjM?VbY5tZI_H=(?G7^S&N6kFxY70~Fk5H3)49N_7V%;uub4BI@e(6CFEvS> z^UZm`1IYUwSf&n>KGIQOw$7QI&MUnt?-n-lZee2?uQ8(YT9edyg*ji`0Ququ%haKB zA{_;0>pZ*Dd4pHwIaMRisT#|;*oe-XO;YC~b6#!-@^U+tsl#NEbQBoX(fMvsr}K8N zTEshygLtR0j7yB@yekQBH8yFeKvVHH^E%!NR;^Mg$PADK6=>KqBj?w}o!$q$W)YVf z2l0Mm8J8K+`%scHK4_BX*Y}z8Zak28@n51xC&bD$nP3df)V#MSRW3dd$j5Pk|9V9beDu^nUI&xsTq+ee_12hc%-23zMuTcbd~}0O>Zc zOc^FxB%{D+J(12?ozCCAY7u`ma@)DFjC+je{KF)5{$kE~9OOLCGIf|dk&XhhbeuAV;OUd=u{@DGilCLImlEw%hX{)L^=x0)_H!Xv#wWVuGz?3vypp_jp(dr zk~(Xf^KmnfkDIYf9VR)XqrhyPb2^=^y(;HbBj;6P84HZ)%r{A$EzRrL0<2o4Qin+k z=_oK;r|ooh_o_wgYUFhX#xnLaqO*rd>g-}($If8YDwR4+KuAY{**Y)ibPn~ZMLfpH zCjyK-|7t|%Fq70d*u0K|z^YX$b(mC;jsmlFqSHCSs}}KOBd^mpmT{61ofAz`=Qwlb zvOwmtSf&o+J?SVgs-xre+)ihaS1n@NIEXWiyzjt>&U2FR)T>Fhe`lE2aXMJFN~IvP z01{MSr2SLBp_*!7}q_Y_9wj7|B29j9x_kdKc<&M16!tken7hg54_n>JSi~r zH0C*xV`OQG%S!HZt8Txn^Ylf_6!9e^pBFGP@;ByG(HG3?xCyLUrP2z+bXifLpDLQE zM@#RsCygzimv>&iW}PCwZXConjAeY&NcnurB+KU(b58Fdr+1cVib(*OQebxZyaJsi zo+Ey;EYXU%8gaCDeJhpED?3l$wM-G;GY;bW#xj0jY&e9c;#TuIz5`aRQfYds}siWt58}r zi;?*kV|w|GIkPPwvn?#s3v&-D7X?PV^LwxBy!_cZ zMf}CcEtkfIW@#$^WM0SJVAU#>9+;Pq2L&3A%dVc}v)=YFJV88d85Vp@>sjyDcOLGs z4(}B+ruIL~d21NRTfqX9Qa!ca<^?JO)qH0c)`jQiz8UyQixv10r zuXT#J*Eop(8JQt6<~-+r%&1k59S_)xQt5@s43&!lBlTj;@pAfjFK_I;tY{tXB{gy{sgZk0jp=2MId_hN z+&RiJy)Zu_FA6N*%k+3JZ|c0PW}PBdH}YOyV;O52)5~1*I#va%R;l#DoQk|CuzWAi z9`EJi&dWO1;W4jmlyeP1IFN?=}d2{DwBkS;-qLJHQ zjXbAlOfMUn^LQf2 zd0J>0?%y?X|E`hyca3=3&LsPJ3(R@p5XcLMSf(d>xALUG^80zum#1a+^WNTh+R-w+ zqt3`X>WsXj&WNX7OtR1LaPvBL0IOE1^h8fvo)j4N8M2&c=4b7@cC4p&be{IG4DU-a z^34q+-`p_bX&;mHw7WT<+5q{~2FvtB2VR~O7+xwZ<@kp?0l}anjGs%hqBXxU>mluxra!KdqG1e*K5aS>YHI{LhF})mY&M+5b zn9DM~FkF!r1(xsSMdQ7^tMl?W>oDhRv91d2kQt5?*MP3wGzLyKe zdwF-~VN5TloAc&IkT*B7OfL*;Vo@eCpg0YOVjp^k%=5;Ivt5&J>LZd1#3XFIecfNYH%q;VK_5RMw3#?N_ z73(V^{AFNuX(gO1VvY^07e|Xs*UjHB-KG1o1g?0G8xRLLR8`Hzf&Fgp>ShY%} z2j=VKL4owJ@no~1uKVwnI9W7rLRxn|Y~Nq$H|c+O(ai7O%I_uz&D#ZK^G?CsLG!L| z?H&5HO~~%yeZYjkj(xy{z)pR@q!%0-dtaCJBl_Q&^uN1m#@GjBWzc*`P&OYCVC-^Z z*?bJt=Iz|)VnSe-K43zC(MWzG#Du_ZeZYhOw^rmYOnN8XEff^xC!{%Ot`U^Yr#j_5 z`n62Rh8r(38xsP1^#K#|y|={lZR+UF9n3A8|B;-WTQ#3i#&hR1HyBrJK5Ja5`Mhze z`2whI-Mi1vgup(1z=Qx}ytH6K;E{d6gus4%zywcoDreqoItRRtt=$a5)_z6eWpj%? z44SVS%jTQLs`)l3Py6@znGiUj510^mR39)Q@aR5ZLg2tYVA7ZW(K9vSd(s>3F{?jXnpm>#0J%T`C<&6z8JtxH9t>Z+fHs%ExNpy_E>*o zv_E8R#jUV#&N_=3YEI2pj@LNHzNCi7=C8XVdVF6ZCjIYjo!KM5=XdOpKMKm`PXdn3 zzZlErZ^o+m2dFx7WS^S}fus6>34x>gfC+&o^Z^qBPwWFG1dizgCRp^r#dhl+f3oqv z$zpCfx0*X=?uy;Pwo>zNo11F>Yh1bcpK+Duej%S$8+el@1#?$z2F5{C8Rs@Dg4!f5 z(q$bqA@HO=U_#)yK43!N$$h|t!0~;+gun@Xz=XhweZYjkNqxYCz*G8w$;1ZCwai^% zV&cQv_dc{In+MpiZB{>*q5agN-%%SDGq9dIXR=v=P3hz13d49g65o0x{vYyLxbkEp zoZd<0(cIgGgwq>1bYB+|PVeoI3}{8+G?SaGDD8ziBu+E9o|;;)dNs``cxvT23#&QP z>+tt#nvw3*Hov`ds#-{bA?DQWlTD#D$xJx?1QwHx3@ap@-pZjlT}U`Rj|Io%3ajhb zy<%d+TPCJdIr>^XJmajYbqCFAg0fjdK&@WOST;4NUC(u_-1Q~|PVNIH1WxG#CIn9H z111EX)(1>fXN!rK%M|}6n^jQi_so7HdtmjE_@N{5HAmuHt(w`xbBS+q^7iYV%TRb~ z5kvhmH#zxLRL2z-GY(Z1&=1yq*gEGj1kAs$JMw3?b#|ZPA^cuN@buok$*Ggg`XdhL zqIC|Ik;5ik4yW}wn6L{r9?5~KI6hv$KA=_WWBW4;ZLw@_&EoTN}P$y+!x3#q$@br)>7&SJ)QIw2a?OISZa zXR&LSIExMI!ycHXKJ3+P<#YS3G@;<0*9S~)o@{pKmwmzUQR11(x93Rw(KGR76zG1P z)LDJbCfK74IE7Ap)a~&jN3uI=CcDW-akYlRX@-&68Zw6KTEl~gFRL}2-?eEACpJ8A z$u@1cs}E#d47X?Z&P=E*kLC~kHuH6<*@x_~G!Ny6l;&f*jGo_TWJ1p8^Z}D$1s~>c zWae;mm&1qq6->zCBYnU`$LDJ)GyR)v9?wd>&C%oYsF8R(V?Ted<5TM`dNY4m`uJ3| zKR%U>elA?ZOKq0?xiWS%e?GJ0ho_7uu^xrA#i0MFu}pGWZsv|3yOXRPBzCASCb>0{zE#*7E|Y$$%#Xafvfs}34u@a z0TTlBYqJzg2wc+#ObC3k510`6R39)QKpT*Gm=O4MA26Y!FUH`~jNePKHmpS2;9^MObC3T z510`6VjnPZ{bJnbe|`V+HCXP;|KgE)s<`T@aQb8xlg&k4NI3mj7BhRPKU)^f+w{vp z^A17TT#`R(zuEgR!PvL@fC+(b_W_ejCY!gis`Q1^hiNF@yuAwvrys4sdcXIF`tRd! z=)Yf3HXi`AKfcrFZbIPJK43!NyM4f<&v)2JekAj~yvy)={m)HU|NDKwg!PZt!2NtC z6PgoXc=@<;-~j%Fv23pCvid>4rU_a7un(9J_)#A)dE8`kHLI#@gyVL^b&?r0*9*$# zMnDDe<31}B0=M-669PZ!119W<&#G2gb-{LMGzg!!9q8&_;@?biQk zzrG2Ue%1#}2>iScm^`CDWWGfPDiPuI8l#*4x0zP^hY}k!KNghDPXz4yJB(%XQ)AWq z+&HJX3sfonq8BtFa91BNA@IvSU_#(meZYjkuls-rf#38269T{O111ul-DUr+d<~l4 zceWUpW-D$&4!`dMChWZ5@XLPZ-MIA5qs7s=ZGX2s>Njkd=e9qm&R+#(^LGKIbdRxY z{$;G1{}|^q_ZnAh?gLd?f9PG95cp#sFd=YvA21>Cr#@gp;Lm-)guq|=fC+)W_5l+D zf9nG#F1~d%J4elH*3H?uNgXC-GZ3&rm9cDA%(~M4z0bjfEdS95ObFc52TTb3vk#c` zdu-V5ts;p*GgnYHt9L^G>en(Mn}7EK69WI~119XB4Ypfh;xO=X_lZ{~BUN?b^!+OT zW>tlDNSx;CL3W3kvhTXXzvNfT?hbeT;jJb%+;65o?0L;|D7kK4vnF>oU|j(vw?3#{ z{omfE34we2fC+*B^#Kza$#vut>%t|E(qSXDv1A6#yiVo5J`WQzy}u8b^re2)O#R(F z*WXf5HjMz&^NnS*5R~}``dmy1OsvoyPbLIb=mRDMCi{R1fuawXXtI$D6gd)P7IUiE zR$6P%_hjQ2IRIzoIX7lsUg0sG!XCV7u94}-oNK(nqcmm6tW;*mkZ`KmJ~JFYv}D?q zK_!!kEC&NEnSU7S9*6G7tg9d9ppmhqexC`(mRcg6v zp_657<6~0s&`xo!Ucdy!wflexiU*J6JlvMa=8%#2gDO5Q6_4x`>t4VF#dZ3CNq=D8 zI&)w?G1os-PZ@0uSi}CImL<111DE z>;opJPBu?Kt*>ef>PB|(>*eFvnU2dvoxP`Z_BQHsGU+#V*dcmm_q&bz-awJ#UZLztQW z+mZdskGTe>zvYfvZPGu<#7Yb1uCw^6+-nByr_artF+R~NUMFOA^|_>E{%H!c>G&07T2jkg)g<{hBw!j64enGo2i z510^mL?19AuyY?UA+SpyFzKD-ad9Nuq<>wN9W?JwKkx1QT-y1$%vd!aG|p*0Y+SMV zsIX|RaB`*QO5;>>6)5|=_R=N;onQ_UZ#B1orL&CIt5B z111Fa?E@wR9@z&>*ejRgxNqV{C%xW7TzxU&^t-bAo@0(-EB2{wYq_M7$C$}*rw<#1 z>-i-+{YF9Ad``elzsXoOUo=+D&Bi&+S3s5G{(ZhC1Pc7f-b0k9@6|sCD!#NAK4$g8o#M8$uZBd ztFRAO^(Ajob~;L#Wg0n3FPdq=@6fIoG(Q!T&Cdnwu)8FK{UiD!Ga>M}K43!N@qNIA zz>$5xL|gEMeha>+E%=qPUZU}%LqJpXl-wF^i`t>9y)F9FOgp4sjI={v(x$Du*q|-^ z(h^&^Xl4t4uWjOryMQb1-IhJEw`qd!WBPyzfn)oCiF_TThJ=5U&F{#iKbX$IR^K)K z!$_QCWF~(1Nc{Yn-_Pvl;i%{D{1CJE04o0{^&U(J9M=a-s3%A1mrrs3#MkSaqm=`@ z@IPG^Pwv++VU4HeAF|HUFnGK_Xztf~Wiz1}F;<@x7R|uPvZ+8BI=;`%gun@Xz=Xhw zeZYjkNqxYCz*G8w3B9j^%=^-$gVp!GRCjLf>&}-|cUF>%2kRx#np2f-^73{s-ESJX zrp9TDV?@8ps>HZQKhFf?9<7xL#y!KXl*c_^$r@)^Z?R$h1l7Nrm#BZLFVD*A(w}>Z zX0A$e(5x;fn>7U#_1ea=S;ts4>lx=X4>7LTY-n7m+1NPM%rmasY-U`g+1&X5SbGa_ zJBlo7G`THTqCh$X2s*$NNwDB9!QEX385}O$00U_Xg3SyLK?Zjj7&N#uxVt-pySu%$ z*6w}IxpK(=zxVQe>9u;@uG*`lyQ{0~oHHoQ31l1XWg9xjML=yX8@!k#XOK-kL#5eQu_h(H+cf(V4YT@dl>V*Pv>#j@i^ovNbm z4O~4=Y}nek>si3lh*G3s>3w%~OjYyZu}cfv~>|A`m9HAi^&EkayvS z*@YKn*3DK#p$DM*qD_mtw)wunZv!%T>ic$jc&v!cBBR1j4~ChL;P?Nq(9UJ zk>2T7xAbdP=@0Y6MUeh*7eqXLy?NKQ^y?F{upt4>yK$A>-#xVmvipY%A`t%Rf(V2o zTo7UNKI+Z;7@K!fX5H=Xh6YD#uEMRaZ{z(9BMh`B|7cB!u|1Em9gXcDw>Lq~N@^pJW!WXzislYgznuxpjgBu^!RY)*7R1j0!!h_Ei6_PTh6b+J2h>Q?O#P}c(_|#)caVMm1S=$%f1BkvHj=-j!$*RA`nh< zK?K6-E{H%l!vztv8{g}%*uP)DTj)9Lg`7KP-hRN;{lasw*g9V_d~_>zo@Y%|E0!)q zQF^RcQnDFpsm3;@s@5?v)eH^mnD7Sp{~*@0y<;iaAID;gyKZrH3wO6^6Z1^9R zi>Zb;lnd=*qn~;sMg&KPK8TQog9&KFLxF6>GrdJbAe`lb2!yj;5P@)x3nIM({=)(u zVF8b-0v=NZJl9i;AiMKi5P@*M3nCCMa6yEp#tZBad~$dZBpk=A|7h&A0cvSfSC_Vb z*YYU+mcA8-9#KUa|V<)Dv9gLlr*mg8_dI=sdS{IBkn9hLb)+2sy={?~s zwduBBG?>l9NvfaLfKwC=(-uw@wujSMC=~uuFT4nZ%UlqF@E;dMAYAT(NbLpUiO7+U z!^F=0E&Ff*5pP1O)#o@*;35y_2wTH>c363ZXDNahSGpjgHBFo1e7;TR@l{M6&c@cq zzL%lO{7K?m=zNt!?0gxOr*)pMfY>_EhoLull~cXT8QX8xF7;yvI`;*u604g=47@(9q?aExCoKF z^fxt>{*ng0{?4)`{HH;`zv1{R8uX`YdhI;#sulcN9EgHnPrwHf04(TrZc+pSo)WC& zA`meAGC>61eSO;PYRkzD@jt4?ZwWU*XDbprU-edet=5WnLhrj3ZOv`(^=b8c@NGzo zqTB&s88DzQhawPgw>LoqGyk{ZNU!X14G*WcH|W3B%-1S!Qmyjtv55B(vhV-_z2+ex z4czSUL?GaHWd=kb;QC>L2n3u6CWye|-N>sii}yC@9c_M=&|;JM`Nu0$Xda6o!mHxz zsC-=&-v9|u^0;mThGEElR9E1(alCeiu6_KYUDPmM<1x0Q@!Ffn4_7z=uW48<(=g*w z?}E=EB--r-LKa@CjQ-b+ilA=pc0mNfJuZl#=(<*N%@p4W^IuESbIsIi41(+B8^ZSR zmarqdO-#eP+8q$y7Y+;`3I~OcfoxJt*jVj}K)_^+2_g{id~SjW1U#pkAOhh*7epXD zrZ4a}RLEBV z794|mb07i%gL@N1Q2D*q5PioSa60@T%)(DqR!@0K5oCoCt7Rnu0V7uvMApOS1dxo~hKhEah#yz4fL2=_(Ow;n!K587g7g?nm>|Lv z=`BBz{>Kw(024NQu3by#)F#^Q#O*NsZUvuf@6>t41MF17b1jdv9X!|aaNE&y?b~*e z2}X<;@La>%u|ChWp;oG?30W9c6%LmGD~kvUhf9G8A`oyAn;_!rF7DE`ek$a`)**IY z%K=K5h7vCG#LjnMQ8(*%LF{I||Nqsx3*D>hEjS%AWecLd&69|?VEwomtK-ldcAN-~ z(-h(IK6=5pg;RvcvHMJ5J)_yHj8MClkqDdoJ(Nh-&i6sWoII{slMl!E-lsD5wkFqe zDBB#DxIdiB;PDM@{sDsF!YUYHz&3xjNt=&`Eu6}86Y!ycsxU}xg%Lq@e&~V-gpXVh z@%nwbcK2Jr@?FUCU4($seKBDcmJsG)DIiK={-J5eT2TAOhiY7epX@ z;ev=;tlwIeqlq+(BV=L4%F36XN(9+_<$?%=uU!yfOQTY(rBN9jVP)pjtfdcQ>vo-_ z?b%gJ+cleQjk_1xn#a`6Zys7ZznP+;tx;QSYrzNuwl!96_IZAdWv;Tkh1ZDNXbvO5@KK|c5L!n== zas(p`rZZq2VU22^b+jpLqf=~7$ikK^#60>)Q`njuwSiBk*tsDBp}z|v5L#Rinf}0p z`!lsn6zbv>36Hr=YF^d z(&OVaRuqxm>G!nscx+Y4+x&15q;GdY#M9TWjr&#!JN!5i9M||6$^+5P{O6b4+Q*eA zFgljI9w2NB2MXK6L}5obL^vQECL9>>K#k)Eg?|bMha-hU!qLK^;aK5R;dtTHVUlo~ za1xLWJHTCvKp5zP2!uf{h(H+Zf(V2mE{H%F>VgOae0a&~Tm-_@E{H&w#sv`w!(0%7 zP`DrhVYmw-5TsIQO)#Ci6oD|k3nCC^a6!boTs`0O zEZ++(-;1hzM|vs|WHX}+A`oVBK?Dz1=OU?}q*vpz>r)NqH|Y1)be_CDSIl67LWRO- z&8)>mYQ4Yv=QnzMRR2n(W#7MA*cK)W+rxFjj⩔K)^HrjvE+m5e^Es2?vKefUMBj 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 E0^N)Anf6ogEO&;C0=c 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

!SB?9@1=RQj`c5x7LQyqRAf> zl#`~zq$%9-`lG_{e+&qJR5UI0KPnOnlRqlfu3y``Ef#LKe!Jf7+(K4LxrN&epCGlt z!tILQBe3vH!IGjxu((|@fF^%bn1$Q*ZjZ`si*?(E8^WGWwXNJF{zpYolDEGqhL2IM z7}UnAdmjs@gnzY9>G^z+ww_ka_WNRf>wv4dV(FvWTh+OzTtzp7E%-S82pKReRWkg+ zVbwIz=;Hdt-d(YD{rdI2Bfatb!QqWxKOC4v);;TsUZ2M69h*!*u(-Y$K$AZ>tnur6 zN1<|Ev2I;x0L=))GXBA_{krWp?NY4UzJIi?j^-96MvHxSu`ik5^Agnt$8R7X!Ra3y zF7u}j^`w7rSeqkQum0eOMJD{gk#`tH!XF%VxA;~{=qD~&J^lv=7gn#PAE&%_Pq)-c z`5zq4urmG!#~3q{>tY+?9~``zPR7Q;U($dGrgZ6M{^*#{&F`|2w!Ch3gPWb5zMkG8 zJO;=|{QXu4(dYl+WK=FBk7k`k(y0#q%P0H@{-;6OudT97?27`y`QoIq$EB=?d9% zuKxdAnDgT4nDfahJqmL^CE<6*oKH;(C79DU6@P|=dJI1kQu3n>Fp)I@CI(h;(g7x> zRU8MH)LU^JU_MQp6kwuxVM#Z`76zDDpCHK!VA6zyz2yPsvt)oeG|RdJOm2iWz;yk{x&TZbGyu%!KnG7$3c!411egc_n9u}ZQmzJ=cE<~} z`TdUp0bn*Qbby&y*a2X=h1(6EE49Hw0nA55fQbNr2~7Z|S(pM$zaes4;Z*>WyaUXW zl+&Rc$il|rC&MY>rvTG_w*V&GCcr#ZyZ|t*nl8u#fa#52KRk{4y?X>OmmzT6f9FekLo0p?}hLIKRKEvx}%KGg7H0GMQJfN4#! zdocr;kzE7K3SVl9!tkZ$(ldPd^?)y5(7=~B3Hb7U4Sabu;Y0A{%|)B|@+9$Itp5qV zmG9n;GvZGca)H=e#f_h4_C1_R}3Wy|Al3V3dl3O*VBwr>gf}P1q1cquG z(_w&4Yr^ghdv9=avl8JI(81|SS&48wpy3Fcl0(2s1ZaZkC|9pUuscwg&hJMI2$-&E zp<}wl!UWT8zkYk4G-UQLnKX0@*A8DPwZTHIM0hk7zE#g5oueWFD-oaxrZWrEl?Xm$ zb6eqsl?Y_(l?b)r8tN~XpjwIWI!)myZ#b^&-s`VY`GDuFj%J`AcYusHd~tZT%7=z) zg~ACm+!rtw%7&DXW zVjCi!+fx&UVQd7XV|u!DF<5Rw7dz5fUKhKu&5myDy*|lx0n4Ewu29H3fjR=xAzLFI zYl=NUgmmJk5Ru(+?{yudVDo4z8aU^T!WrP1&x$tj%nrgTyXk*|XLyoj?`Xd#`Kt`i zyjmjRnR7$}o~ho^o~OEhHXYBrRwYN_nb#%!u6U+=eNsq&ht%(9;WMnE{Uf&3Ng57) z-lX4pD7_g{@}r(U2kY2{Tl5nXMSI{gD)tWQu+1%_xs!rt;==q)lpopCOt#s7SA1^*4v?j*C+*QJ%)JhN82C(YC#jIMY$Sk z*&Q#a<@Y}Z1gO=t(4kghVF#$?7Oow>Lu!MCf?AKoLOXC0wQ9q4BfU+63Tg#-Wl(F<7V+;?nE&i4Z*9pZZNXz zb%V$Fd&*nsZzJAQHqYn#TEJJ&Z{Vu~g^$2j_Y`g7t5=J6p8hBJipN*7{?O0o^ZBCl zB@(`Rk4R&_s5+l7+$ZDai{7h}qwv-H5`I^F<)G<-?fD{PP0)lP6-08- zgb5YL=ZoGiP70CGv#|6H!GKEvk^TjWSRO>e)&vVx5D9}5_Lhf8ACdub{f8kXKUxq8 z=FAX@!ZSdmSS*7`4R$~)Id=p^`hbiG5Q*$4h*axnLZp_US?Meg=|Wi%>`dm17^-a$ zg8@2b2D>}V7jbg~Vm<~Pyjv+C<_QtRAOOTb6A(kW8pPNgC=lcKBL)Nz)3ne*Ok!aN z5aSlE9e!MDgM|VyWdtz@05Q-6#F&LCi18tt+X^p$7_v2psSVdq|A++31u>scnE+x; zZruEkes7WC7gU*A@kL0ff&AB6j_h)592;O8z1@Br% zGkCWI%}Qqp-d~ax?cmKgXa{c$&}m56-6420stMj-g$^!KO7I>MEqu2M1O#tr61*u_ z2X7n93f?}nF(3r*riC876AL>8Z?|ym@M}^VEL8A*A{L&Zn@w0Cc)b*OoO)% z+1yrmA$XImgLiGXhWeK!sDk&TS%VCS7ekr1#k zBLr;p6R@ow57=C&fNi@~d_{R3cw?!R@__9OE8_usjG4)Gu?;a`w|A>BJzct(fIXp$ zJzy`di{02}M>jq@o#eU@u+b0$cHRlp5dt>ZI$&E<>_MS`9e1mU?E16Q`n%Kl@ZIUL zjqgr-ikrmjpNQ&CuGdGOtXRst!?~i(d56C+N1>RU%scSVO1?W?F&AU@HziWc{;tT_ znEh=D$HwgMNvKD__aP-e+A$khGiIYRkJ;Z5Cym*ZT3CAXxR`AUF0+{Z168J0{18&| zqZPAZ&K$ETJVVTm#j=>)V2ALTb4SGNOJqcd*>{>@NX14^*N@t1LKav&gn9Vq7 z$7~EJN@QJPHlv!D{Zr`RTS|%9PmVDg0Wlkz#B9pdG1~^SVzv)$3{F&4S3l+1U5@R+3Vm361*=AuHvwg_sw!#ZBn`|AkYr{3ve=I?lnEi8I7h<;Q z>heG*W_tq{hrdwy&_KoPr^c9#fS3(UVzxCfjoBDll%!o^Hs5-tYY?0lrKt8t(3=XXIL4J z*<;L1u8VD$6thiFmo6q|Pv~Ng*~{xjbs=V>A;#>y6R0D^Y_fICwx-yF zB8%CPy~SfT53M9-ubTUU;{DmS7UP!^=}d%s73Hs$E6U$k`ddqXr&J%e{a&PhuI*7^ z+wilY04D%&GJ+ida3eba08Kg>;SZ3(uat5!!qaq*ay|-Nos0lU_MWGRl(6@|PDUt2 z#+-~`x=pD*OCRv6$2RSX?1kP?+-c{dVAXu@iCh`aiE%&tQ6l%lpOw>*D3<=8rGHf_ zKm1Lk|JJE~K$HCNcgWyRO7X+fgCF3^50JzU6zSv#(``yKKSXvnKVVhj2R|pq{qPTo z{EUo$DOZ&Lwsf;ndEh@H{kKi^06OG>xhvvZ4*6gKGANYd zgJ%XGz?Bam$zB~4kq_8cck)>|rrVUt2l1?&$nJVp4t6DH<@h-YVIHD-G zQm!bsR;t!-Bhr7nwf;%6(>92Ca%lZiM8hd5lveAvg$&jxrS;DWt%s}DLpE=CNVP`{ zMb!GIdF!7pGUi!ex=pEC{|sH{&w|Ka=si>1Y3IaX)qL++T*Az!Yt0|{euZIlQDy7xW4y}f(Rzs3jQ>0U?O}8n{S{>P;)z!Fv{M?$S z+VLc6)xz9~r_JrOw?x--yOMT$EO?Fe`J#+byA=yID5pb8EZx!4D=L*Ib`t5o(>!6@ z^)UL`DTvW;8wGhRK$ASNGi0!XQao{D@C00W0+Q?zL=h=rk06cy6Gg`Kzv(um^2ABH z&ig;I7kc`Ww(9?r=hnO+`r)N#*M7jN`Q9m98P5sw`~ON3`Tc(t<%;sEmhPfd9=MuF z|6Nn>e{{$LyFvz6R*DBs3Lbzf4?vRppCa0V0ZiJnOReDlO4T!1EdVsFS`ccpmZ7l*$wF`54*Vo{v~H z=J|MtL_QX7u3S;x!qP*P$^*9)>A!F4SU`t7a4X2*W=iqEslfwqN0e6UZwDFNS}CnREwmo4 zS`SH(0!7sN>G;TWn^Ltt;-kp!hL5l+!3k;GZ!eLz{f^2Nn-(DQ$mVXggfB9g?)2BAwc9x=m@;_Q>wmcC1R;?t3eqV;Jc!5^0Y6NRfPR#iPV2 z%DY*5w54~q^d3rkpEIvKM_|MDR(viQpwp?!gw3N+%npC|gbwbilpX#~mtVqZ90=Iq z54w57aTRW+oHRX8nzXm#CsmQo&r7O)zBFv?kEz=CRvce7JN!+rmzfVcKhG4I?OJ+w zx-4>N7TK$NTJLys`x%&`=hrg55h5vRDE6P!=+Xe(2szW{AhoSgDk!=^6!wb zvU+2LHQL8A;jGyi&O;N9uQWYQob;^{nj5F-asMsvG`$^FS+>&j)NQC83zKD|YnJ|D zMqy^g_D^@LS{#+g!txVu$fhf=Td}nMN>#h;vUrAG(hbRpd#04GXQFUKAY z9Xv=WFUMZUv(p!}AmHT~Gm1F@Ubc%8mO0JXV5_ZN*Mt!$Dql}F>7G@atuSY@1)W&R^qmXBfe6`Tg8B0GU4S|-YFCbFURa|@_qTx&&x5Z$6tTw7S?;QTupo>>Xj zTrtPFZ?8AJ^EiowcS@0fcg|Er2MO<7r2qd>z1lEU!ZzLsH_+_3=800PXUCHuB|q9L zVURU(4c1h+#xcu4oD{QAs&Vd{J^c3txO6=Mcpm|Y5txPA69BSiX(~8L{Pf=j9#58W z^5|0_B|log1Ln-YgTgZak60`N9u0QD0691KE(IP#84-X7*-^lw*3kqWEkU!=S%Ak= zWks+v0UnIWHt@gz?ZJ!P9e@Y-Ccxtv(81%C0zA%)zykrm1DXI2%GJQbZY%*0zs)cp z0FS1H4m=VII{**2aP9D!QX4E3@OViC9tZ#)&;)pxg(>jxA)DI@F8~j+HSnkn*HC|& z1YLl~vvgem9;T~HR04Q-0~d$SR{79C0gsnP;DG?(0Zo91H82Gp7+RF1VXRC99+<1` z!j$H~!};DvjJp(gxXc|%Jt^?8Hpie{0gqT@0`SN?g(3lXU`AM#gMNUA)#Jc}3k5vR z1b94M`J(jHN;&XwhLv&PF~-c~y4Z#YJYLcQ9;T;D7Xv&dbg=`E<#n+e+wAC<0X$w> z1CL3r3%~;n5qRXCKpg>ikgb7-HN_qj0v<1;Hd{gx*{gdm7k7)D`^F<{zIT>YS)cpn zxZ^~LggZ_a3Am$u?wbYe+4045rCX1PQz0ck+ULF@i}=FPgpfprCb*_??%VRw#9x|d z;(rM?oTe7aQO|>v{Aj@jm@~r$3eNx=VzCT1G}s}6=iCvn;W;uQzy`9TU_-5=2^(61 zW~H;hhSOz58#XZb+OPowv|T86cYqDtTEK=ELI)=)1vb1q!UhDu2515sC|AP;N0w!nMN}No}xDu;Hu-8xQ~+pb2a+3sczOLpHY+UVsf`YuHd5 zuA%;X3A(_BGjv^m4W_G0OaV4{0~d!cR{79C!G>2v*nj}o08LhfDM=tU<3Mr4OWlC1}>~% z!wZxzN>8nn!v<$q8HWvH%uKF}ZI}cbOi!0C1~yFSVuuaO>tZ*y+0hNyFv)cRHlQKG zhP)G~Bfti-HEgh^*n=X24Ut{JhI+o@zkKc+&#VkLaQ4+3Y`)@5iG&-@5)p3D^vKAw zue4F0E@;nL6y?hjetbuxjSCb0$C7tC@EM{|JHaa4hqJ?yS4oo|L1#lse$=mX>a(wq zIV_21U(q0+_E@>(uXAWh#lhrYr0uO%oqhERU84t|4qAd;lxS|8eYJcrGv;*;7G_f; z{yGOUGxq-y^m(<6Q)j#eQu3p9_7%)A&?i0n%DmV*`-;L%=rj84D=S~Us)@xi=+j^a z6q0jCK%ZC2hyZ=aI`qlUzN&RJk0xjdnw8FSG{HHt!UwAzO~9=c%#M4j`88CpO%#>3 z_Es~?#_z3W{!Hd$xDndG%Jm~lfz`OPuXy%wG{GC7gO@1fXo6P~)&1-%1RPBOO@I~U z1Q8FjJJ9ZU0V}`%F(3e|riBiy5(^VxHSX*yw{W}R8>Kc_sG|v9g@u0h6#|YXfF{7o zEKH9k@Eanx6`ljDq9kv~YWP~^v~e%8a5TZ|;FR#wqY3QyMS5OmXJ5f>9!>Bj@dD_w zYMK#w+}T&&`1Qj#Q@?kQjwU#p#{1b<2soMmnt(2Ae0ns2H-NMSx<;IRg}K@!Q)zxQ zf%Cop7{Mv%a+y1sdQ#A3ZH|DY0$s7l1kjat7)1i;!i)gA&`(6OdK`3dVfB*e^~!6% zLrblcgDz)S83$cs%uKF}ZHSi0Ppe5NFT3S==Ud&#FMRxrv z?D9VQipP2Oj*PPj-e{QfEfQ(eo+lFKs+wmLX#Y6!ybDtD zqrKN0vN*TpYl5({dUxg^68kES&wssLoKq6Wh@QsT1eY0P#GVWrI%LGCjQzg^8PAt- za{ap@B|lnc6Tln;8Pl@~B4mVHt?r?46EcoIn;?UXu~-Hf8|;AIa_$Jo_zoEnAS2mP zvt_l8=4@F@(5!Tp*|PV@ieP5~>KLkRP=^6Ui7W+m+pgc%4>SecB?p>vb2D4^e(2y_ zrOcMS8q{!v-hgYWjCZKNI*#vIk+TjPJ zHdv_Hve#gtpG|;(*)nJX>deA)w#j@o)pkonC_rat6TDCP zqV&{CIiPcfm2p5f#?0ip*oFw`_7tECVIhJWYz=j+DfR#n)QQWJBfI0ibC=QC1U$*IHO}l|^LoQGACgFT=A$A3 z&$RcQyHLUk&$RZP`?!R9E_?z~@}s?S2U$cPzV945bFA?ZaZ;>7sR{eenS#q~51UV_ zGPUAUkdhy**IqDZ4&)S`A&|#nSs-t)Lrl%NBLexyWJCz$WJd+^T1PXGw*<{fX9?sN z$%=L$XB@NxIR@L{C{^4AhAe3>o+0y#7Z57^H4K4RRZ0o!HnNa{%gwzWA1yDDJEA`=33-YFCb0UI+yz(zj-+v@Rv z&4tx#uTLwl?G`PyQXa6KVP!mEk1;d3F18^C?DlFI)6=Dk3D^_5*aP}RCYsPGJ<}v%r;-oQ~QWN%_GXITdQ!Bm+Df!Wg z*)V60*%Y23X2)V#%xMM2OjBN5$+~M>A%(1kFlkiP_(h744YKIB3Ug z4A73D*xey!GpdQ%--QmosFaxfh8VLE5VN64%%)r&vu!XdX8X{_fDp5r7JAH1EbI`o z-NLoQOQbefsF?l67_$)&v!O}MHVf03?L#)V6<&zhWb2q+8?K@LZ3()>?C+j`6OF*|Erkn4NbDMMBKRj1aTYPt3M@JZ5uY6|=viytZ4k)Jl2Gc7~Pl zm_5eKbm?MZ_Jl6>n7zC%c4M0z-H6$fTo+4M+Au?`(0W?K_86^SxJdWpl5gUr6M8Y5Yn#?ZRj2Z>k9 z*zv&4rKPdg7&_#E-$4eyREh`Q5|79zXbSiq`eEcm_}Z?=2lZxZ>w8vjtPDF3NcZU2`@|HIby*QoPtdX*ESUwc2!>(yY~y9a=qg&o%5y+MSO5dD-S;e1w6S(QN2ZQ_ zG|3ZNK?W<7(*HV8)t-ZJ=nvMO)?l$(ZDjECf{!&{@BtINgl-nv- zl-pUlR;fI&y-5F~=7CAiL3GFi>mY+|l;VN62M@rN2O!CFkRtNH^yi@IHl^}F+;cIq zyFLf8D|rs4_y2l{{QloTIqkxyRIT4A($^wJ#lcDUKc&_B9U+57rL_JXq4jXpdPs67 zP^8nHV7g6db|*x3xBDNflKUWS`xPbfw(qQ5QC>-@+J0q`{>P`boziOiRUm_%l+yNh zhPK01+aXEYDblI!rrVTeZIA43ZO5vl?Y^gw&IZ&UXIGU-^A}eW$@di6Rh**S&C=a1 zy}G4)DDB;KYevLd^f0wOg|vOYhlaN*6ZRBBF+1Dr2_5XBl$~wfCBK9{g%Gf_4RrH{ z6RNmCIYEu{q)9v59IlGAr%+P$`O+}9YTr|6eAVo1Gre9=t?emfip+NHZ1Z+me}}8ZO@|oKV>TTMr$=31 zB{jit14zk__8KB&aYoSB5Mf9)BS?isi3t_Q*AQJ-oOF&5J&j$2%)Wi~)a(33{xxV_ z`@Bk1)Yunj&64jhgss^^qO0s$8Jw`|^D1kfB_Hb7JS!0Q6S`D81RW^5nC1*b-Y41s6uUc2V{&sdjd>I3V1K1dW4?!Hpuc)V zz%(W_nZ~4CJ&kF1pdzK;k9Z(VV>T`HX-qB%7Iv7%bPLxGZ%Qe*P}7+2#X^7eh=6HK zXflmy7N*mfK4f!S;e}~Tvh_4(ZMcT|jU?zYjd`%H3)7gUtIHf0)0p1C#o-|;9~!7> z%=ghiUn_)wX-sG`jcE-`r!g^9+ny>7V`bup`j}gkr1>^czBVtdg?ywi-_^LsS)9bAfqbV}mv%M%IyYpU@v_D&?#okPBGvD7vBKiKd zA^|ft_hy=c8E>bOZOj-7jsAi$V8c7Aq@LPGKuUhJ-xeclVnZs-k>KscNs%C>8hbNY z*j*M9JV+>RnMe@JE?3BRCmA4*-WgKzqXqe3&J6h|JOkv5#WKj(USQj zM1Xu`M?t$Gr*UI|@2DTq%(6gFM6> z@*x27K@-SFxf=4>jiraI-)0yPAYao$hkS{J9Uz}uxOR9qsSOqi@?C(14*3uO`Jf5p zGYeD5=R-EP6<&aRWNXM*8?K>#R|&d6zN2+rfPAK_3myRSc>@=RcUSq)Kta9_(LjfM z2!MRh1oBw}Q^<#*MM)aQ%0$SAxkX8uLq6wwA2IGy$mcS5B=w|_&)OW}QU&>9kqMA5 z?-Ysz$cGu>%{BUgd{&P`J}wmGd#@tt@JQvg*SDos$|0XKtc*jxF=i&$#WqC9_dZpT zLq5~frHg@l6S~+T-}1WHjcs=Hhc#mQ@0Xzt`6jt8Kt41?$d`8lbp*&qwuXGx6njtz z@_m5XY;UH>UfuhkxLa&*CLUSyy$h_$dT%Dj9rut(xZ_?T0e7_bX0o6?dakMqzPPV+ z>k)B3NXd`(-b~0MzVLaadyAK%39f1E&9r34&*wA2y2%d9Cz=r$ChyWYNj)D!fjwWnq37VD80vnEz6>ZqS;A_JM3@A!u zU0?&Z7O>&L(7`>G0vj%jumJ(E0h+)D%GI#J?iaxZzk4tsz=o!U4jU2+JHQ6FaP9CR zQX4E3Z1_lo4G4e@&;&M^g(+_L&ihRCj9 zL%l}*zq~gS&#VMD_&dh)Y`)?+iG&*-E|R}ve1tgKb>GrQTKXtUmz4JIW-~^1k`yyW zoU~^%Mt0PmpI(AuW{i%94j!hI8KaMJ%leEF0%nY$$$3(g(~J@4NyQnXr0V0OVPk(x z)&7omeAUbtO|Q3}F)~GFyJn0YEsGrgMfU362?oZdoEt;y=X;N_ONHCgxw=P7B>z7~ zB%iB$tT;vaI7=UI=@XRpj-EbOhe|wOLI)=(#q%GJo=1S^p~+kwc&@% z=cm_Od)^e8?b%#iWOtscqy5=j9s82K-NybvBKiJ_BErn$_9Y8}Vl-~n9?dGH4kk`wU3QkM_P~$Q+W#eaW!d zr~Fnf`Rib;tvFO1s>=2yd#bKUfjpWU`;sjm$j|VC80(X1!8J?%f|w>G>@5%bpD6>> z8P9^0{Ale<26GJTPxmD=FShn2qi_@UkKUKe%2zLlW3deOH`oDz=iCvn|7kKJz<#n0 z`}2LtY8}me$y$PDrL*iy_H0=Z?vEo2&jhpMzGQw4)fXlC*1lwB+4z0Q%%90zBsW6) zj|$h1Ed8Tm+`eQyd)Sxk6zE{6lzquQ!9&{jB}2fzWYFY~3d-rvqr+@pGP~pTM}^=2 z7!dxbXj-h_|KJ#7W^!F@L;Qn-SJTPZ2wPd0t}flo9~~3A+4m(|UN^hJ&CX6=Pw(K7 zVVwKIA023j`;yh8eYq`UU$O};^gpXE>lSKXvPlCZZDGAHSw7V8V)(O)Z2f1IHO215 z>;-&eS1bPJF7JKGc$_Ei=2y&pqQ;!3Nu*JGx=6sB_t%a^D+E6EImq14^&a_Rz2~2T zIiIi6qcGzpnuTm@@-R3eNyAW3dciHrN5{<=oJp>Fek-WJCa%WJdwaT1OLLwgk;e zX91WmlNCkDV6}~J$po__!1QaVUYk`bZ2?TPtUJKuMrZ>}*N?0Vz~n&#zSQ!VH zW6Vshi*0BE%zA7D_+`4fbTa^RLN`0WTwXW3!OhNY0L)453-AjK5n$G%eYq_JU`}YE z1I)|1g#wseTUZ0ke5m2Y05Hkc0MnXc_hJSxBfAEehYWm;=MBOd&$Ak9Jijh1_d)%A zs-wc^(lwqp5w>HE=lw(v5bcGtA+IKU2><4yDWA2UCyDoB{ohIXy>=)8I6hnzCMhwY;y7Y_gE%Q-L{DSi+buFBiLD7VtPmpxC+sbc7~diT_BQbD2As zdQv=RZH`!|!gI061U#2_7DWP{!;FCE&<~!odK}Mjq41pTdwZVp+O*wLE9H338CJ&e z+!!;H>tY)sp4(FshWWxq)6=Dk!EzJ2*pbfiy4a0vc64Lk+exkqSPl(wg+ks5)De&l z*&69sQ|tjEq!ahOjqEME?=4TV>>cg*glFDqc;4ecMXt-eNd=yQR7>!I`^NXd_S`i%E| zJ8I6xWKHOU%@xq`=`*aYI8+>}viGyAmK+RyK-Z*Th*}qx-pcgZs+p(H-q3xaW%U6s z)+eZ^0z)(*VQ+ab^kEsG&bSa#@?%LmcxKaQFlPos6rKSL#bOy4YOn(?$+;uI&(c z$htr+o;yITk3$FVRtnVmJn{TcgIWlHTF?Y)QLctscE<~9`TdUp0ctfZbf}eB*a2#} zg=>eOklJ9Opw<_#@YVX8Q~M!H0MvpeP|GY#p_bnexvlU5)FN9$t=e$iNFSA;f?6-t z$A`+>l-ZkS@KY)u8Y_79#R#tu0I#44yt2lo@Cu`~jk?k< z@CtLa&$!YYUOC_UixHc`E0?)bsV9Y3*5(LJDtHx(On_H;2T>%zE6fP+3jM?(tHoWA$&VI9f;lrpqVNn5DHh8hQiC1PO3obtkv=aY0z@J^3L@1ynh>caXjVE4MEZ)X z2zDm(MGVz8h`|7Dn~&Wc_Bi3@2E=?FI=EOVAm&RE#2^5~Kobx{xf;aS9Vigv_ag=b z5Yx2KK}=#{2N2^Ht{r|uYJ-IWF<*`#1_2-jnt&LyFaFLtNfS3tg>>y@&UF^m-JGwDPG|6=V#GoO9 zn7k9HBY+sPHHfjM*h3?mBZ};fb3`m>BJ#oPjJN4nG?SojJa^ zM4S{~P-?>2NTy&{Ktl-imuiEuAE`36;>VDZAFa<$Va^=9DLg~)j>WRz-C&0}nsY}4 z@9)cq5WLBb3f{GjX7Fwanw8EHyniAq+QFM~&<@@hP?X5J1aC$)!TaaX!FQAryuV7c z@ZBm95WJyD@TOcHylpTmc>B=CfDpW!7JBebEbI`x-NLoQUr24RP{CV&vsAlPARu@{ zli+O@ror2XY;G&O5WLCO!MiqGL;a@`RKa`FtivyLT?p8wtIN}zfb9)j9R5n>Ljx7C z^>V*@se^!k4NU^JH82g>7+RF1T>>`d7A0vOu$}LH#JEcXw#(d+)RP8mYjX^CRltr# zCIsxfQz#MwHfDr?jeY{Q)#Cx13l*?!w~C)BuU+#kwNf6iond7>V2?2~xh}RL2JH53 z6{e?47Zb22bg>8Q<#n+e+wADZXQz`~7XmgKV!+NjfjUCKCR+z=Yl=N66tLrN6_H(k zc3OXT`d>a9iHBD5-RX+C7_)yZkz)4mMaIVL-%2<(X8%z_Jp%p&Df!Wk*~pqP8=ZN~ z{+&2!%%;?Yvyn`}Wfrsltjg4izd%ZUv|={QnPWDEXNcLcSQfJz><~V4?ueNE2N@A! zHrY`zyVlW+*)2h{(ph5m|H+DW%w`<4V>Sj9C9*Ctn^8^7{yTK=8>PhTZ^W35fS3(U zVm9UKm~DeuG24eW285X1w9sRAVqu4v?G~;b{zGbmg^JnVj4>MlF&mo1Y_l+p**;`* zTj7P6O}38Nwc#4-f0dw1%>JjY3o+Ytb$Or@v%P_f!+)uKXrN;Dw_?mjK+J|FG20rL z#%v5NO42Sd8*_CshSEG{JKy_=ahJwym$@UUCym+G<{0m)m>r8uh}n6kP$a}`%m^_X z{lsjm$741ZRx$f;$`_@lR?1_xGpvlq>@j90*TptWirJ>8OBWNfCv>sL?B#W_8{6#Y zM$De%x)8I`5My@U3Dgl{HrYC6TT|>ok;UxD-r_NvhgK4^{Y;Q|*}H;&OXO#Q{6{&R zh_W;36)Y{3>f^R~k^YbETm(A-fDHvW0f3W%>;M2i8wpK17hwfO2b=YSa}mC+dz7=0 z;ObliNV4}lMWlqi|8*wJhegJm31hlVslFPzkXJpnX;)+~^gbf)w6l@0YQFbTuH;OZ z)DJ6VnfqaZ29&EUU1RB1O67;GMfyLP>IXE*58FTntCZr0?*u=Hp*J%bR3GM>y*j^>qYuMo$3K}$ODUz!FEdVz;}ZO z;K~D#!~+!RArwElac^>EdC$mR`$>KqV?NXe(9M9+eYM8-S|Ot&dj>o3-I{w#>> zh2E#dopwGHR?YW5!HlJCt0|{e?*SR?rj%BHKeQUI zS`A5BO_5HmHr=K)YjtFYR#)Tx@pEgQ8pr*Kr`6*gyOMVMGw?Om=X*+|cHgTgd&=pM z5=-~7bYG?N#3qscFU=FST@SH|4p|kl_yTpb>9Dxz0f;Z+-b1@tLA&BaAotHylY70_y4t&E6V*Xy|z+$ z-~f^SucqGr=#U4l0~uUXDIWM?@BmzS0FvDQ6p;s}-~XoDlxFvTWOu#)u`9X%(|CAY ziF_>nX((KMJ0JD^Ea@Xh0EpVmdA` z-KJEYh`1oKyTwDSN@79khZ{@eez>V}MR~BLhgfIXE*54V5}ZlV-F z{5bdluKWN={6LXTelXppH1k7bck=^QC4NZHOgmH}zb9^`Tu~lo>8+K@1Gf?B|90v< zfev}#aLC}6O7Xx?f(PKr1CZpNph%~C!gQO`?4F41uJ;6XweAUjKHgR$9}Blvt|;$d z=^ZUSLa97)Cz1Z|%oCHIk7$x7?hF~+PAQ)FY48MGc>G;TWn^Ltt;-kp!hL5l+!3k;G?wmcC5zuPdX>*tqFDCXwkvBPP&q>N7N*SP8S3vCD!`(H&Bb`02B5@M%G7jt62PZ#UN{_MI~olQIX zcQ|6&x4=<-1)yK(Y+|1l!o+^u39Q2=_PJS3>`PPRXNZaYudz0ng%0ZZt*=9i`Gn$o zVSmSK!h8qdQTVm`?}cq|&(Gl&R`mSbbM5)L>w7#u_iO0>j{oi*0G_i(TeoVREAFB9 z;+0d*LKZls15tY~{v2c$oKksy?%Bx18Q?h-Isd5Q1M>nt=<{>58RJ6^jmHO;>T@q% z3~aJ{@y|tNXvMh{Isd2(*;EcaWV7%PLv|<@4cUp>M$cH=W618p2^+Gx*=xuyZKOkX zB_pkLm?8T-cu^g)c^p)SY&w8dr0I8qhu?WrbI5)^W#??99I}5OhHPeV$fk5dHp`Vm zwj9hDvh~oW12$x*9_o$kszP_LVvt zvbk9f*`?z+)SripCPVfG*w2P+vDM^!&LLYHINiMv<*k7jvi}%{Y-VuCrgTHLG|&&( zbTrGEHW{+%F4iPP8V}j3*FNHL=Z9>~(?GHwKV(ar!*Ev&*`Y|EAv^9A7O^3lZrHte z+UJlh_2`hz9g89Rd~9QNZ%L(;4%w=ZGCE|}xasx_ZRj^-i=8H2%pto^7weEcyDnB| z(~eGt?0%uMA)6M$kR5jd>#!l4o8^!#O_38tG-L;LIb@e(_W$_#Ii9qlG5a&%gAdBw z!V8h5^C}l%E6XoNig}e6L$v=Q^D5uKP%rn~zKIRqbNLpe-E(7U%&WYFqVpo8oLBi1 zewV!ePA%qDC^jrRx47rVA~5nD7{NW4??Tkva}nEO6!R+I!+uIWK|R*`KD2}GxzVf9 z)(^NR@44ullD7R4WNF(k!xk1(MT)k+45Izlfo*4LwEc35&ZS7%_CH(OsYTl(K<)XmyXucEep6mv=+l74?VvcPKBKp3k%8gofofDJFf|IdQ?viwS97Odvy zlwRTVPun@nHC^TOFLL^;o&NGtKh`?G-(-_y_ML3H4rVdyMlc7&oULDmOb18*sCFIMICr%$kSb=D*TIo$6u+xtY>& zvv}yaSr6IRSL%$Lxmj{^={OGc>ygofn{U8=#?4}@2~?4rwSm*!H=?{X5Zrt_8>owk zF@xMp>9|=M=((AWW;s(kR{BnL(cLU(8gsMiwU2n*d2ZG`4J7OF+$?Pl%vo@ADAI?U z<4$1_<7T>H+)VrAW~oQHnLC1;*8>~6ufukhYbvFbn^hrYl$&eZbo+%i1aAHzs)(n$ z#7>hgCO7x#V&&%9b+I~|cJv)MV%k4~qdL{qFLcJuv=F#C?gZ9h+|13Ao24moq5wDl zn6=4NS5VJy{RCQIT*=LsV2+D(UAHH5UGKHIE<7F-&2?=B{@D@x?+>{bWDCdxArCE` z3*9C7@8-IA(i(03R4XMr-W&Nh3O~IGS>UI)K^Q+3>!U6}-3JRly#<-Q`01@qANXmb zdFY)mi<8Q`D02Q$UGIW4Lyp;6FzJ2W12XlHC@PcTKf-i3@4vjUyNP`n4| z&>zPk<1-36bShGBPU!M(IET=`ha%@66?CC;XmnxWAv+8egCbGl(vf4qe1Uk1l%1 z#=cT#=)%nsT}sDssJ{;xP0-~-*w4^KY&99zh%VZ|>F$jvZw&;x{3Dy z9$n}tR!v3P1YPKEmNSjfMfKW8JnlTYXr2a=^>}oVHiu!qK$lRY54yyi!Xkz)bi>ev z_K7Z1kD?2A1iJhjqgMC**v@iIrIezJDx{2}OO2auztDz&F8_xrVssHZO}d!q(x;0R zU1rzC>TKH4|0KHn0*)%W^b4J#3oQh6i93OH7`kw?L>Fm_oG5@UzhrHKE`;g&s&TW~iz;+B_!C&(@DgG{;Q-_R|HxrJw}(blh7qt1D~5BVP!Zuu~> zz%8GEFm5>s^FIH;{|i{RaLY%L*^65~=JbJEuq>g|hk2ik=9$mHEY38arO5e5&-oo@ z2c&sKi?bh}gsuP>o$+Cl3XRVAurY;3XMEUzUOmj z1N!gmH>KogZU(1hjTTWjF&>VwT=nFXS@nD1fX6q*)HE!ePpC7@rHSZnVI1G`xH zV!kI7i=Zh{8^6R_XGu+Cfk-%E(8NuJriH6c2Jh_69@tV_E`EX>_JOV~gT&T7GSW(| z0K~p5hmS}s*ae37gIsgn`l)%#_gFNwaKrM`w-{N`z8cT>{Q%Lv30|0=ZoY>HdKH@3 zI;^Bhza2C!o?6^G3{^~Xb@}_VF8xq5&n(&GqV5+dJ0C$hwJ2--D?k%7rZFi_>7a?_ zVCisJ(w{l!d-O+72Mn504;7l6hYp%1rzTrR(L=5-f3$kI6$Tvja7p(|Fl!zz$y)yo z(8P@CC0U2kL6dm6q;(8UPGpl4cF6LS6ny1jY|zBb5}HcK5&WBx(FB^ljQtFn#8x_@ zE}L4`I)UDB75NjjfrKV);L`3_P~IB2G;94QKoc{jmu4MG2TjtzrLB`_aypxw7Duz3 z?%J^u=6j|lr*IOPoNAwpz1JOwq)T_RoGH`~gJ%8cF6(jsK=s;3JnlR+X`cS}S&xS% zX>$OM0-8dRKF}0*3X2#t(G7zp+9xzgJqk_Sv4Ey8U^~k-l~M{#s*o}YO*L-1{X!f1 zL6g{N(#3?PK3%NPG`lWVXVZ@M(6ro6MEX=1eT_nA&?HCp@^w!}=i@WeaVM}2gC=eg znzqVTZqTO4iDGgq2TjsKQ5!UYdkSv4z_{sm2{*mfxass{zGnj5LvFe!WXervLw5oG zyZIiTv>Z2$jeHAbKO)@pRb=5_;VD?Z5L;N(Qqo%`{f4C9M2fqI--2l0E_V-q0|1jd zr@zGp@0|V)((atn9_}7~o1$|IQrfL|)_oKlMuCB=qi7Z!I;Sp-J@03*0_`bUVG zJEvk>jNm}e??)5!R^>!4DNum7|;e{u%4pxU8Ib` ze=P>oA_f#2mR(fDfJI>B?=XTG`~#vU24Y)`A_o7&ej0U@9fgA(bm6p z-xc@JV?tx_LuBbO@ndXZaV$xHD(TN8{W(&^RC z3hC6GthEK=bK93tPnI)d8d;PZmc67nW>^lEwiv?!IM%up6^&yh7AUc75Yko#3$;}r zl#v|jt6qP6lX`j1o5ypW7!u!c1(CrcJuHKIerpt39F`-8;J3+te35(-Fyj@eZ_CS5r z?191cmOUVb#CP;S3m$0?1hp+k8O47gV;{$#t&i4`d^g6DPe}a#g)GE>WJP(6eLSwO z@4)}_F;3km*VzBTKE*XQzf)Fx0c3;Ie|p!T|F6@3t<>w`+}<0fmcrPt&L|35X5VKh z=D0FAOfAqY@W_Gy7*3YW30maoa9nEsOUTElImec7%Grlb~TfkDG(QE7s8h?$= zx{_xo_>*m~LK_>u>GLN>$Uj4I$(F30K1Wy0+pa1ckJPJ0P46SMUSo?lz26Jc_O0G- za?Z@uilVtfEV{r>)OM{KYb|#Efr?Q$VHeok>~&Y7w2|JGsAQy-4s%yxKD;nL z-32y}a=XBmVCVxCbRf%_=P$79zS_pq3hzoRWU0=-@fYt(%;DKrAE;mk?@Ca*3v8Av z?@I7D&Wl$4#nS=1z)n5X3vB11yTGpdYMXjE(cKbe%|qOkm`e}!feL2ut^}pKz!nev zT?sv8V_&JW3v6zd7ucoaIMm0H(c}Vq5%#kSY_XMIebs%PO&d7fU5xV9K-`s>#|G*H z70lpW2}*Z?Ee-T{CFp3DGqqzSTwwQjcZlw0In(&AgzB}Ac-;95Y|Ya^vL1hdEo}}L zr^N+!DAMNwJMI(~u?uXvVHeo6&#OeKM=!9sBQCJ#f>*i=u$|?aN-4d-R)v(&3+x&< z-F~4B;R1Ues)+AOh@B=~%nR&3U91<_v+H7YHtpy!95L-NII4Fg`i0IeuxTOOm54im zb=U$EJom^kP$*!+YO|GxE1oQCvdJo9-`udsB zosa*HS$WQK%sOXe`vq9HTbOAAj)R$&LEydwsvG$bcr0_XU4Z&qJ58eZ=CCd2YNe>YW{8Z4FB}HElzY^AC?$ z^QPwM=i8XAh&6X|?u;T9+p4fMcSaG5tt>Q(SZrURVLQxo`Jmfe`=Hx$?BfxOb&btD zcqwjU%(V}?$)L0;5Q{!X(4>e($0M~O7QK(u0};!0$Nw6iwuN)(xD^yR|Cm{`2nWh; znB!`%LZZqVeB$%R#r=tZPt+FpM2jgt;iI@c?oUMc6pBUol&FnlVy(r_emTH~tLG?eLv9 z-G|j@Ikzj{c@xhLVn5vn$;|W6ZLNd(=OIYUoP#s|KB{o0_L=A5Y)g=o-2GSxICOVE zc>c;J7k2MT*;#^gYGKxzPcq<#3$mOU(+jZ#8Ki?VmV+g|`@ypV;Y`mJbim*&^-$r= zdFbG5VroL~e(*+(yZfOYF7ECCv*zLAtTj##aSsq4GGlsi)}eH8CLS)F&f~{)7ix0q?|Ku?@oTTgMYa8XGyi@W|DO3YI!v_}Z;wez zxp>lB4R=FH12?HA9o46&ruELq)YO!}Gop>3>h35WN%u@;tp#lSwHWKL>KZbpr?L*E z12<{>l-?Pc%qAzT0c?gHM*-ZHOfKP_ktOcV2;I$crck>(BdXW_;}Pt^P4hI!tjB|! zv^hXe0dAp4A8?C1j71FG=!StC?Q`^#dKBEaV*zd}v5ockB$ZMMZmN(n3T`!Sy8S{M zVsLZEhQ0VLwwiP^;jK?MzfX>|*>$rzoOZT{H%#vK3!lLoEle&g?vBXO&!c^|E!?($ z3l&c{bqkj@Z{f0{h4G=rC>ow}v&2*BEICz1cpB6to{k*S!EY21t9#yecQ7Kq4TC!_ zBltO&&-K0>+(CBJj$3)Yh`9AK*!z@l>rTkRAh|1q zJx{X&C)1DO|0y`_UnO&WyCAb*N6)NxcY4pPEvFC6YUi8b=lWK|EKb2|D02Q${fIF0 z(uqELUrgC4h0^arqZCSy3yn_e?FNl!PFfzDIfu+yd_;JYF(*BYC{me|ZboWlPWl?D zHz(%Y9nPVT_Mpi5$IN>c$IMA(4ReAXdoU-p1#_}+%A5_R>_V}KITN+vU#zvG)-&fS zIAP4m&0bS>rHypTu9A^fI?R;aJ>W%^3V8%qsgMq2IrBUf)=k;*?7%6zy(l|7BjuFc zLSn~p!d%SYlpUp`LY6D1?Bu5kD%2k?9WW|PJya@m9y%(lo3c|6C%X57S@RH6c3aZJ zcL*3UgHv{tjta#?KV_$fZ0sv_Hf6`na>}lB9EbXz$S9`lZon9gZQf;GYhME9oxQdF zzR9yU${P_%9Vsf*P339Br@Q;0yfqwCd5hR^oyubdr}8Kr5lX}TR300E^;(fuh_J_0 z9^K7yrtwss>b389JbEJ3JPk1G@kA(X4m4E|VJOmv2;~LRG!#r(#52~K3%M=G`lWVXVZ>O zKBCtzbVh@;5T^3tPGB9zO57}2Ntz-j5U^6XYZ=tVUCZ#S%#rx{o{C@3yCD5KKo^2b z$V!JLtn?eO3Ylne!b)VK6QDZ<{~Z(YWajRF>T?mF7AD#kS^8YWe%Q+L{Uu#1=>d`+ zh!p625Jda$@?3=6`R7ey-udTqB68zjS9Yd7JQr~viq5@}^0|n`_@(k$8EWxd1ckfj z&mu6wd;WM%WE`UAIT5ifMllz*fHSi4^|xWa;nZ5!k{iw~{_e z(nljjBpw6N{`bJ&2`wQKkEQ5594R9)Ws#s3k)UwD6BcRoI}zJrH2R$cb+g|Iy>h>k zIU^fze*KJ`FCK?1TvMJ7Vb_$e1}q+m^Y$(HKM(t1{aa)f*OY#3jwd+1e@Ej~r$5Wx z?|7oqpYQaiIlW)An_6htq%3D63k@5S27!Mc()5%X@WkBLI<$MH2rojd(>Un z@)X4j+jW$kQ;_n)b{c0`dlrQmys)Ko7q%={UfA;Y&)Xe(HlPD`VVioW7q-sB1{b#K z;Y9ZtFl!#-!geV=)Mrtc!3$eTcVR0Y`U_h7_8o%!8R80l~hXU1*|Hhj9$Rjxasx_Z3q{z6R0A-fE7DUx|kQReY#jL zU}x9G>TKH4%W=fCm%ved7NuY4>;je+!Ub&H39Q2|V7Xadz)Dl(M1c#~N!BLUSwTI& zH3coMvx;X?Zn5jveZW5c`W4I9$o1>Hlk3-qf{S?lnnR{@`k#XC7W{YDuRLdswx+dC zuI+IL@;@v5^(7R|vUi@{A(|i8Po!;|T$LRxq*$;7e z&N>%naSl3D}Kqgv;p{tUb3xZq?K9$2=@@nfR}8a4=<|R#pA!qU338J0@H8D zU3D+n^3=pbpdJ*3!XqGdra959)Z0T;6GmT%e zRlW8Rk2}v@nx}zeJ)XOy&4F18?g~Zva97+ZEMnY6H;lVzpWG$&D0gv3aMv=7x!nt} zjkT2}l~T%Gs*p0uT{UjH{X!c8cP&R1F?WfbCS6SK>eI!_U9;k)SftPHzW^KYf1a zo-Ew;=7hVB1vinq)RBjmqFukh<3(iPTbu+ zAu)R#dJ2m7n0BH+5y|MZ6P=3G0|Cbc^nXn*FNbpo{S_2B|EQ1)l{MtzAB70y;va=z z;gno@KME0%ODGnROQJT2h_x0w|0u*u;e?S3H+#((l{V5Dqe@0v=`b@!SHcVP)6E$1 zP_2>+9msO#d2*?nG2)M#Ge%cac3zB>Ge#={xiEt>MwE_RSgxEgl3yUmMSqWUz{n-_ zP|3x4=*Xq+Q3&;LqI(U@nunM%+Afd_GdN>J>BvPq^fN|!$i}`>XXL`ol3Ys1aj3rn z8BNILTI^@!BDT_Dt?rQrZQykGl_+lw#EjAQfn1ou86!$ZF490hV?;->W;RkgR{G8u z(OoPXj5MAxQoZ&Ok2_B;nx}zeJ)T^o&0*9p$R!l%LoRWru!xZh-7s>YeUgjRqvXOJ z3v#&%+gKi4QYoe6q6#UaC?qZF0<=mbvEs2PcC>ov|s3q zTxcQ87{#5yI*eSnS5zGOOI;hSMU`zg#3EPv84#uY*~fIbKhZ^N;EmlbDzC z3B8GF22JKl!<3_HYDlQD@msH4xZw z*MJ?&Aa+nX?2ra}?4YAr&a?@3&|NIhjWos%)oUN|xbxVdc^XL8YU#JIghdQi>g_kTQxLHEz27LL2&FhuCS-#l((2 zU98wKyDnB|(~eHCqhII@J7^(bN8Aal!?1&!C3Z+twokq>VB_AHaRq~+&SjwD!yIVzd6D~YEkbFKy*?A{YlFtr-e3(J

*WKawYl5PZi{& zKU_LsMEBz`YaW7p?iR?086+P{M?T`ACm%gzV_&H=^5JGlKBeP0 z)IWlZCgk%8>}TX7wwer!Bp+?yboY}eZw&=?+086+P{M?TU(Pd;=s%b7MIAG(Vr zzLCb{qk8Ql9(SI6G*1J`dOZ0^n*%iz0%|H*>$lxn|5?UKK(*xE|TbK^VV_sTa-sKuRiiVe%IELN9f5g1tsBY3~!t`Ifv zSBPyfis#06zonTI4vNJXqlU*P!CbWu}e3PQ{Wu%M= zUjCApP>YyQY*==65fc`Hkrs>~Cc8q^#6)b1QN(07?58ma>ao@;Xa~iFUX8X^b5F)Z z*QwQ*d<$8K3D&9o4z{xVyOMqnDI)NFi1vR6Mu0XDfgezGzKxU-z`JP@0csHe3Kszu zX%qpmEk>gV1hqw=SgW^oom%?kVxZqS)fn7{EX3frEdL?4viwI#(fS`lv`1vs&wl;S z(rEopC_3wrvh{bj)>DhtQ@GZ%NTb$^Z7~|PKB%Mqf6mDGh2b}G$ra^qf?m0{>pLad z_MajPZO6M;KgSl9;+6CllKv7Y;_xeo_7(%(i()KMI2-@T$&Q5?7??9Fm+_zkjft@t~Lcum;fLxbgTCH%x-_4V-{qB8K{Z`)>CHDVD7GgiLT{%xueXe8!_9^B`{2Cqq zb^62h!W6(2_>jgqdcfAc2gReg-S@uDD15;M$Q+8Ce^j3kR(g1U$9pUi&fg1Yo4n$P&gy$YuywN7)CVR3oon@EzG zJP}*!q`)S66KO8ufzZ#R$oWTQnuE${nnV1kyonTRi#L&2xY;y^lrNr$4aK5qjzn!U z4zbn_M*mz%1}AKqgPXmkIZ7MpG)E;Pt#p`ajxl&)e!AyMc&OSmhXh04M4|&&Ntu2( znC9S*o6{T%SgP|M{KaXG)jSL8s<_PHGzX=d=3u#UnnQkpAZYzP(gB<1NIleP4(DNm zX%6*pqPsA7h-nU78WnFMF@w__lx~_sJoM8XddSAUQfJc~+$^U#O2=`i&qqd+X^t(i zpG|X!ttQvNoaWF5PInifymbMlId*3Q^-UyZaGHbCO>;;C{WJ$1&2px8tn_`ZgzjcJ z(|DRg_1Z@~?))@|=4l{VkDum{His#KVwxiq=`+m{cM6NxGzZ6oq(;VCp z(;Rz)7`o%w#*)C2N-3S@P=%B^4X+be@v56{zmOTGIrc#nb`03EV`8#N7jv4UPZ#Sn z$LzXTolQG>4;(S=ec`CSiPSH2HqAi`VVWcE1lD2G9Na9YIix9aqQEpqfW4qL*emYu zEWpj1Q^9KgqvuL^#&XQ4-*Hf8Tnx9-;Y%Q5W}k#6%cmrrmUOA4%aFD{KbRb8nB=&e zvNM5{U6s0(sD#BpPf?>Mma zjvIaaw?Y=;zYRnj|81ecB8if2C+YT*-UVsvror*2Va9(YWoK)ojQ^e?{>)(fDP8trN5^ldMvJn5BAZninzZ)`par=%= zzX`eh?l6lHwMCKhk1Dq_FXeW68FM@RD>TaOJ455|TGGzg%yDboT}y$aS#kT*Q9Qb9 zsoYL~9E6Y0D7Vw8NWD36`>t>fq2G-n=N}brr*dd+XW=2ZJrs+$Jy9D%$J!p;z6+c% zZs%q%ZZB=5++N8@D;tC7)!+wXz>jN8Rl6R0D%YXhgdd!oEG5Zrz*Hc+{p8RT|K z$L-QU&+T*+ONt_G!tHc7%bCX9u6pew9(SJGHBSS{dOWvFn*;L}+#ZVb;r6&wSj4!U zZWy=IKDk}$QEums;P(BnD*L|+xvyixSbXPx5u5pI*i-7S#rBHMNSmp_5)a(yvY{S^IHc( zduM%Pn`f-i)5d!M`lra!+J|TlR*ieIEQ?$gFaU{e0@)`Ms&z?rEKA9B+4O6-sy7O+EqW^}-?BlS?R!+F>MJJiF8?!ho? z9s)b|4cNg9Vh5$e4)M@qhaR%AuhbcKaI?gY(s3N>2O^^hcHqLgzz(t1WK1G`TAT^FmfX-Drz>^KyT>U3eh&>42nLcor=6Ih2~2RBRX zkfz9q0@!h1)+X2y)bm^SgBJIOACKp)F;DnEejc2stkKqCQYG#&&l!1t$sPAa7P#Xu z2;+{2V(#*v_Iz+qge;o+h}@*vth7 zZq(eyl_(y~ZEQ}n6%RxU5vU_6a{f`l1}cZf1{NLy8$z)N8xpmR;IXy`Haq}M7&dUT z7dDhOQf#PXq?HbX4M)L?DmL)ot6~Ekz`D!yyTM&X{|9}n5AU04s zY+$((8|3!_Y|vj19WZQ2JydLP9yY)R^>CtlEXQETme^1_jzj%uWHiBs%BI3v38Q`d~xcDJ){xKsO8G6SeY#k&VRl`t&ZZrmU_-yq z88*;Dz=pUJSchQ)H%n}grpSpR!iJzOu%YCJ3++9!-$VNM$lhk}kv%DSj|@vT%CppX zGOh9~^*PX8i2v^SD4w$-Zn!s|wf>6CS3Cq+;D(bRYVWh0fXwQAMV6oF^qcTL%fnz6 z=ah$2qVX z8^)iluZjP2k%jo52NB2rdC*|xTS=cU=?f&i0BP$>gX2%bjQ@p{opX^g{`d}95r1Yd z{**5MELVxYtGYq_>#Jt`2iIH1Ukr)wQT&6tVf@*87yr2<;hm}%A`9`q2mm$Wyw=vs@+euIdJnudkYsA6#!4 zc`+ouN0ATeBJy~T+dUiG6J)ZUl|;Gnq=%> zLD_jJQpO&ysTHwj24hd@V$X7w*t@D5#J;|2#(r?UW$eX}_#VYRs2j(g?RT-CGxA-0 zllrSNUvm|*5c}&OFkgddp^-B&N3<0-K8gST!o1IInA^$nYp_GFIh$*p{)cB^;zHhO z%koz`{bv@$dV)Fg+ea)OnP*oY!#}3-8d$=G*J~+q{!uOmG;eBNYb(6xAbC2yGk0?C zj85;cK{}Z;cZQB*RZ*v*%jV=Zuz*rJ;qxl&<0pJrD<*vSDeAecZLy~{XI2l^*1Ql$ z52KkKo$#TXk$Q8Q@VOq&p)+1bk@Jt4HH*;syCE{|RY+7>GvPBfHCBFeTBgn9H92aF z7vg9!o$$dz%o~=k#5?Wnm8@k?B)eEI6feYuV$p<8qPDr0SnDhmpXPcsoUjQWZt8^3 z_^Okq##?)%@@Z?N_&K#8{zOD+yvRr^H9ds;M8tS&KNwzf-TJ9{%lB9`HNIi_>06Af zXkU%jM}L55zaC!b!MggyOgGH!HFz(xwLi+*KCB)~4F=Ko*mP3rp-v|`58ZUq z#MDIVD0;|mWgM*@ZiP#6^>A_b%`j^oF3$Kt(^a=!h0`R~&_l-b;;cjIrjx|O#jRs# zauL6=p+5*YJC(jtr_)JTZWY@ypVWN=wy?4x^A2SLv3w{sIrVqF3Fqgv*W+bn`}=18 z{WAVN^J#RLYA@a%KL&Zhb=`5W(0vO^+EkNNlg>j-PffQ@pr=z)Q>_!Rf$rf{lQw>; z`&QPk-7}T7j$q@j#d82z&W!0PEG7x*rkbSjQ>~L|ax$Bov<9#lb{vIQ@s><3!53~O zm$XmD-of20r_)eB4C?ixyR1iT)aYTVN3fr2(mV|^>+w@f(&jKtQ%p65B7LTs;tpdG zn`+`=WK&JF&k;@P(Wxfxh^Z!d74MDM&T>tqluk9NLdxh=Q;nN$ztDy-)x=lv+_7P= z%-OTBxKHdC2Inrj=&FXO4+5UCBrFOD;Jo;9{7KP8In`mKj>AELlr*quVKHC;< z+rNc6p|+`8h=r{C9U#7i%Ze7phZ>`36KdQf6E4qIZqUw>-y$Z|!V8DehoUZ4mjI7< z@EgVXp>AEJU*iS$VytgCt&w$(uvW2q=#K>M?M(R(5^m=~N`<2kW1^?YW zLY~guyNGi}_-zk-hYhE{w;>BX|1OB+9^u{K(?h|WS^f@W_TtTVI{hZRNBCZt#i{mv z6gmH>-XmmQdXJD^7Iy^o9wGfJG>VMxhQ=c!?TpQwLu8z{sgaTXL~N+YNT(w8=7fyz zhjR%12Pks>G4r0qF)~tFgN**$903{qw>eliMaJIW=8*CQGKOLiGA3%Hw^-W)8Q%jZ z3>mrE>mFfgBfUph$w(_5<{se(;YAhdc&JvPjt*ow^E}kmEfvWhH}4UCn6mSBq`XJ? zKvKhTf=tZdJwi$cbu3rjBa~kt&J_B4qyq+ZsfP-6&O--vb>HSt4=1`Gfm!nq_Xv-q zhwl)sVFvFJQaY#;5B)ttJ!E5Fsk3{8+$`@AmX704{}3{YdxSUO+=}fl;3T^C8r|k? zfwld<^7>JfH=vU`(viOIn;qKl>F&o+-Wra3hexsD`i>Sec<+$X0i875-#cUju&gW6 z3effV$}8Q)nu|!|dxxsmzT@%efll)@z^umuowPZ?PyuwINFSh!JBvjO=;($49qp4y zq#gx2?g*g6N_7jmH)0#>OG+xG6zEhTWfbUY+;sbeHUyx!+X zc3rH_rX796T--avs%>`fuwUp5b!Z{nJB&Mlbr|Y!vqT+fikv`zI#?Uc?i~iTO@9^7 zN-w}~x7XSV4=~P|lW@+P!5QS4FGHq0vlOgyH~e=z!!ublhxR4pe@%GiX=d z=5aXF%|X4_;r};;XFiF{UOe+Dr{5Gjvvd(wv4qXlQ|oqLGBR%w7DD5n?LF}azUT~^ z?tUJB<1BO&Mb1A~KhvJO=C~;nX3SI88Jirl2{X1p$!2UuS%jV^hl0;% zk?p~UM#pAG?+fr58yb9eMDg&T_Vk>|IWzir6x|DqBN+-m^fJk)#h>Xpx`xzTJFnRq zQgdhK;_BMz#GYG2YHoXHM0WX}drZ=yow0L!7bw<@$@Z$bGrK}138o3}j+|Bt3Fe>I z?F!kw87`tnzCe-lkD0G*9U~BxlXKP`I)VwA)hJ@Vl;2QY1KsL_Q*AMA#?mPR_5QMI z#6Y1~#6XGKa3t26Cw?8N&%p^}AZ{uH#a~t}Z2$zKFRNBE(n_rWgqt=S@MYC6!i#aN zWI1lmhRHJKXh&eBR%}-$%fz4NlV$uRRJn>qu-Gh8&sB9_YvoCXGf7{e?0f<#zt(y* z2k*m#tC+#BwNg5+V!85bt@3LJSLtt`4j5OZ9x7Kk4;@$4eXUhJT+;n2%$kSzTI(_N z@Ot4YX7FpRl#Z*!L;tl_{T;-H7}hU zy9H&8rNnMJ(AIsqRU5ms`!$re#^TGZ4+<>B41T$l(y^2@)_=K`PGh-Uq;?pF$*~?^ zZl$|f&NTjVtLnACc*J^^(mV|+>+vilZ4Mk#uv940ho#~UVi990x?wCu`(!DpM_GzH z7A*B;Y-hQqQc77$6;ei7s>V&XUuZ+ZQhGetw2|0p(#2${K3%LVHM=fWXVZ@MEQK$( z_6wb{6fJ}=x5k~oI*g^bNtTi?w@Opwq=7HD29^rygr#t56P9`%qLrG!N%50$W-hYbizJzUcL3Cx;@Agtp8VKIY*Md=7jJoJR6zk}FU>Wr|s zSrS(1IDS7rM8<3h>!&DVge7*H48OensEu9P{Ta$zV?kIC4ur)F5*DQ+ENQGKEIN(l z>X9}fEV`TJOk=`Qz4jN6SWj4*r$J>sp0K3Nfldm-3Pt)5R@^}>VuVFEjId~*geCPT zVR6TTuzrN?EZ0;@DPgHX$|zygxasx_ZRkf>Vy8(Lld$@9u@ctox>%h}J31k(exWnM zqJ=z7WyDHx0MRlkN!H($j+{e0E$@Hfsq zzo*FgN0p|Sm(mnlP_UEI6n!r=J!tAT$o4cvqhm8S9JWz3^=TCENmFz$fhMIXdYNQw zZZ!1=xQHJ4BSp?XDl|pq@HEBJL(o(x7SU9qHn54cJ!tB;aKdPco4shNw2{(OB_pkL z7@GPMyy#6+%+Zd(XD_f_p(*jFIZg4GP^Bpv$#Uj3p(&nZNK=2M?ED{6($qr&O)-Ns zMd@gYV!a3%pgrsI+~Kk zdYYosSxeg;t}gKvX=-*|tj?w# zozPUj&>2n9LZGR*6Ih4Q6gNwnlBUQ>BciFGzH{fRc=oDcslOu&EcI`QT9*1JGJCPq zznp$kvDANH)3Fr)^ei>9Jr3Zd-7P3`{!wKq=A|sf78K;9EJfc7O%ImZfNalFG&(l( zv-@upOKm{$o-9T85@b@AqL)d==EhPPyJBf~lp^OJ6_%oMc$Q-6Ay_IDi&!dA8`i|y z9xU}=^nyVJY#aIZN@EP-Q6^$#Uj3 zVJV(u$Wmi0)%gehB1@eZSc(~BDN4suELXCW{Mx}%`rD@i#!{(=%2Lk51}vo>F6qt> z9)hJ#3M|D8vJ|CbDe=&=l>QE4U#T;e;%3QGrQ`Vh%tgj*S!x_*jHSeGlYy2jrHx(M zU4Zh|9bl=429{z5S&GuJlr+|}6rIL*qmVXXDY}b~x*&~NO7+@bJYqddX`Tj^^>~(& zHU|zVSSl3h!%}evv52u0-7uD-eX^9)qb$W83znLPZG3@7QYob@r3xvdELG#C+b^`C zA4`dyCS6RH>eI!_QnTw~bvEtjgr)k0&RB{T0!zi6z&ebjxLLB4G(}Dt5laR2oy$@@ zd)2ViLbwfOEH5iMd?^dJoGH3zk}FU>WrnhS+Z2=IDS7{BV)EK zwH?YBONrek11(uf8@sf-J<3~S!BP(oEX5466s2P+X{=`{I-TWAo3Iq!&2pwOOQ~M_ zi$|hG7lT=D6 zOQ}N2C`;A2>Glh4=*LoGr%4x+rTTQSvefLlSe;EfI$^1Pp);1Eg}_pAC$J7WYa{f^zEas(z#dZ}urG&*66`CG|wG*;EVbSQ=%pZ^3D8kzIs2ake zdkIJ>VbRMZV{;>{7F`IaIj|yQ?IXq#p^bmv>!*V?ANf=`3g3gs|vtmNShBOZD1cJYqdzX`Tj^^?1UPHU~N>2rCrnLs)SK zv4{~C-7vzUeG-<`qlCpB3&L8BZG4taQYoc`r3xvdgjM6F+b^`CA7P1|CS6Rz>eIza zShMS5bvEtjgs}RB&IpSZ0%66Sz&ebuxLFdGG(}Dt5n%=Oo&6jY&tDN^-4D-M={g2` zA`6VQH-s_P_wX!N2hXc7$1_}5W)$lf?1ju;jCC)k-z1Es@AlmrW^sPmk0R$E)pZP* zr^GaGa-O~0M=zC+=GnV_^smt9>wNn_;~|N5@Fw8VfTZEqF?ckJhiRxq%h}JK9qWmTBr2I-?j`2x}L_oxnPb zVz^0)k!6~sDRR%)!Q&cDe}_a?xfauPV2d5`_a`Cua(b@C zG#`AjJbo6OXRjKDxi7MCqIv*CEyEm!%w7z0f2ZGs4D&#k#o6UZikyE`8HRZ&!_dou zSajBh{uLT!n8Ts*3`09(GtWL|qZsBo6z{<>^e2K9Wf(dYsW&HvISS4p^hZ3LFr|%@VJaDErNc1HG4P_wFg#SN3_}O- zu|)dafMNLKCc_*@*|{H5GR)%w!!UykL+KcX^2$T zI1{6do$elw^43@|%;N*YFoO(3=@>>D>lublXF1a*3`2LboN3H3s@MMFG3Xga^E9Ze z$1{wyIgI}W!-OJz7$)u@7BPmQ8^$oSPll0tlwr7I!7#^SJIghdQpzx@kTS|JHEz27 zLL2%qjM!H;mb1tOrw~K!8iIa4|5VS3x;_q)?T!A%5~P{ z;mE|f;1Lu#|EPZHo_T>dXhChpeDP51<@ti8#%A6c)_R=z7`8E=L16}Vz?EV#T`{>a z6A+I?WoX5tD02Q$`PdqjLl538JjCD~ibaEWqPB4~*7g{@9|k9E@aAT(!Mn7P4&IfF zw9;V)??=On>fp`epgMTd0eozYem5Arc~o=oejH`zM5G+NpTN;#KUwgH863PR-Qdk~ z<=`y`GX`%xwCR8i-l>N=csmap4BqPDME4Y!H4ia(pGps}#E%c(3quA6Z%Q|Ki-&&j z)p#N*Bn*qWz-WIcYsmNtjMt{AXGkv;=< z+$k(#12)~T0h{(YU`stZU~@+d*z$Gx$6`CnHI-62V5>sP=zv}0rrR&HAq?2nugi;_ zCSA+{yH6MEfIYh|R%g?WPCgUcFLX9w(?S@q<4#~5HehqJ9I&M+a-zV19lkCf)a7Sl z%kRXFVw^k`a|WkF`gMLY!zn9agNjM<@BG-fAi8$M%gk1_knaKgrHZuT0pOB?B! zUCBr*9cIiv171|eY#s;IF`EwH^MCZa!I;gXnq&4l%FYv!a?Cz0jM>cKm`&-%Y?dp> zY&n=QX6vC%2W-qvJ=8JVdDvjgRu3n-&wyF;5M%b~Va#R*$81VBW{Zb@%+^CT_LVvt zv$1dWSZ8B!l-7IGskJ+l%KH_ob$862hK(Zb`W=osHcvpVA(l`&ht?fxueVa(1UYRBxe zky$%tcae!xz_TfG{!tyXnU{{)v>A`t=Ro7fY?d0E`F`D)Ee1B(nEf17hE_b6BIh5K zF`LSv$7~iJV$2T3qA@#B+wd7{dyLr~IALQpH+zlQrHypVu4JT@4l`z-3ooi;Hjjhq zm`w+=oOw;gY#!Adv(KmOoQ0HQ_LIYy%?ys&ly1ysxpK^wgBfGC9@=!k#_ZHX9kZQ> z4aRKsaH9Ksm^BYEWHCB0bE7bC^TxLyL$&g7e_Yw$U-X?_58cWf-08g1 z2}S^4N-iQm8;HOa6rIbEG6HRj0JVq!h5Mc?i@*pzJj)2+(}r~s5ZhuD5x@rqEdoJ3 z#xL)&T^fVukBq-0#Ng%EmNB4Tqx{~EkAWTwS0YPea22+){Ax+BL5dh$3(=l4@F<`S z#Nd?_omU`b49>6^P>UE)xTAnY8XW~F?py z*uv){C4H@=*CRzFUI)>hJMd_rB}C%&6rEQgWh9<%k)Rflpm0Y6i!?eK#I_iXj)tJN zqhY}BfnK>|!N=hZ$kI5x5nK4wrlfC{^espchqpqs=M9VlEg=qXqv+g#lyR7`I8ci? zP`Eg-NTWE2Z7~|fA*h?hfnK>d=y~BAa$a~lvh+9cPHf?$bdtUsDI)M5i1wI7;K4Yl z$eHmW*x-5Lct|@l(gq^%UW(2;kTL@6ECSRb0u&pTy|FkmvIvZv2qQQzoCHyGW)$0E z6cNCu@$9@1)MKrap&fi)pkJe{hv~j6?lEWNGx$w>Q)2KwWFZE};gd($%JL5)Me9EV z(Vj1@e>jRs>mPv)w*HZj)_Rsk>u;p!ydNoB{|swAwP-!XhGlOlTF)Xd@@N=A>mLJA z(|WNjM$!7mVm}=hf_kj=IB0ELc+SZ9h2fld$ra@}kzS3qPT`&$7e+@uR<`}a$U@tX z#0RRdg;swIqCGya)hvfrf1IN85u|MOnbvA*(P|3UY8GkKYOyUwqgDsCwYoSDo;@;t zUTF6VFD=_mzg)ZZxc`>)`6rO2$Ni_Ug^w3W`Wd8%!Dk`b3nT`QN6@6_pMVYa{Hc)E z^R$5&e2${?Nu-RyGc5+xA_f#2mc6~`c@}|@(_jQWe>y}>&x>s_iWocz`)SVy^;ql4 z&<;NC>DOrMDZ1~9d-!wU=aGdNfQ@d(7CurT=@%va5>iCs%Mk5_5{W}Gq)H@ukO3_r z5?`U{+=P^oc$P(iT10}voda0}kr+${Vq1(N5`heYy4g99Ub%CikHc4yrE&NgwzB-| zlHMxmH;^I@--KvyIWP{iggAVQqH_yU#^EfB1GR_)g^L4=G>U`R7Nb!dg1T88=v7S| zzKtx6!*{WTFE>c~eMx_S6mhr>qP=Kf9B2t~SWnUU4pPS9Y>NZ6hy#U-1B*0@gV+|M zQ5=H0Ssdt9O&orRERDmDv6baNk@TmM{tPMN@N9XCB)(XC^|nv$~c^3aiA7) zpm1?ukw$S4+hR0|Lr^!11HE!_@Yf8#Ko;VFYldH83+q%%`WvK(z;7Yi69Xea8;HQ~ zC_2AH$_V5Z0csHe3KszuX%qpmEk>gV1hqw=7$<748R%C{41SL+jlmzWh2@1M{WDU; z;4cvEB?DtX8;HSQDLQ{Z${2Jk2Gk-36fOoV(kKRETZ~3A2CsIV>Ul8p{iA29^Xj(!f{!P)j11TfXwMbBlNKm+|Cl)~@246#q zZ83^Sglp)aZgve#uiUkh|2_N%S$Zt|7h70A^e#-dK#B-t5bddf#{z920;4S2*?>P7 zfoEF;s6_-Q+_AtSjgAGeEk>hbA*h=k3-qgUEa>&)9QdZk!aO!1ACq*xq~k~ti3Jet z>4A};B}8H&MQ1KjM&daZ32G4u3Kt0$X%q>uEk>hA1a-4>BfYAL!I4s5%7HyMs ziKLTA5r-*=_R@iIpe4j%nxeA^DdT_-Ov$_wwTJ_Sivx=^ii6k|qfs1!x>+3PRZSe0 zB1_}299vlCO46+*-3BS*uq{M;*}yo^65_CeqO%Ms<8ZFUfm+0Y!o`6_8pT0ui_s_! zLES74^r|Kf+aXKia2IT4`ASLeD(MbL5r?}$w3iQz11%vAJ5qGEN6I*yXK|nwaiDN< zV39^~5ZhujibGI0ivzu?iNj9F(m3pbEv#Q5X-m>wks=PeLA19T7zbKH99B_uc1FrL zJkR1lE#g4o;=m$};vlxgXcUK_ZWaf6RTGER$kI6Mjx8(%A?ZCN-4iL|a8HQ#)&t`} zONhf>6rD9l8He*N4%8wJ6fO=d(kKpMTZ~3=2TpqxCpRFqX>v?F&af6s4W5m8Ipe0#9%G5 zGzJG^3-6ywdLN{S!NCyiZ3o7HHV}hDC^`oqWei?mF`yPPpl~r@kw!5P+hR0|K~Oi1 z0sV3@@N;a3A`3CV9NYb{mF0&aMeFYm(Ow~~?>EQB(rEnyC_48=%GO_Ct)~{Pr*N}P zEP~b#o?{c+Vic_pb8JD~Y>tgyxw$6a_QR2-ZGRxP@Fp2jwEZZE_I3l?&eCZ6(G;B{ zkh1L;THC2b+bLYzS)@_h#kLrY+8)%++D@-3ZP$6WW00k7KNeeAejHM?{lO6J?WOJg zX4qI7ZGQ+w=Rru>_7_^)sYTl<+zcCwpzVWa*u=INMccy+TTt5!o8Dunom-_>(fry2 zwip@tw#+dek1RYdbRxvUd8<#Kx7FJ3VcvBN@4Y~S7a=4)S<;6|`f#MJt+pJQx4bR0 zZF8sQ%6&MQc9R=%hsdo+8qOx?bRR+4IRWX^oUHXC#O1axp$5F}02RKj-Jx`61eU|C zJyK|zFYhAH<1J4yB)(($lomYF3C^G{ z7P>hE_dNNJH#`?2w%hPOw(XuLTkqbBnl}>S|43vZ{*Q);Oc(D3l3vQ|1o!Z^hVzcLN#p=GWy80MjEPC#iuBbIp+as{C);yu5 z_MY%!7d%dkV)ooEH+wyITiQsUyRBrTl@9aV?fLM+{B#R!@d&o(ZY3DZ(ooTJ#av@UYL!nn(ncv7TwKqrtx#Ps@Fc^ap#}A)jSO(>+#RsN}IzotHpD- zp-7+SZsSg25qs`deoc?ZuM&^cLd)lFr5=6mmOJ9P+o$2Ng6<2jjmL;3l~VfLttzC9 zK6hK=rrR&HAv|~6Miq7p*rHlur%4y{x!XQntk2!fu8Y;#w4*P>5z{^cj;`Np8jEW6 z3!Oc8OAFz-+qe^0hdp=8O%jVNswGX4pCO*ReL8Df$_uHWp5K~*7LSCK&)pu0pDEvO zeHWyEzx51TS8EO5Sw(&e(_0WDw}MG_guDYXeZTcUaLtkNx>`JGjkeZlrF^D}?DJh= zpNo)%L+4V6TK0J{G7DVs?DG<*_v~|t({Dodc^S;&WOF%1&OfT`!@QJz=zYO8%0BeF z&?x)R<3gkCa~U+AeQ0@X=D4*R#Xi>oUV5+(J#@rUtRhM`Bek**eT~$c6Z^az&Y_R4 zpvd`0g?*?TntfP!2=)oZBKAqth9R-G2m8DfP8j=evlsi6Hd6MfWTcf2!#-ESiz@r@ z2(GdZ9msO#HDMo~9mqacQ+6&!O7?kaU>|0XeJCCKuw2PL@>2!-=nt0;82h9iD*HGO z8?cXhIMKZZX3aye&&vY)FoWzv>DWg+^z5UDZ0sv_#y;FE*{5_Ihx#j!(S&`j#eT*< zVynr(NcPbNPIq64^437G&*g!Am_hcTbnGJy^z1`Nvz%!Y_My9Y*dA%jKC0I~;&JEM zNAon0tjDvDv^j7?!9Jl#ANGkmg++{g=!U&>MEhhPsYls|JA!@A#IV=B3foz(sgzRo zQH7LI_Nj5x?HAe**yow3B4!`4)1-^ZK7G1a*=KfLtj?w#{c^I;v*4(*PruL^`_MvQ zpSTlPhp`VgOZJhb$cX~%a~5k8_6h3wt+S!M6WNC+t1;I4Peyw9tV*^7N%h)etzc$n8iuujTAZm*zd)_ymX3( z*#UDN(c+ZI_0Savqmw>#z0lA_yhP$O`--TEoK!MA8?;fCd>Z!xk$-{M2G-vTepPd8D-qrM7DY+aT! z&%@Hw|^bre11lI%yThrB7M9xmy=17^)bd{5@e087l^_hcv? zEQyEydop^+#=cT#u*A(0mP*GF{I?>b2`s%6`xz{Wt#l+^HnpsE0vpI>*iY035|*@q zOS|tvd21lPA@hm=OU&RmWGEdhNdx^iWauc~EJJF?N|-2`nw-Lk1|N$#8TGC^4oR2p zW;xUN8#1cbKH_obVM+5ekgUhUlC(L1MgdEqNFP{=JB39Imgt7T673U~q#lJO?g&`w zV4Uo}4cl3+sgzP!QiYUJSgLW;?HAe*V5y5LVptM8O}dz{)TfITmS)$*>TKH4R}q$; z4Mzb>%k4y@b8PfA3Z20cErf5##GSx843@Y_SlWs+LedmDQQ#Xg&tYu>OF=!q^;~EH zOU3)y9h)cmNit9L8k;A=*OH=nqB&q4&J*1oGMy)S8gw1}clYRd&Khmuh8OGPJ4oRk z{kxF`R(dZ)e2?;d&}8}hCH;V;AC&Y%NLwog-=m~q-lM#cvhyCKyhnL8f3o_F1T%P# zlG5FyWVy;cN>_D*dzAH6^B(2kddqv1Vn}?C?okGH!+Vr$y}L*0_{-1{?%WsnOW=X#w=@*f#Jt`2iIH1Ukr)wQT&6tVf@*87ymgU&&T=c`*N-J zWn>}#Ux!HMsZYYW@5OSh_Elu|x>mcz>HR$Q*PMP6&QpIAX2Ck&qR9D2b)K4e;Q~%C z*XVt5xu)~f^t;gLJT*NoGVLcjh2(IUCEu#RlIrI^d9|sTpabdT%(84b(!9y zr<;*l=c(yyq#k$`XQ*{&TzY*Q&Y_RKLy_~3$_FHBX}H=c#`{+4%}m&QrgVC(*+&os;Fv;5;>@yYyl?SUMaKZ$DLBdg%|B z4%nqv>Y-kGIS<{XSKUXj)WeDHZ7^#dVxIasdU!ox4sYxtgY(ps?$S#<^z+nu$jWJ@ z^p!fh^x|fD=~X(8L;ZWmC@#I4egtbh%GhO?*i9L|?ju;**y-*MQQjJhIqO%kv3kFr z8Jx4GbeCb$SU+b?r}2I>(#mC6kNfp>H_MsEbJnWY{^Bv{FT*rXgUWjRWtg-%T*4HW zVWCK$%dohESi~;F=!RW}(LS#wq#nHt1CKIq>NsM)wt>Q z3vCFOVY{G;_%clFH0feqhV|)Uy$qXO7pt>rM<*YU=odP>45NiGXB~F}>#)l(ZjxT) ze!VnBP8yiA4o^4-bwMxTI;`$~J?D+N9yJ!_jIP6eX!q;09@k+If#~%FJ{f2gZ4eKCkN5Ph-{RD=w_r=4x+D-dUN8SU&A@{(Qhbn{!!r| zDu?DE79N6wLa~U0615>otnI-;zkn0QLEP-cL8Xn9gDM$mrNeO0Z{bCigLnj2IfxEq zIrExu5YGauB8CAo0+1kRGzJuhba_akJ#0(s3N>zeC1sIp|L)V;m%Qn+%ei zj@HIbcmIs?)>v@RYXb){gB(QZI7k}nIfzbYInyQ_M0c?Q2GW>=RImNTW6*Pu=4nt_ zkLMt1b6|*qgF=x$929pDix>yd4dWo%CkIJA%0b+*;Go}QJIghdQp!Q9kTS|aHEz27 zLL2&Vkl1O`#pIwqU9225yDnB|(~eF!s9)%egJ>aeP}~Wu!#IeWB?n1UT|*L)3E6?a1uKL3cR4=b*ni{U+p~f59wHJpZQ1`A3z5n3r-8y)PI? zIf#B28s#8*TxgVo{sE2WAX*-q8NKgDJ-2wpNj*7;9!6xN97H!GwQ>-BjntbH2mJ@m zp^r9DF8jDxt@i-SrVDF;) zDhKfhu5u6^$a3a2;UJzJ$U)gk$j)E!7dhzqz(LF)2T?i>V!4uozEWo##Lbd}O2=`ikHGG1IcN^b z7zc^nCW9n7NEz}Ac3rH_rX8JdP`}U_2hl>{ptuuQhj9=$OAeBz z$VnsOprF3fIfy5)h=VRG?~BcY=is1)5D5pJg1M-x9RAbEddOxh>}V?F2Hb z`(ickuF}JZY?OoOW~5dQqOXy9bK;;Sa1MPmNs;r9nfKty&vm;YVC_|MmxRipIf#Xa z;Gj?};-ExrND^y%aL^(+VI0KGUK~`~NI9sIkybhk2Tj3?DhKfhu5u6^$a3a2;UJzJ z$U(~}J7Y-6L2ux|dz{=CV+J{h(s2;Wl^i5LRdA60aOr??Q0k#_kn^ws2dRe>T|AUp zcnA)+J4_`-3sN6iKLDu116bB8$R9L8s)8Pz(j8hOvDT_5v5}yX}D)1HXzHHHen*V zi`D;-#!RGo?K>Wio{2P11I&6n6G@u`PZUfPiu7TkxU*Qqn22r|6VX1INa|50;*JFq zEyZ@0YbvFbiButFl!0iaLSUk} z6Ih2a5jRUFlBUQBBx0hVZq7s(+C8$vl6z#ov3q2Td)y;C0lHJ-dt^MBMNAZ)71{<_ zV4}M~Buo^Z6zxQRMui zGB-r!&`iX_LoiV&7BNwxHav;7J(%dOaKe~~o4uH*w2?AVB_pkL7$({oUR0TgM{t#i z=m1u7rQZ$K^WfQmOw^+6Y>Sjk^d=6x`m7K$$V8NmiCC^=BKfI;iS&m{2aJhQ50#0W zhYgrWJ)G$73bW=RnCQ*)P@ffI2APP`F_C!anMe=W*jMU|iMUxZQRz4i^<9urFj3QI zg?2+3;~=ryWRN5WX=A6mt5Dt=3l4fq;2>s@gD4#bNnba!lH5noBA zlyZOSK8iWAX*3<6n6saFb?8o z$wAT-IcY>36x7W*XcIjv#1mKz2dzdHIA~9ZS`OMBnY}n@52yDWbPuQBgdB7)n8k@_ zZ;G6MR5^%wDF@N}f^n3C=y#z}4x-0}Mmgx7(0C4_<*}Kc-G8Gv=-7w#`ypet9CRSc7zc^nCW9n7NE>sLj!rnJU+9d3 zXd!S=+zG71IEb4i2T4=pq!DpYP~Yhs#1mKz2i*r*;Gp|K)N;@v$n3>IhdRCIp!+)g zCgh+8z${KYhg0PIqsl?dOF4+%7mTAEM86A-au7W(G|EATLE|}ymd9qcKYXJ&=uHpr z$wBlmA{*r(x*4gJgXn9d-kdn-2snp6dLTv4KPntV<C*0qBbOnwLLiK z{&2!Lh?~7QsI-xCP$eU+bQlgg5?)j}h(~ahgXjRhTtUAZa1hT9HgHjKbgPeyAI7mI5=spN$%|md|I|BzXgB(QZI7mG7 z9HfVA>??J~LEJ1ksB|2M`ccT3Ee9QoGR8q-x5*$$4${U>caKAPYb-eEU4es`K@OsH z93+kP97Lz_@eZU-IEe0MIn$VfRImNTW6*Pu=4nt_kLMt1b6|*qgF=x$929pDix>yd z4dWo%CkIJA%0b+*;Gm;ejT^Fmf zX-6j<)Gu_#L9`G!DDDK-VI0KGl7plva?*%6D5&pr4&n(c;vjsHapVW`4*i3X1r9n9 z!Z_$wte$)(ZnKZ#VF13fmgUDIv*4hY;%S+6S8Oq|;G9fXpMNMaaXL7eBIh6YUR1LB zJo5sb(1O~G$>Rj<<;jDk#%A6cp3a&17`CxEJcSw90gs<7ven!-YJK*Hp)$1M;S@Rl zs4Tlh<i((${Jkybj)`27fYQ60Z| z98|||I*{eeYchWGsOI?nXv)q*kaGNfHwO$|pPd;TzbW1L&2r`VEeA8kZ#}f>fQ{d& zhdO>c4;zf%>fuE9F)(W$V*Gv&J=FEtnZfa!(v9EZp&!5Xkd1w%&c<(Umg9HnI1cqk zBBL0;`#sC@SnOwGw%BTNLg$#R4V>;i4&|+Z7_;9S#%yMA%%*f>wlvU>*>p6^nKl`- z=`KDGgft$rRj+--K4W&=DJ)`RHr=o>oAxnd7EfByx?8uv7ETQ~A)SIOe3$K! z_+}Kgviwv@pD5{RNS9{$=@9L^4E!=7E#Vt&Pon5N9x1=k_CEYZ*Pn)OJmGJwOi1C@ z7-Eq|UnUgWVl?_PVNf^wJ|(?!-zC&LG>St|H;V(ks)<96ER91K zTliLrq|cG`xkwR*b0OM042%OUAr9wJbUH{GhYwmDs6`woTpU=WQ5?j!7>(i()Xm~R zuPSl4P0kO`Lzc$j`PjneJtVzA(hHFy4ljgg-%a9h9+vi#j}$%+8;j6{^C8z9ARjBF zCB)%H6rJ;tG7cZII8ci?P;6NCfox<&whV&;i@?YWU}Ver?F%3luD?50T^*mldft3p zadmnwS2`5iVia+>5c}y$he18odLgvC={FoN8X3P_J|l>;;MmADuN~ROz9C4jMq4l9 zp1M9E&y(vV4i_Oyz3+?WmwVMB^HY&gDoMjSpKis6{j=HZ1#S5e*iBkypS7qJdXX>Y^dG#VDe2HTKhJ z1oc?!8fei*JuWUA8NWIl7q59^d0f!1(bl!PFW0RMl5QG$r%AV?As5L{i1%&xAeC_zQ!VR(oLh=PC$21G?vL_|cz zggnKBV&EB3G2wsDxz*F%vuRlU-zVQk-9B}@Zr!?-PId3hFkQ^_9!VtibysXuu?=((`w@YOA?0%AWH6)6mfXk!~wYy2MAXjP$a52&^C>F z;^1UQ7YBG%NgP&*O5?CbuKb|~nLfnyVM!$pYef__t2Pd>Bym^=QLE!&9QtIBb+F`65-Oo0vW;sl?$q z5k*H<8wXgDI6Mzg^0cIg!zL34>t_KM*BvNs2f; zZ{mPli35Zy4k!{;9B7+HJ#lcdql*K)sw58YiAv+JN3QȂ+)^dm_n4j+psYE^9< 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�m-~Y4s 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

Al z_Ul>CS8_ycTRqoMH%EuQg;P(0%mda!InG&El6@lvUHsr-PyyyI+FZT|ZD zkBM<_C23r(B#l=^*;&{CcDz-qakXkSUTp^7c%3J}Iwin5OS0V~*{(>oTaq0f$qq%b z!;;i{B=w4<-jeL}NOmfcotC7*BWX}14VGk=N3u(i?6M?{9!aAjX|yCw9!ZlTX_7E| z4ZhbKtmJLRV@q1&{*o5c#Fn(iTfB0}O^vq-3sd6$r(7gco9Amgp`P;HKRsVmX?$bd z|CCojeyV1?O|2fGq1LasTncbO6Rdh9XaeR1O%8F<7m!F8Bvj+=$*^AC!bH%p!@KLe zVj1xG<2`pesN;I(V*CN|3rb*wdZN=49rw+l7;-p{?QE`Ki1<;1ojj7QczNLTt} zB@e`q!59+ThA^Is(ZoWd@z@k`+@B&c&;AsVk;w$H5#!Or*iCOwCs0!%=OpO826exi zFm!w-*1+>IWHyFe5O*f^=I1xSU|;mC&P8Q)E}GbH9GE?O2BWjzv7G{ZD1%JrCVk6-c_y`&huq~p{1Fp8V^qPY2(K13dUlV)Ct(U=L3 z)zuB?5O2aWt|mO=^VXSN^F(n?iQ<|ix$co%S0vXhi8nDBR}+)*1xw=13C7i&V0_V% zc+vj2iuT8ESQ0P(9#`@A_>xR@R@0?*m{X1~d%{^(!ifd;<2Pd}5ew|cV}bqnZSm;y z;?d`w8>`Lpwe{%pzDJ+e9vwHpRbt+q=H4MU{O`T*S3O1zXF=bsWcrjEPAcX zFV;*{sE`58uw&g-r2x+*bE~2*c|PWnfp{)CVLJ)8w9;dZoX|v745^MGbunan4A~Jw z>SM^x7}5|!cEym!1jk2BX_9v<7P!-}&weA`t(a)m+CI@7YWqZU(!TqNJ>s5kh-!7& zKQ_;8jFj)Hnb-@zVzwok+B&5+by`|potBpOPfN?|)6(R| z*5=1?`Ocb&7Sz_M+jcjh$3&}mXv^>VJA{cgum9Rq|FszpZO^@>c1BjfCfZ|2hiD&N`9`YDEq!>D+Ly68Xl<4$AiB99$CJuWA9aaS$mZ5H1 zMz7s$$WZU{_~}yo_`{E_Xm?CAdSXa#4C&X}liz?Hwi5$hn+8;y28{aKJ-~T74}=%b z{IR*Ni)Ryq9(RL^yFsfYDUT$jNK%$0=aJ+TNzRfKJd%PUDOi${M^aKGB}+2lkxVF( z2}^R;BRQ)`&RUX5k7QDjOj?pDk7P=bOj(j?k7Qbr$my=+XLw64+>N#CQP<1L(F&x50Ud8!d_(7Lzw1547nIX)E;1RXW?ea(9K!n=i)O9B*apku~-U- z7fU7W(joSvPoa38PVnW#IN(aG9am$>dN+pZ)6f@BfQaKYilge`oC4|MKFEwr`a7zw+?X|Nfh~U#m1<(>SB~{90KUXf{`Em&_luKv| zcEnrEb-WXN7(Abx`21>#FRYf>v|8eeCh?2O3|W@SBwMD+BwM!1BwNN3l>D{i&U}re zlSrM|nXgf2CQ`qc+%X5s_3=TfHbE6zf`g<*WfGc#|0qeMT*q_elb$c1^g{WhM4f$& zxJ%SoPDpGICnUCq6Ux@{V({qx;6%_%hU%lBY9IY!i*+>U4r*T|lXZ&H4$!|N!TV(A zs`#>(z|%xk`3hb1Qm!p*0{aMIoGjvjpq&Onlf8H;Nycr#Tg26`v?Irf;COI`N`5C0 zIH6B|7xZ;4Ft$BG57l*)nCfSy80?{cd;?zIr_y?0aUW_U!tVvuFVkHg)pC^TU<(`p zo{Iv{M}ZfjK%x=YM_pFd2<)S7TP4vBrv%%wFK9M76NVxe%c5h`lbGDJdUCT%P7wRc z)S$j3&E

l$4m~`Eq%f(=x>|mt~Te!@kwb>I=zB4B}lYP@(ZRX z%Ot-ZVXNl0!=y}Z%UWXF#d=HeWeF^MWeF^UWeF^cWeF^kJCk~lnS3F5#^})V!Ky@- z*|J1URFX9ws}fnJ6U@(kr|yY~R@oC1R~cseS085kNea@u#BsEr6y4UGpbO0NDq6gM zbtT_VGPAi8dQmuEmEaD;Ot`ltBy^0l{uw2rRfs}ne>JXAQq?n%rmb)lGHpN-qOVtp zqeM6{vU`=poJifA_r`nzeD+#vGCUV|?5H|=?uo#3pkZ`v$NrLUMl{|wM+>wYSz(ffh{zmW$m60GE zPT*#iNqV08C_(2q7bl%g8f{XSn8D|hgk$Tx0|{4PNfLw;@?eP)M!x3dg*)?7mL%lm zg`|#(^72BmJX@#_67}$nfI~j^risFCfv^+pCg+r%DAVt6m+SYp%lG@+D6)cA+bSNU zp9dbQt*&^eHuY2f`Ah!!A0K*%cRN(dpUp(jLjQKszYhA>N&g1u-y!ExeQm!+9+d-$h?fA;cE7ylgM?Cp;3 z@aBg$GdxQ_*~6AOE<01jcpd+oeOOrBV$+|t%-3^rFaJ#O&ocikxx!0)dxL)#=_k9L zujZ)!3}vgy;P!$eK5xp*qLo*f&1;k)bDOgUeET%#r`wuLVCxTT_6&Drx`KbW)?6!J z-L$FML!4_b|Fluo+Vq2)w`}1%7D=Yxl4Wx4D&?+v-Bn5S;!#`q0GBXe?&)NQ)Wwb|QTyA@I!ozXZdH6e|q^RMJ>qL_6%J!Es{gafrDc;5tcC*RDaJJXuy%7zyB=P)M_ZSBw%{+Z#QCdQl{$#?VZfMcqM zZ&6vwN|G3>9a`car<_BLOm@iT8fv#!lC_#s_wvsT{$bJPXB^1{-@2ihcUqU{igKX@ z&bb`tImaa{?#tYE`l-!da18eO-u34q#(AmeB>~X2baKddNIMblvOoOc-1=oZ* z!g|qgN~RC^)H(obetw*h#@c2Z_JRxwjM`DNg9NPbd?t9&_L zd90*tJ999li_5m_CS==VrDWSx6SAzBDUNQqtFyjh{+tn4Htt}k{vG3{V?f|`SIQll z0CK-_K)Uh)uKYaxWCxgO`wmc+@odR5HDIe6(0M00?*&UU>B*QY5@*J&hT;KkOPlnn z#GPY&D$e+nR|6S_%vI)K&dCRm;xNPU8%s5Fg==#Cdetu**$huYX~mGaqDsrM-$=1* z$eC^gUZaH)*TfU6-QK5Mp04m zD=I1~Dk6?Jg2TAXFpBy+=iIm4m)w_>CNKW~zt4{uU*BENx#ymHwtL?Vb`sjoBN5up zRSu){XxNRIYNQI~hf%>1tMRfRyj9NKnlK2BtO+N`qVPd}0^m2DB~s%VWt7!no2Fcm z5jZciPTS`>Imtez997!Iz%WX4-(WI~Bi+so;ByeSphhM2v2M~5(xr0Z5vLdBOs(N$h#+`Dv z4!&8FoZFPZ3)q=5+A!ZLgf?kt7Y{77SMJCsy-*JE$x6N={6HUJ4Zpu9zc}O&jUEwnA&`)80h1+&q>~pm)#g%MmysW^=^VZ{xc!<@j$UvM88mq^;0k^oNt7ILSvz3~ zx2$u0N0BQdOA&yEHQ_E?X=)ttY)2JUOyxOd?G*$PxdCoQR>>4YCWzbv54f6AMHNz* zl`jE@%j=XTY)MjW1vp$}$;QMwk%7ZSrfQdRyM&%f5rd5YTj!8kjevUuPt5jdI|F^#~9t(5WM zI-$P;5|DL@7b-bW;4X- zttLySKGxRVEEmbKgn|Na)YS+=XM18Xd;lj07&_Zew&p6W+0T25%Nq0XC+*a-KGs%p zJIS-x6!%rTrDFDLmTL2SQ!e0X89?Y-Of&*DqqCha?-XC&sk6PksTD*Xu>A=p8i15y zC9G$;gr%_090^ruXE90mqdSR+bhdZIEJ#L5u-`7MUoNM!y*1Fg;Wc``*#>8z;Y~`s z%@S|7wVG&`q#cyeiT5n6khaIi0@YT}r38q-V+iJnvQh`#9$~swdStGf)j}>N# zu`|1I9pj`)84Go9!4Y?2i$ejZhN^Gj+#I5KCgxbIl zQ?uZycpYD?p%4`FWr>u)`|8wHn>aVRkQrP zNaYG0DWymQ=vgiS*#Ie?npjm!P0T^4@?=6Y6Ym#K%qjuW?!`?MEw8`JX4gf;>-EvfYyix z4b3R9b4_UG*d5d~PAs>@m8%R9u_8l6tbG4Ga4Od=1gteZYZpE+3pQu#9^UwF z5^#(wk9QZqAK;twD27+YVWD9gA99sOYHNxeSPUQMs?<#=j+FAn{nWJz4PkUF_Q+S! za8{F+LJ8xBKKQl?f?FRs{Lyd-Qu3`kfR_WBy99N2XA|>tl(bzb1>LPF#Wa+HT|*ks zQrcNITIIBA^@QA($r?S18Js4@q*fDC4zmD4hb-lY^dZ>-P%^aTN8`(nN)`gOS1bfd zDYgUjtdtB!I6PKZRbw9zWX?Xow02yO!LS134Y6+ItvQy#L4d8b3M~Z6LAtgE1!V>(^Q4;HbfOCRM9ubhh_Ed}vJTStUr( z?pz;MS6tYcqZhT)(u=a>IUzL*eXFxB=XACcpK#E-F~d>=RPKkAtz{n9kDMcM-VP{K zIge5jZ8up!KmheODYR8`6xw19j<%STXv^xVw3X8m4M-Iu0F?$x7Kc0R=sC2wQ;xD~ zsyW;TTOcKsY{z$HJyD9ShVTZ98waIW`AUYi{FuCk?+OlYt4JQ#apC9I-c!csI> z7^{I=G(82YV@s?< zS<;Np#^QF$jI$(62}|_WLwjlbpud}r^;trCyu^k-H zhPlgw4yB9^*rW80VbaF!6eh(#t;|sM3~L_#0Xaa2ju9pJDL#BKP0~YZyu%VYsB|0d zp>`YYp=3AiP_r9%Ahggyf)+YB$l3Qv37VK)eg^-*%RhU zX5_|RSR<5AHKad{T?t0lVm2!%Kh>#NOLHVmeQyF8vNC9m>lt!u8FFjeNo)=aNMdqj zDK++1G3YI$6|yRsAuFNaV?9A29!R{NCDs>U2)*%;rSTw*l*$gVvO|<$Ox<{}E6oL4 zTo6H_6}UsC?<$V$tH8OE7l5U4ZTzsHBZ38=Bf!T91mpmNcz_c7SOQ9bCE9hfw&T|< ze7Rt0+)AVg_n?a59@J_pYqhn9wXL}w)(ZEKmlP2cs0H28Yj5ZhzI%YL9z^w^Hz>s3 z;14AT4%8;jh50M!LPXmvQDGyEhLG6Ikl3u!Wg|zIjh#^{GQl8?qbsr^wuf&BfH6n} zC{q}2r%WNdDk5Sh;@T;nkX`;dtc44GsE zLnaVdZ5c;M?e+gaWre>@3UNXvWo~mi$g9H=>ZHs9yvo!I^ckXGZSEx$JYH3`RLV`4|V$D`{gK;A}St64yjYk+ag-HTN zn5d1wo*1mvBdq=rWjx_I>M+9~B_)B-1&J!*F@}v~j53ljzz4YmPOVhVDwQjh$_qNm z{D8x0*9$RZOaNa1VHU|k_8>mk&G=w<0g*|OZ8%Ge(HVB63{}7m2H2qhb`+FYI}&z4 zj!;k%izH=25lyOr(JADU{;on2g@Qz)P*5RJDAGYDizO6Mvm3bV1~uEqW&6}@PO61g z$u>kC<};Kal{#G@T->`Ms2efM}w zPtubcq?9tOt?ID0Dw!M9OhiDMfUOLrtqMw83wna`$Hgei=g=lgXbXG>Cav`lGZI3Z zh@@K>Nw-jf3H{J!)I4CpgUpa-kEX~H+N1K*o(?KgLN=NqRNq3guTHcjv|DYon`;E` zw1{!+IVY0I#}lQoH=v8QqcqNaY@GX)aqeS`M#XtUaLK_ZgX*Y(pN{bT#Tg?ZCW%5v zRE)y83Zn2T0}i(%z@)XPKhSQSNofK}hcLP{!a)KMZj6+TjFdwdU15)3w&{Z^sK%h$ z|6tbtV8~(p4=!kj{fA-454#Nyr=G&YQ9r@QcWfeARWN=5i+iYA39D8j^Go;~gjb-H4JXrZ+vQopGvJ0gGdKWwXxiq{pk}Z^VM#%*$qY;eVgw8hM)&Y+g}UL{ z9Ta{H&pylAMY{q(E8PQM8^X7SmQYvt&Jay1_|i~fZ;TCwB?Fcy#dKDP=`2RJMn>hX z3?Z_FLu_V3aCQXbHY*7+8+kcZYg|r)Xku-eRAiTO$S$QiYgwJOoNXFjE^*fmwc&EE zA;3UaFo%rGUcJ#M=hz=#aXNbSf`LW|MufqLAbX+HK(1cn4uN*?StCWgINwt z7C<{0FEnUn4?u-yp><7@8-m>glxnnC2X zv4l;bMI%SV#-$x4VZx+%u{EE#iwR{w4QNme--AlsuV#P45lf@uCliIL8HK6|Vmk)0 zoeFWaO8rLAJkr7rbNZQ4x{=Im=zO%bGe0TdSHs7zmT;*hGMvp0dn$wmYkv!)7@q>bRaS%Pc{-=Y!`oF1!`n%C03r0)FWd7hxhso;`NYCa9ACXr__=vJP z;8l^BN0`LK96}^~L{UKDJC0{X}|EKapN> zQy1wf&w(;!5_p=r2$O)3t~6VTvqV&nFg8#~A2F#IYTi|49LYTy%nKU2G#~s#khIad z9kP0kt12uYutXs62D)G~DcVRUR-qHofGyz&8yOP?k#nc%2d7dOq6!WSi zZfQ6MU!^M(-f&Ev@P=bV>T*IQQmz(6DwO(>3fZrROBPf`0v$>gN=Rxxhx(esZ&^n% z1QrFUukL8``_XVoKA@;mhEkO)i{FEXuKD8lBfD@byr#S(1ev37g?Tk0)J2Met2r3L zZ)J&Yr5X@7$J01+QYvGul`@u;LgcVD&H7S8?7&5yp0r)l|Z4iU=7Pk@c+FdMXLBM35591d23KVl69KONn(Xv5pcx zmY}#^q=6+GG&5R)1T5i6pIAJDFV;*rwC2ka4j@FeCo2*TAm~Gm{D6qf;d`e!FM%r* z2xVo?l^mQq;0ifCBca9&Y35lCW#(B@4)^HNQ7{uEpceQHgq_P`cca#)3ju08oARe&0Js38WyE_ICj zk;fRwMj%l&U#{UFkk%S78Z5D~rj$R@7+a2|n&N~bjj;w+g^+CEkw_dbROKsZ$%*6D zp8V#{-!X%PVDUX@SYaiSVI^P8%P{!OU=47tb5Iyqh7Ol*>-E~!TGT-n&`%Pp6O_nE z8pO1u!RCa4+CH&={9$0VoS$I$zExKA<1zh?kOqXJ@3-Wl~-@{&<;`hi9>* z^JQ{NS#0&;517RlB8C9H+7elXz+=^2W%z2Aq;r6DSVz%0a+={URafzsGmuK~-Q03Z zWHpWtPBO4#WNHqaRFKb+!Pk?lnuL5qU;ZFjLMcxh)>2CwmM6~w$v5m@odqR}&U}yr z!Y?=p2kFd*HdErsm6pg_B-cuXCzTwP@1O?HcaW6$mDQEYVl2r{ogjlkMFLtNpE}WG zN`0)SdP*NGDUX!IAy!aFs$}tejgYl`jX5$^Nh%T;m8xnU4~vl2!lEpdbJoRi4yDPK ziS4pP_);a!O83Q;%4vz;5g*op#4)=HRDKr}@>o+lE!LEU6k?~A(D7KWp3;*1j`c8) zB)h;^YCU8y&`7O$Og(HA1;ZEZA;rUv=Bkc&G#CA_D1?^H z;1?{nL1+S{jT8bvlvqerTFz3uHrjwCIhL3jw29f&PGdF|7Pn~`Z9rJDT!IBnWx7PW z5?!KQWx7PWs@r!_cB%*lEDlIOm~vt)x>?DLZYBVO*>DC^Vm3?6R*A zIiDp;v4bd!9YiU15M@z?=qfzGf%gl-h~N*72>!$$mWkOc(WMmkirLsK*@yy583mT& z4q`hC)QZ6e9xxKPXpj)WeSf$K5bgmK6e7gvW`ao6g<34JkwV2$a8@u>9i@;+ltm|^ zK9!rRJK$QB>Zk``V!b3oPu)_BsVfv-6;_Y135h5Z5@BatVx8DfJF%g5VrN`%QORdq zV#tqhZ6T}B6${w7V*@y(?on~QM}@kPLEWf8-N^CCW>&aaDcmeRI1;50ebht<>!BR#M|x&AVXma{hH%Bhjq4{*hzBvUGATtBdJ{Xlcf;!4r=%3xv;6qE@ct565V zjtqf_l!e1?ZeVN&IjZa+M_~t9nFtnSj~-E49^nd)F_Iip3Xc_ZP~rDb(dwae7-MpZ z=9*{%JfRj2pblZdOL)fM6M9;QK}&R-#7{$L=s`xRASJf3gt`F}9irk99isMM!ul^! z`Y!=-FKLaKvO^44Q36odd5ujbnonjlpG>?TlVp2L4c*4dRcNvD;Z_T;8!XYimgqdV zx6%^bVTo?AM2F)_ggYxGGYqZc*istCUN(%ql$gg7^9X|>3%U2*fB!rd6=NF<`k)GHyiBIn-fnj@lu&+M;S?J{DBrFoHyxxQccf zES-Row+>=pbL_Rm##mwpXyj~v0PYwifMXcIF_bvK611llV~QxYj)Xf%7mZ}M#E2VW zj5T5#I!VV~7zE80XKb}HnAmFC;*2#(!{4nLdlQ4+q*mX}4U&I{2{TDu9I@gaiY0Q4 zIUKXEruoy&MZvv2DS$Y zRF7>VqHbfu+9sQq>X9#cgNs=eBLw(J78Kj_Wbqi=&IAhPFln}35m>R!(pX5t$2K!i zV7AEQS;Y-$Rl=rOEEhY3O|w`;AV0vS+beZn%^4uEBWJ>7H=C{D@EKf`5!+&k?Sxxq zEwQyklr0R?EtJ^F5<4lei6u5sVl7Lo74B_Cj#^?zm7zwCszZ$&rPfDTYpx&$X1Pq7 zW3oPn+k_Q65HyrL1#rjkV7R5GH9X+z6nwr(&$n9*HWjoTOm==d>2D5JEyc$Ge9XYd zYB>HrfhLI0;8jma|!Hv{8l-rg4OhQ9~0}ZtRWkjmP8~aIRP$SBN+OPU>O> zf(yrK@%@NWB|Hb);S7L}jJ@rqG#ysOs&JlE=`EtZHmI*Y^>vlRQh5q4OO>~E)Z0oW zy;^zOs=RHWIy42LE%dIE0L~C9i0q~^ZV+sQtjQ3i9vrWO5rl`+vqXjhhuUyl_bBPf z%G+RIgFLD|qg6XofznZUHZ@_iyN4d?26vu%oYM`QX4I$jJ0Y8s}aHM#vL-y zkc0Y|K~I}fxskQ5rtEfV_G;x7jtpT(J@6SW#V4Hc!S^ln+@V%vJiSfHhzw9)$6#eR zHG>WJ(Q}tl80Hq^PAWS<&qFfq;Ukn*XC}N6Ga|j{*;VN%qOxQpm&)?#N$d$nC9q99 ze1{eRc1%G4Vjs|Dbh(lNaSNGM!L)<27}mhB0@ia=&J3la zu2fb^WrRvJUoHc8UIt8ri4LY(v*}5wMhR{3i?L@MCV0U39*Rpt2x6RbGoK@;_EWU8sUOMtw&2 zQj2+1IE3DJ&~pPlhf}^PdB8A7T$ieF-IT%Ls#A7^S|6mR%EnP53z(=f)?k*(uV9KI z5g8T6P^SmzNrVR5NU6A*velIyQ@Jxna3d;n#O_hsZKQVF6tZup^k%ifD$3YG&zbHt3qNi3#<|4nUsUP} z_}upTsgN}FG@H6jaaH-f0q=sKb-dT_^ZM=BzsZzuHnpAZbUW<#O&> z7FGwXFFs(^Y1Hs1v#H^FwQ%gRTEEj;;a%eNS5`aSZtHlr%jpRQ091{yHt4jvUGx2R ze|@2Kn#WylUEuXwYXeT}5?8R=8mx9&6WaT0JwaEEv(P%#8??GSL8r&zbWpp6PLI=X zcUv9KI;Y#~s{t_BSE0$&!E9<%R5+|~#3++#sM&P7f?gqYU#Oy2D4|y@K%`zRT?j)>k@%foVR#5UCqD&TLw2#F!^JgSw@zCW*o1;9F`53jMo*Iu%3Np(;{QX30$rK zgvGSjY;qe55cykyi2U4OHvJ(BAenrX7+XQ02$*T9*%W9g0^_}&pxp)9q|)iHb5%Jt zay#i#hS_ZhnN3$20=bzQ1LSr(Vl3(4lZj7Yv}I;ftsz5Cp)f#lH>?B+8Zrbp&iJ_c z>CS++)?ekE={MnAq?i?4hF6(QOAR3f zPRdm0QhlvjR1D+49;V_N!{Em;MRIgN+4#+-8Uv8wwW~%D1O1nqO-l?0spUsS2*Y^O z(K|`Fj~_3u=|K1f%_gtG!;RDDAobF65t=zpfecb8jWWj|rNfh2Abb=QaH$(4{1Z@! zn}8xX1>_r)9RceCkossEDNLEVT1jI0P-7Z}4@lrkxug4 zJ;AY6V4^2+Ye6>EnoYip4RN}&&b!E&3M!Z%=_ucXp$f#WKAk}(W|YnZJjDVn8g2y8 z6icTFq)wzJ#aYJ&4JXbZ1Ln-2xaH|4;8JC_fISwP zP4f*PB0^QbprM;V(|{ixCv;SBAjrLD)0GAci?88a8CwRA`eus^fgXUF>p`@-Gg}0 zT3En7>3E!FHMqmqvc14`gh3+Q6c!y=IGKf)!kB|Obel~JTPo}l$Cu2<0}Cb{`#cet zfJJo;^fU#K7`QGpbi2|C#3q6h2y=btY5HF}&{Oa(hJVvBLv)~~;9v|!r4x z2$QC}pzo3HU~1aTNjcWYRL=$BM8uz|dT8xDGZBqb*&D<=%y3J$83}&{d@|^Cm2X z({;h=&c(IPKyW&o`WjbX1}E73b#}L|_JmnZZp2A0Hc_J7&V_hcm^S2HeH=rWOzia9fh6@W>T{jBwjjOV`8|;D4UKA-8^U-MF%T2ooG#^$Lty&FpjxTjA&hVkN0AE&|z>PB>2&iR4g0 zqNQ_=LI9Q5|N615be!E3KrXRPB^I`LHMV$mziRCyhKuA0_SAdQ00dy(0wZC%v*5@pyL)K#<~og zR2psEV!?=4Iv!SvNhOdXX2MPC3@h{m>IyjuH>xwNQhC4v@t|?MaI-p{&}|BOBX})5 zV5xLO?@at8RSgcDaSlSzHPe8$=^WG&0!yl;!9Gf7-y{xT{6wm$WR!V>uV#5e3Z!*5xPu3;%#gAgkVVt_`k@6xKrH0B zQ4leTO*QdJt)-q!^rf}?uR{|JDyhRj&f}d5t7L*+=#gmg8tWLSbAz^ zL0~lMas_DL^uA7Q4n+u|6ud#7gr@bKY_l;*!6N9n7$L*BIpW2acKIrz1CU5(M>{n! zcpT!)e2|~ngB@q@gUC$B>^{D6^O_4JLwa9FA0KGJB30%d7iBtEyR-n4I1ZpSkYyC& z7y*x~rQ=y^iE!NJW#$$@BIu+p3YwFdqr4dSv;_;`1}0slfJ-5*t?5*>M*>vT&Ud>4 z)yeQkbI+(bSm0)_E*)SUrW0XJ4xg95yc`0-pH48j`9N_J6p@orksr@={7?}pV?PBp zi2QW629IyVD%&aWf!))I#~vSiWH<#f3i@>R%e0`U*Lvj3zm6v$k~!MzAdt);MroJM z22QgnkTgmI9FRFxBcww75>QwGmV4%yFC}PR(7=+dB~ei>w=-?%30?u9w9A~Q(Oe9WS(KST*|G*!^mWFsXnraLYg<7H z*K%5Cgj>d{+^SYkp=FaL9l(=EUe78b$gCNRTgtpL-RpL{JPT*~7W(auxX(`Qo+@YZ zPY(=G1xXNs%ZvTNX_XSLx}px%wgF~M62xFhm&5lON%SVJvbC_vZpiE^OM(+yV9BQt zwfTC$>Xz(c)y#QBF_6|}iDEIJOEZ4`jVHpXs}E2yKu9(V6)m+Clu#ZRpwF9ylEUu_ zHmJyM08Uz&B~Ie!isN(zA6##@06wdKFMM=n%^;rUHa6l-E?qH+QESc8#jAAjXVFWe}Wu5^1 z`~cj>rpuG$G#QNyOo@!i#V+R(ePkdol)1>9aC(yZ+H^&2IyZMVV`9h^aO)d+bYns0 z&Kl_wA?YRnUL9wI?WxjqfEKWl2l)&(+Bg0^QjAOP0}X_eioI%{ZyeGo9-ke#wHP`c%-@E5wJ@)WY#X# zFv>(P+(SRzS>>&B`r&tF=r;-`+UNUSRTXY~5P67AU8%PQcxjg1y-1&K*^s<~P>?=C zD0vNt$7l#h2&J%Hiw)WwNJJ!s35%!24PWa-k!IME#VCyp2*c}9r5VyE8y**tC#Aw3 zhEmypZJb2nq*B|%z_K-591>BIEAL?_mJJB;h$xamg%3l?to?N|>F2-X4gFNV=G6>q zoAF8W_4qIpzgbyM%~j^ZQ2u6#hm))HVJLu&wsB~}nxWT+p%6CM3YE76bamq}6uw65 zM#*7JdX{4t%3PzF1Q9{6F)1d)QREuEss)~7a->lD8fp;p(NXQW3nf4bIArd;jldk{ zQDDMF0S%HiYoOzHd_j7p^Ce?S5zmhr*g_dHh=Fp^?eooROrUrBRu;h2I>?{ z$nnaW42(1CRV=d0g)Ay2i$U}t4Bb`Xr$RN|)xo2wz5zmTcNrFf<1sk?V4R9+cBLly zIy%{OvXdp1kl0vR*A(~zKIM<81oaN0T9JS5Sx zBakz*yh`-6?a1GQL$x}0Bnr>0nH|KU0?j)T_%v&#H~Ju&k6lJ0hh|NMN&c4>17ymq zi7MF%)1WX4c`pTeJ`D()im^zxJ8aOFVjLo> zQK3r_Tq>DYC~hp*}zFHhcyuGE53(8XiG=CCYlBqhp#xh&zG(+LhfjI*XB8aGyLhsRWxh$cQ zLj4t^tTkYZT|||X0+)`?8Q{{1kVz$Wi}75B0UO*RT#^f4ys9)?QzSe6x-y2&#N7;` z)f+P#S{0GyIK(iWkTc-$XB=9x$Ei;q5W$)Ee>GU}p*z_Fmjmy{gm6=Wce~YqHt?#! z<}^bVm+8jY4yyKA}zqocCr_M8IUv z+?`_b*1s+q6arEfA8=mgW5l|!Wo@dC9hfikCs1_Z$A`$#+{+^GYvbc+QDu?#vYJ$A zpB2l67kr7jQN;!A1%o4QJSx0zq9TEQk;uDVmWYCs#Ez@56k~I7ZL(klOoRwP8ynxagPno2*W@`xS zR28bO;|7Dy+>ucY{PA{Qu-32t-6DoGGv_gBLHnI>E5I~=if|P0TIMc;)*z4qFgVKw z0ZtM10-GS6A3)b0)76YP)lN_5go*|%?+oekIC*Iq3_EHt81MDKx2VAx-YIque5UIt zbp;mbe=v;q9%L>~qCrG8z4QqIUZO$JCpkS%zugT|Pair&7BlySf@bVVV;kiWMb#|BAJ|FHTMSY`BdJuJ)3lC_pkS$Do*dXl;B7dq_HoE2p3EC8) zYxp+HAbQI-q%OT_lf@{WOEewz@i0!*sn-GPLkCf3kj^2;DwTCZ+b9`yzcp))VbDAy zC*2=>OQQ1$jTEL1?we#TIG0F;6b29Nk7V%nl0*cKPyf>;0+|a$B%;#{D}W+H23g*k zpo8w>#M=UlT%4)&0*0gvvV({K$&~}$3}7VvQ>q9Ghh=c{JCO~KLr>5}07fo}W@rnH z%^9Sx-sqoM zI37$=#CIWf(t<$V@gR_FV;dxV3u4>H106X)H+0j|&z_DK0f|#mZ8D;@(*k$6`PlGA zht6d#APZU`iCcz3oaNCn<aHeGp~@%`g~8yBd8 zb?!Es78(aH&QvpYaB(JS%OX(6K}-QZEAcPjAdlJPGLEtcT!DsXd^2yI@C?fdFBK}V zPYVuI9|whbfu({4n?LgwFF#m;u2i7|TNz7gPD`p#fuFJfHEspr?q3ER$~fyYfzl%0 z!acyun*j-+g$zblFSOtTt>a*9f#}f0x$xv(<~)o|!s6#rAXOCTxR4D{ zSP9_c_^GAm?v96r1#_%16);X>fYRiLjwonh0&`^|GE(WW`vTS8mhSjvKwb(lND&nS zDgbA;7y``WRp+JQIOPA@K#GT^|!r;zrE{;gMqXV@%vo_$d}6#l>52&Zb$s zKm=$OM`CQeC7*USAC2bmC2FEoa2aAOO`}f8mjc<8+>{1MnE_`;7nkI~K{{q2N+STy z+XDKgd}vs~8?uSg#ZG^~<@M;F@InJ8 z1MW;S>7>kNfToY<)@sHa%X_sk%UeSdffcDM2{C$TAU7xCm14d?0BjarafZCnl3#dg2`Uw}^WCmMbux4^ zwKvn8>8V^)t4|l;)C@!)lcT{4FLd(Ps z-SLq?WlseWTpbw*R~{c8$d?KRC^1{|`*g|Ir~Er4oH9ACZ&Nd`O@tVwFnv&rX57~j zB9h8b&BT_CmPv$YsP_@*%5xN;nRjkq@uLpCa~mJWz>=vq6G6KoJD#3iZzrL#y`LPox6L!UDE z(|uW*rBqjJ(uR4KvIjt;>_FDLLnpn zZeOzHjiyBABPv341m37FndoO!GapgW$18SoZp^$z0uEkzEk+on64WTobc zZn{xCyAzjOe$$oW*%SoL5aM*jc$Ul}v=@`^z~XJ=2E@XJl3OxfljDQuO0&d4hz}aD z$q_=aofT_@52z%G&1XFJDwr!CmALRP#FjE}I3=Z{%wxdE)iA7-iNhhsg@Ed_D={6k zQM0m!c|x$MP&B%N3|fU*319HY#QEt8GUN_tJm8jsNlCQGcQ29OnSo1Ej*CYm;ii%S zIW-%REq+d9iKb$Ke41@6WcyCV0vR;h6B2&`Ciw)}7M|L>Fv-%+`a+E}-jrD(qc;1q zLI#_P1Ttvm_X$#n3)MM2QkGir4wLp_FyLCE5s7Fa1_< zR^sD2bV*de^uxhfHxh|J3Bs0sKREL{(34*)zPJe$t>C4f68?QyMo;?E zUEIIdG-+ipUdH`9EpLG!#@o5GZnB`^q&c~Z7j+wO;3mZ?l8i_#CMbNf&M2}asYL~C zTI0MP%@1>*agM|rx&c*0#<-ZX7@1_hXNp_dS;I%wi@Nl|Rc)M3ila}8fV?qhg5=c{ zhfA`ZeiSa5KXI;)h-@pQ-pV#^iN}!#m$oj`koRs}q&p53*?7@M2cvJsS)Os|q}m3c zz(UrRRPsFl{OH@jQzCJck<7c~!FJl#&f4PQQA#G3X^T6%ST#d9(FlJ%A-TBrm|X)NsSBC=uV5Q02CG_6T-OtJzYfNBUhxJv%glfQL7^4 z)GWE%JZoqyE15+|&HN6_MuQ9|R%tKg_rgaYTxmBYOTIzEWW~u?I);-auPFhSgf(sO zc^BO^EpbjDX!moU#$a48ORjbTX|&6merW!85W2DnrwCozP|5txsB4+_qUWS>2e3^t z{;gJ}76X1dwAv3?BI72B_Ol%J0LYf5=lYb{ga#*43W|W43oRyg=66_!N4SJf_S$1p-8xr%fqXn0a?L5uX%Vm7KSm z;oFlNGy3gGA|A)5-Y8a>d7mi}t!8LB@+S?p!H9=b3N`xrCG&nkB2`j}Hgai=H9v?V z$psvJ?2?U%Nh#*Ytu|KF%D$PdsHG2D43;S59J$>|KZ`)8J_Fa1>N*O%vnEM>#a~4i z-bkgdfvpkr3JPF~W#DqqW{o~BwgVPV25zNn7GyqXj$!-EhfO${q#?T3Q|I&tXLzUB zJ@9p|gMJ}Qp*?V(k&Xb5h^jXf=y*UPTi{i9*&9uhJXyUet4c^DCnp>U_T=r-2^=16d#4l4UNtvU?B8nl&PVxdB*n$ zlQD-t9nqHu*)oPS{)SEh&lm zQFAODzaPk!WROe)Eqq|W&SsO@G^3#P#ddeCGk2=j9q6_f$FYz_1qC8P$HLa|)DeM>f$_N4eVWXH>iV z!FsH%?WEGRlx1tHPj?3W_2qDViN7z8jb)16glvOW-W#?gOrFc>#U zm=ide2U5TqjtvA{3q4MUb_!+&oPN3FG`>|YZL1+xzNVJWV{2i??Lk+SmJ`6CskOVc z2J?_kp6U&bm2J?8UVmln{6Ll8V<7KFjX+0G`@0PVoD^er-KzJlf2eo<$z-k~os#Txv;M;kE}C zc;lBh%8WR$HNIfImb7DoL3>rTcI*@V-kLJJZAx3Uti}fmOFQ22USGWyWmI`yzf;So zFsB{|Ow-)*>6O}5SK)WoxN2*#fVu5colAmn=e>79u<(L_*Hb8&HgJz?VP(({l$_wH ztx+!;dloG1HO!sQGUdTWEe+F+r*s>&G%RF19e zC8*!dXAcChp(Kbjopr1NUIfSU0<8nxg zMUμ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 X^_REvj$RS_eoaFTC@A^If##U6! literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll new file mode 100644 index 0000000000000000000000000000000000000000..78fd60ad7aebb92481d38267c51af0b78ffb86cd GIT binary patch literal 759184 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll new file mode 100644 index 0000000000000000000000000000000000000000..b33058d94c539ad11e8348921700d5da36db36b6 GIT binary patch literal 122792 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 YhgWbtdLhd5ar?t%R$C@qKE}WR0RL|V<^TWy literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll new file mode 100644 index 0000000000000000000000000000000000000000..e07270d248054b190745bfcef469c9dd187ca84b GIT binary patch literal 413584 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%0Ak}vNI1Ogz73zTD}F2Q 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

eTYJ`r#AYBD0p39 zl$Q+1#+M8jy4^0p*9~v=l0gxy#V%>1gNe|}j$)U597+VcgreCc6Y-M4M0?3#l4V_b z;z@hUO9px5@kV>1fd?cn8BA<_$zWpJO9r>FOu2*B6Q`Wwxd!i1Ad|Mw)bg==HkdHh z)beR9Qu+**kJ__YJ`73AN2Otw4?Tug7x0Ez=%}=K=#W3Nb|e-CjjWxyxu4=jVd+$` zytXNb8D*=)+h%%op_4Yi41Rr}l2(K7nUTD@P|)Gkh4|hAek4x&0{H!!78?KuerR9d zXw3PzmGAZQy@jnYkMG_(*RzKu?=55{d@xn|n&$f3aH~6;zhAleSxDvP=XCwNu3x}) zDo*7CH1H;HHmxxUdF-q9R^4O>6MHLe3UHTDtGzY3B#YkwYO4sA4em4;Yb|h z2RBwPgg5HX#xIr_1d;S2k_nxSKEU`FR=}rrU7hoBE*rkD>VB@T#&T2KiWHwePK7_) zQYq*TR|gw@=l7yg*A@C{RphdxbnT6$nc-UtYE^O5=#$@C)Jjj}4J;EEEs7tp|~!f#Omi~}X`CBiVwHXlA;W*ye=;T>eW&PIG3;VsM^APxP>y<9Y^{>!a07reg#*Q!GnMX-Y!EK zOh*Auz;HMNIKFqBn+Xh!fKik?{6mD{`*H0ZS9UkD2zJHcc5sg`4-?*~KOY+bgCLUG zh@>$Gmlvi_WR)u>MbYJ!Al=u>x+Ot!4~^gFv!2hsurxi?GZU`3rOd-@{3cM*-XF#- zYwwRh!moMi`lzmt;fkC-4rt&lwYR8k#)R7bI$`*$xU#+96l$9+YMYSMHiIlyZ7Xg? z+EUvEy?E`NS|xQ|;Wz4~$5hwfz%7)+cID=ikdW(d0vdQ-4Y}?|!Ks(eg}`3EG%!>! z!y(t-A`Cx)D|3Bw$TeByn(#*b#aO`%f=HG{Bq5T2ja$g~&N%K463)286}f*J(7609bI;Jo z{r3pNPvOek-x6|97P%)Rxo42Y%Dv)Nq%FBG=#YEM`{|{w^NYNH@TxrT)GEn)#xs6G z|NcI1A@BR*2RgkJs=!tgV=vX_4%^m4N3<%Fb{ zGsq~tTrnw%w3iob=;g7GqmE-AXR=8jx3d%;SKEFLw=fmI0KobcQ{|{y7JG{P1YPuiVDd2H|}jv@p0c?qYNAGnn4|FTldu`z4`CNBW9h zewG4n+w!$IOM&{?Vl^A29{4TPgh`gK*&x*k3WS3dYzg~w1W1>#Os4HD1r^cy{AlZT zsJl34DICGP7fV>IOTtEZUfRiWm3M7{%j~q>IJqz8D!uVvf8zctXo4#FHK9qzh_e(( zwr;H}Z`-1nTFz2vW#bZ-q1%_Rc(HGkC9J~7vlNP8Elb!oI;;Sa>&=W*p(3b$e`3}-3u2G3F; zCQDg{!y^b=%Ch5gDQm+3a}k!Z?Hbxr)=EGcCQI3|&QdT9C;LAl+Mpp8+n=O{c9sHf zaIsBHma@_?JxjrQM60gkY$=N$MTV@ktp6>f@^G#^deiU7G|8uDDabwIECsUdOWQwz z3rkxi)4sGF>nsJ!e4qa_)3@ruSqh(G=Ity6-r!jZ#AIo!%%^85SO$0v&2q$93RJQ6 zECn*LJ+Zx}OIy2VMao#yrEO~w(`Q)Ps(stimLWNRZ6Jo5fOh07)dZ8D8O&_r<9gZtO3jVla7Nllkpcj49k+J)cHB zH|9fGJ4<0v#TPdA8AEZFLf$^#ZVq{t!Xk2Lk1qbFbBH$@7B`3aONy;cjineKT~N#) zT_`K+J$Q7n63bI>G!%5FTLAX|{450yzZJK#RLRd$__}Puzu*?y?8|`gobBwg@ECtPT{~Pukl~2t!7?ro!-=RdX=O~W$sze?~`>PToZnP)* zPF|Jx7qkd^CKeZ4=tzr;3gGZ$>b)4RO0XyMRf#uh$rdLb+>>yuOu6N^h4 zrmsp^n{CyVTzGguF@IGeR~&8q-?*_juS#I=I9gSTt9|kw>!S$E;8c%?H8F#DRpPVE z;E{N0jbFUS4ZbQtOspzpFnv{misHm)Tt`?{;iCwu*!rpj8SBV6JQ^WWtIFrD0YTJw~hQKe&zasC88+v#N|x7_+J*jBwyg&P{shf%nX&D9%z~ie^D{hFv436`91Qh-WEu;C5ox^`zlWtifzYI5#90a?$FeE-TFTe39^-kNg-t;=+7t}k zZc~hYmO_h7Q3PwTDca~Ty|=PKlXQ=$6G{Y|f}+_Jt!F9ZabRL?*&`Zpqdn0O0Fdkv zy~SAy6QM=WGqEYyLPy#ZRG{4Cz0{@{>nsKKVxFZinK+Esi*%O4=QyEZ)Wn3w8$3&a znAj8yhc`8B7e~DiLxS~5DiCanb`8y@NHk1rim}d8Fb#YB6hs>|#90cTr-lb;%H<87 zr9ez<3Tc?0rC@EgRabJsrl6SH6uIJP>yvOJ+7x;rVKL59=s}pUYomDEr?RomQn1X{ zeJ{d?%;GGCFEF!%+8p2wo~1xc>?{RatK+m$&Z#(9G_KW0 zo~591Z>+NvrXl2L^D0iv$oXPkEjMQ*{3r0#A)KXT%|Yu>yz*j zNDx)BB%w*ih_e((jx`Ct^}?Q^+b7}0SlAcAS|;H(I?RWy>?o5k-u{h~FvZap_IVub z3;Pi_+7o>z3;U&@g|$&VsA1O$Y8MY`%ny?Y^%l7kAj4VESjPsNqn2KWK`xNX22+%_O4Q#`}v+Xn3Td{AS<02K&Re7lA= z#U~mjQ~X%l2BzT@zYL-c8e-evc51kdj1b=7wgEAj;-z7_ZD2j3RabIhil>-Q@wwvY zN&UDHr}#}c&+2gNkw-A%3-maxE3WoweXMN*%ivVM9KweTV%y*jX3(|`c!S#p#AI4m z2GeZ=Dq3#xI$~N6+Xhszb=!c94HMQT(`nuAS+OzJbXspMM*0lXy4tW!>kP?hU8P~u zIz7g1gSn9LQz*JBlx-Urp)fYZODtyc_%J5%SKKV7c|MG3-8N7>i&H7wHdsWZ*tWsj zs}xhVy=vOF4Hi{&VcUQ)6x#-^mB2K@wgJU_+dx@S*KXN1DCoFtkbifHTKaFErNB|9 zW#3?DyqEce_6?TDE!a2?5S~YD0$pChUvZYgB5a(N=L-Xf1l@N&p-IQcvlMu*FicvE z4l^-UgokvU&j4*_DZG6X<7wJbcX61%8yEeqhJBon=j?ygU|0!xLOCrUH0c=eB!J{Q zHy9ZD9T*Hnuoi=%jSh2nD?5t8Fb_(ERXfGe42C?8c7tKWjrK&}iNUZkvYLX(p!s>KEsr*_HR= z(p8~sN;g7bY)Y3{%-V5EPy7`(iz$7z5mUP2S)5AYl)i{cu_^uSRf;LwUN!g`;DN^K z+%eEu3X3YbFr_nwVoGnV1f~(Dbc*?uuB@nQV@h9xsp-vwg6?!{f}MwF0P(xY_l9Qy zKLn=VP5uv^rNCjP;?}Z6`ED`KQm{FFE!@JKj*m9toPG}G^Yko*(6-0gw^#=uNA6p+ z%=PQT3;Oj2geDy$&r;yMVy?Hd6c}^dQy69TUl+I2*`HCgou%;hXaC03w=?_aZ-P?Q z|5dYKLnMeI-H6bnV}w~i@|~Ln4E+wwf+ARpS7n#VlA4N(8fj;%H_;9!I-b zFycmgqVL2k*ce)jGz-`eN16pxpxorW#W4%m4QUo^MjT!nSDFR*>FsD1@CMBSVqz9B zTy7SqYr!nAjz$H7SdcsvDR2DvtSGO3ub}hTAUe(W`SjJs^1dfLk3|M+*gon3x61 zU}_dnQT*W5|6}evz+@?^x4+DC@7_z08vzAHC5-}RQ3O=Xf{7rCSwO@%xPS^hBZ{Dc zIR{Ww%z`2UqN0MLV#I_ILCiVlaQ)ujIn`aEXXf_qpNro<&(^6qr>go?=ss_qs;*Wz z2^OGY4h!J;jjZoWDW1XtmwB^MY6=VTW+Y{R1vdU27LXHIV6EY>fP^(HxSQg=%0tWL zu)rCX$6EBt)0Pw$PTce#sudDOmG9);}jEIOJ^zYj7czozi;*ho9EwKB7fiPzKZGN zEf(%);r$fqotyiM40NKX-nqGhV1>PTbw@>b^J)*#@a7dI>D{9TK!*2G$h${+xyRnG zgsUeSWZl}I)o)&rMTP9CLiFa`;}-l+rJAb zd8IEU+xwMp_2v~MdGm@aW8S>7lB|gI&8x_r_I@Q7PTsvr$NM8C z^6~y?#dMCng^#uHP=%`LVIl(^x3`|&rX=20!f>TN6A z3e9>uvb&9Uv`YHg->=jc280_PCz0A=KOG6Lm}-5b$UrB}sMdGY4PtlsK8kRc-%T{! z<>XVXp8y#ip^#dCBGekLY7JSp_LuctP8Jn%4;7-j{GK8c?s6;J3RSJ|rF4FmNA_I* z-s0-sUC;ZK=r!BFkEgBQuk?C9Q6klQ|6cWE#dPevLe>7MB7--qxAx>#?FW$IlN3_> zi$m?+J_hPCS- z=>Ib98Jp|hQf)Bdox}M9*2WhDpP@no)Sd~c_|fd|Y8IQ3#d+S5%B%yM#Tz@%dzOih zNyP5=Jyx7_=0~A(^Dk2B<`g|sd9Q`M1Na(cAM5vRYCmRz=gRN8U8sb4jCER1|GpY# zyDeY2WaV=ERPyAHDEBI=x9he#x8}ZE(ir@-3tf93T0Txis#}hSRQzbo6=CLcMXU6_ zyd0Qr{K~oY#xHW0bH(u+zbt>fnLK98=86S7Oxtp97?SD6ucu3iFjpixZsS)|h9*qe z#;=y3ylBWE(tYDsB`t!Ui3^#b8|I4E7>K-6dKI#Ct~hDq7q=`Mzn%phK20GX(YZuV zoN&TE0ycg@ler@KnvGv}d+M3*H!Cd==8C0;K360`&@h=RPTKh88m=6jKrYu%8^1n@ zhC-CunudUlU(jT(Xd0#)zkJN*y21-{MWW4Iu~A%OeJDYfRpDnVU6?CcS>?23(q=EO z;M&o1ls{BZo4r0o1$|W*0h_&`$z0JYm~Qq$(OyLu#!73m7b@nPz2MYihEbNz6gjvhPk4Rf1fLolewa`hR+pAsJY^PdZdj;itFfe3oVz=6`f&ue6DEGI329# zib=XCjB~~N=@R*>u$9xLQ=`%6)|khk()7))roFju66 zm0Q&x0?s>uYlOKXQRa$v=8jdxZXBJt^8l`9F678w)_+O-!t5n7$$JLpIkHUNEsl-NY`@>G|-# zqkBd}{l$u}T+;gX?UM2>_?IhPFtJuv`81#O7Q9z*_2?DKA1bJ~;6EEpECSwwhbAW0 zDww_nkD|Sbuw`Obu3X8vXQ-IJ1rNvXV;zUAcxqx@=FLW_sfo>-k(9y2+W2=nK~7Ap zwT7Em64oa6C5r3BaSJV%n^0?*y(9Oe|4M?3SF$WmU0Td*zmiiH+=FVw*Ku zZA~{D`vlR{AKRCm!^VDHG_|pN%SK{jA0t}Y*msI|zWx&%%R?ryv3}0mC^ z@wBy%#@pZx61k7&bj5VguR_)SO(FxGcfFq4lUubv12Q~KA+^`ba8`S`sy!sBJy|-{ z-paN@v)V^?sQr3;G-#F8{f5hCI0H@wBdn*mnyMM|Y1e>!WGy z?m;7+XPI!&MTc4@oH0xP?~pi!dR(SBG{EYyAP3M-Xod4-+~USRKjsOAQ{RtP{d-&2 zdKZGNO@R7^!1oX~t(!_W_)7=xkvi(D_d+Uuw7@CM+yP{o?u!E`ed!?Q*65VnB|07d z(t+i#9Y8T#hE5B10E#&`jMLNs^iC-e&?(Vzn+2LO%FO~TL3z=|Y!*06S_C~42M|Ly zpi^rMcL1S)4xvTw4yOt5JYciH`=P_PC}gw1=YdAQk_GBj2-qwDP0%U%n#}^-v%D7I zcQ6VBbXscY=rqwVL8p^m3vdlrjLuQ9K|^g8(5hPP07AfK0ce6wO~Z7vfREW+S9k%P z5^Wqnjp7>XXG_q<0rUZ-3+U9!DuK|X*8;qPYewfPf2g1~3url^b^sw@vj8+fr&hsq zvjB?f99xB9tV9P;cr5@G^UVTq{6_9ojItD+y3Cu6Qd4xAHzO$nI<@id=#-p5ENcx% zrz8|QeYni>=zWUoz+DS1m!nf>SRO~G7L5S3MyE--D2(Xz5xPX~0J3trbPDKnN~btF zU0A2MvSrt3*<_c&Bc-VCA)MB90i9Ap+$@lH0@n!WlxVYAz^Y=mwl)hqimRCeD6*IJ z^$IPJs==pw>()O)zhzA`e0r!b0{C=u;Z2DeAJ8*|8@AW)H;9(_^cwMgr~d?>@|c-WB3CH1+3le_BC*5(#N0eXp z`$r)aKiX?f$Vw1`IyneIk(x6Ga$G2J3OOirZhm)}`)19_p63gK90x1=Sjd5TDMV-> z2U-?_|0S}xNb0EdKL)Az(Lxq57mqB+y$ECxvt`JlUJa2V}vW46?WcIy_Gy$U>gpUB17EZslHu0AvA8 zkOlb~WMOxqkcHoqC=ifEsi7l_M8giq!Zlnm`lN~t8VXrxj=0PBH6fOU2tXFl1X-Ad zDYEb}o9hZMAPb@mvS<|7SpS3sHL`f=_!kZj)kAXhDWwa@!piDm#Mp-D6% zg)B4?+~xZh$n&7nza;=!KoewP6-lhbg>RmO}T&yoMPp4 z>0)rolrDChval|8Wy_BKnmT&$L@DYxWm?k(oI(i^r{tZ$H3Ci{+TawciajWVQ=Y`t z45vi)vi_6BO>xS!bC0wuZ00+{D=AJnLHGfj@>bCjr~E>^zv(~0DLk}h`%m$U*5~M} zG4w$Cv_$eD>AMlaCmJ4?S@<~%Kd(^!q%VjJ^idc2lb)&~%$qh)1aI0=qQRR+N%ALs z5ioD{Hj8=z}G|u`e=+=;2FwnE$~c5Xo2HI zLkm!bTHx!D;g=QC0^bNN09P#lS-18dbqkP1g;Xj;Eie?B&;nMr6{;2(DV?`KWY6`V zC9dk_KDCMdMD&{NpWtc1tkv?F87ZkY_=ZG!gndUum{mh=?0M@tbzTX^;nr^@{D@n7 z)wdJ=gRdX`aPWCvLG4KOx&A&KU2Rt?iww{AAr(JTS6j14ia0Kkx~mQ4>qSy`wV`&+ zNl@<6d2|ihW#_GbR~b^=%Vmo5)~y~3!o5$TVaB=IP`H4%?rKBtLg2W!X~a~z!98kM zNgZ{`)sTuGt@GAl=D621-4~Bqy55^}YmXYaOWZqtz1Q;B9<`V)!@UJNK+v2UhGXhc z`<|2txR>a-_1>n8a=o`DC@;F0_1+&y3m>C)j0d+;P&*#u;c2*huOi+$#=|tb0ypnB z6|_DbX6>2y>lpt5RW~Bk7|NwZ2fHxWVetHH!6yjq#p z()?5942at9 zmdi1+Gc1o|WQ#@^Tw~-UT@*%)e4;Lq^k!IXwz9f(3^;j8$H;hSa-=4N~@w1%9wKBa~}6S%f(sPj*|*04EmJs)bcVwedKZDs;i z6??d8CU6q%X)}SyUe-TZ-2eG`>)hY7{pXn~wwLV=nm_1StViq5CDNGvwTLhwbCAy} zz>mqfsJ-f!5{$!wze@NK3w8&1zf*oa|9%gt_|f<ii|3-Ej$^rH^N#LN zq~;{(u09v_Hxj2GpVQJVSVJYb;0Z63dO>9&h<;EElt7Sgv3PSe0|fV7cE)iGbyZI+n}NMQzFmyWI!& zpx@ft#41n=%8LfRNcZjWf07nK&jf8TLfdEy&3YBG6m3n~9?xCO_V~X*hrdwB_W18$ z&L3#z90A+op$Xa|U$Z^l?m|5h{GLRCfVN5v9c?8VCTMHY_ITHD<>;>}HfX5r@!v(m zv(3eafbH?n1Z|my>GpUZv$?MDf)A5utNsO7|+l6kVA=lXFq! z&s?4OGf`I`u23j;;?H!x_ZMR@^=G=w8r+#72;cAB~M}-fcrxt}~*JTjaT5qfw;hBsRMK z9?Ck2QyWd8#nvV>6W5N7M!mumyT1i33&H==M)zp;H6y)Jpw{O{Yn>71BpaRXV6w(D z8x6O%(c~^|^!Oc2mcO>qFMU?8oG^6G)!#tq#aDI;fm3+sG-&wzmJBmH57q>bw+4nqfNtfozcf^t}DD? zqlq>)x=~zXeTf9Mjh<$gmn&Vc%T`utmnZFD@(Su}49Xw6K@Ge+6UAh?m z$&@a3@4~{m*p)3iI`yB(yD+Wkg8zgP;yPpA30xz17l=0A1*?iZC^GLtWY^w>xF2c* zuQT${%KQjNHfu|pN^{{9ZPKpSmg=+M-y{rls_@Q}g=xawGU;5k>nZm*AhSink3gnZ ztw{I>-=JQ2nosv^uT~O0S=K-*evDm6LR>B+p^Sr;r2)pEM$JiJ%+h(T?b_60e`$ZE zGNizU%Y^gb{q?-i9{*QhGXL|otE5B#HbloQBsFD}3rQ_OdC|ozByA-ve2m&c z61PrJJ1!)78ZO_fh_@D!OtULGFC;Pk+px*YN0!2-Nef9lSXfBf20GkKAqz=YW3zu_ z+p`d`kOWO&6Zx8jByM~blKe4%0s%Ia8aixBG)!RAq=h8caEsBlDmG}Sg`^*#;eMte z0v3{>32ZVA(}g6zBXV8g)eA|)eIaRU#d^a=dEHIdhf~2%7n1CEYat14xsY^2@dBi> z%arzZ(n69~e)Z@^T;ID#3rW{dd0$9Ez(NunkAonKMx0Y) zwIp2><{&8P%>aa~tS%h`5Sr34=Wm1$YGEDY3YXoJ0wFCVO>4dYgeV~{BsJr6p*3V7 zX-W+p>RsD46x8cl!)75VA8NE>fO-hUwcwY~VW!eF-*-C5g+L}osz-|&A@@bOdaDr|Qr{U`g(c=~4e?}sW^ zi^h7gZYPoO-%Uk=pXwy(wv(QJ=js2K(nnubkgyH!!tFjD6J}U$N9EU}PKD~$<45~U zU1X&{ipx&%K5Z{?3eqT|I8)agAPWL%L(r)1v(}4sD3hWs;j<~|ZG&U6ou!VNRPXbu zN%_%oGQpgL#n$g+B6o?!IyjkPwhW6E>;Q{$?ieh#gOmtZjOaKgQ&UFiWNHb@i!R2= zbTerY^h_3l7>I4OgaW+^S&Eh>IhnW(aWd@+9o|?WPNpAXj`uJuf&eEIG(k(`Yn)7W zYw4c$8w~{lS}HYkw3KL=pruJpCf9JqXg3ubG?bI+M`-9yCImQ{pb1(s4O1tRkJ(&T zc)`g;v~e;uifgRjT!Jo6rdudoKtxtnX?Q0&nY@B)Mz>V{P(eAFeoO`3$%FtW6Es0Y zR>9QCgrdEQFhxX@HnXFyj=@)$JDHsCeZ;s+olGwChU7Y_lga8Fu}KYFVwNdRro2agRks5j;}~4eDwl(fJVD0u8*WxXt^9;Im7ZezM7zBk}lRE;;U0yP9`g- zOBaK!rgX6*kA-!yD_eH-Pc&i%r?LoT2lr2Fx`3@HAv&4zPT(2=c@S-ohgHQM6ha;^ z;)a( zS|I@8rx73^03bjUfIz+mAlUsPfZ%rz3Iu>qYUltV(XazRa1B?C_Exb$Lji=JMSy?+ zfB;PZf@zon1Rt}xuJ8gtAld+gMsbbxJ4w(5AlzB$0zj~`x>yh1cJm7ALl(*(Dky;P z^9T?S01%)FK(Gp?00Bkyxdnw?00QdjxP65=KybeI5#ufe2rl!6-V%VErFI9v$yy;uC-t@Avtx&z`^(v)v#1+|d{a1^-zIWZwYPSCxQu@1Y z@%;MxNThbq`StrM)~oij@O}!_0{0ggyxCe{D`nnnRjwDaq^aB_aVzt87={XmKQeZKt_ z({~CiJW!$Pc#z28E$i)N%1|#q7&3g2LVEdEp_k#Rmmx_nlciHHTiI4<*2|F{dU?I? z^PyML&*^wSSRxRxDX{Qi7Cu~|TH+BRgSW1?B`8TP@kq$ zT8(VG*I%ay_xkJOP$#$Qei&rj`wX^lTP8Jn%nhMdqe!9qnd)>;m zLRI%SDxKf!kv-RclepntKVfG13uc%W>2Gf4rLUQ}eqY05ch_pRe+DVJ*ZuniUiZVL zit4^!uR208)%x)wgSV}>*5p&IkAw^#r;u9zHq;ufY7I$hO_olzwz93ztk#hoYF&^0 z<7Sqh80&q?%bI$lS5j~PhMV>btIwYxk>-L=78&DjKHdDyPm*w)zxiObPM5R&2g)xz zcod}KN88_wEY1=A4OA{W#ozoCiPKplMHK#KQ*c54=B3-VW{rN38_JCJH#d!tN;kN_ z`Ds!|O*#*$_|ck9!px_Wrs=-rv1~cF-qc9$ZqrH2UvFxR*|O<#e(oC@;F0>EzMUBIub+CmD!gI%!ovPL>+_bdm%?!w%C)*Koz? z8RT*eHJ$uD8s1l)BYm_(0;ZGDWIAaYrqf9uv$?MD!gP{oGo5S{*H}MBf_gf+k5=6# zeXaeON*AV+R#um}2GdEe;F{5K${#AI>Es`%pr6Z+faxSOnNC^-)9ECN>SG)V!&r$c z@ZnfCRMg~gtJ#^Q;iwci^_XFlr7Q3*^Jb&ebOk zz_-W}j*eAapJ%Ypa`^<%8J5QI8h0eq`25qd4GOx;2L29NVJ&%T2<`E(FE{qT+KYhk-e<{ zc5$0?`KS4ZS(`qonE(AY%>P!7ng2ahyd(1YAJ3TC{yVrLSjf+}(5p3iejG26Fu@5T z!UVd^g!3(iO3=my`o=@T{{;qBJEJx^zE?df;iuLFQDk4Q7T&6hR!s@Xg1hV>u z6A%arrx-&k-aFi=*1Hh6r@LvyRJy^T$w|^vU2-y{;z#Rz3z(CjNxCi3^f$l)w}vL< zE}_ZzZHbn@h9)sv22BcfKnXc_3^aL;lnBs-=(uf(O&R63#Fn7E=wh}dK2KWs9c0@Q z8M#62xGmAsaCv=nLt$%MqG@);#BGVzo(b?_{I`LRmyaw3K9ja3@~mN7;;GPKrI2lj zf5PhiW@BIl0=6YW6W~KWK{$V#gBzc1iT)TsfdG6;4ITI-8YaMJ(zZm`aEs9kRcz2u z+Y7r?3Dr`rzD46uHcslu}brls7Rc11Pfb?VyO9*c@vO2Sp?lD0-Jn;^-8`_4N%4 zEti8LXILHwMHY>?rv^nyx+sjG=-s+R(whMoSy^2=24FO$W6lR0R}1SHSGeq+zXFWj zBW3-3i)qalfDt9cZHdkJTxbp1mN=z`4*jm}8fsf&*BUn467!)(D+cICw1IwB6}x)` z{oYG^8uW|oW&N|n{hyz2!Q*$fulLAnO!y07O1)X9N9#)@(wKdPh%lihe8u?|FOy&# z7JPZak617~13Cb_S1Z4sf3Ja5{Ak{tWz(FUZ-LCwT|D0cbsWnrn|E}FA~h$$a`pKZ zuar2&auiyeZ(-)|+QD+Dmx8he%b{f<_+MhV*Ge6={_7wWKU(Koz?_8T((^5>@eIqQ z=Ub4w#B$@$x3K&*mW$akELX4ttjf7#u-vPpM8I-H9n0nCTQp_J*OGnyu_Y)k8ZwA< zKi}f@(jw@Ype;sd8*QOLuR@lhtx4xwa2IpF#c9ytOBHgy#osXJ8<`Ua0q0vl6SPIX z=6nmg3-w6wdlCf#+A1}4w3TR>psh*gTeyZRN2jaUprOvU_&XZv&~n)|1e|XHP0*HU zn4WLpV>Z_nUT`xJZQM+a;u`C3kf3%m-CveeaXa5)n#<{p$`jC)m0KF|N#|R5W!H}0 zr2L_>I^W_SRCeBsI0DYMfF|h5Dx02ffzrK-u!XKT-$Dm9pkn?hNH~5|_bNtQimqJd zO-QLJy2_iBlmT7Yz2NAIoS-Xf4M$fbOi!e+)SxO(o3M0_s4N;mlOZZQk)jYpH038! zm|ChRqq2P>g|)N|cv;|hB1L4^CsJsC-u*PpWZ$NpNrC_6^1}bZg45Zummk%Cvd+#; zmYqrQE%{;eF1T)>GbEBtJyRsCz0_w${Y?{#t5r^~dW(eP?CM(+{$lLvJCt9e{hg4C zAB|mY&ZIzAuF0T|ThX~-S5c(qBzCpl+xIq!Q@cu`#hDb>qFqJ3!hE`q1T71}|I)6$ zOX{fg-wmnw(OSNNImxc3uM0%G3b*!=kh`?2<6jrZ>}t%G+0}v_OkB<#V^`lUC4yZg zI&S%0(9oA} z5U_j$P3)>^m@eP=n9X&C7wjt0#;!JsYplOlg4(W5v!(A>x?oGKtkRZFdR@RPxMp;Y z@`nm)`R3nL(3fuzuzUkeY^hZ+UA{q4eZxj!%a(@a8&u4fZ{YZitZ(Zmp4w8Ed9zV! zYD@EGBxSIrHvZj~k`r5Mt>Lzmgte#QEXDOH9}6v)dn%k^dEBmAw6Lo?))@<7w5@n5 zLa&86yd~|@DR?QSbc)a67uG3Wsj_SSsy?p06q>_NYr5d2poF-5lXn8w2y=L%%^cpU zVz+iShmY)L4u81ghiPX>fFF3rka_gZ;T^(T3m0s!-v^1_HsOOSP809l`cH5L51DMP zeyH9(bX@TPiG(XYC=zhR0m2i1*8hpR<`Y#;7}?|J-@WQQJ6%@qzZ-h7qfH=?u;#dV!h=Zc~B#*){ z^jbSqP%(!%aQrdhV={#}F7sxi)D+_6%}B}sacm4b#33gT$6CW74hd_B^9jZEH6jZw zmqQ$9SRRKs7HvbEBwZ9vgE&@BmreoVOz9MdI1B3(SGMe$0^&?-x&Uz~AwrzI6Sziz zI7AzWV^y(RJA*ipT|=Da9mX95V2%(zIaM@0xAUFC8DN|PZKA1<9tRWV4Qt)q52)hLv-CRw8vwd44ZsTh3NMEJfz}B z`yEDP5twA4!y(3Jl^}%}WGLQYw5j%jAjU~xsq=ZvU!Y*MY;ic`z>1<~*C}B5g6gDp z`XZ#_N6TvgbMb(I+=~DVF7-D)jE)wcsAYq<;lE{Io($y57X8y%q>C>CnWaldm!9cE8A^``v>A z!K9ZOx=Bwo>|oMe!xf{is@R~RO!`J>=w1s1m~?1j(oMtEr2Cl7b%hs9I?=|YH;QYl ze_4VqCjDzl7fia9)x~;X(!GLfMqgL{P(hjW9u;)21p-VuG%@K`!PKOqXs;riWYSSF zH|cQvM%H(|6i-dM%e>hrH8tsZGmE(*|Di1A}n{;Pb z9yjS0jaIwfUy-DX!f4Xln@+8qE}eo&pVBFA(ihe#u58&g#ir9~O&3f$B}9{+cLLW4 zCY@+w(yc0XYs;j^O{b9^Hl4~Q?-TqM)80G8rteeuE#50zi%tKsXlc{eV(;~z*mNE< z*}l^sDW8sx)g$B^63M22TO`=@uWKRZSlRVi`7VB?>*||o64tJX$8K4>8hZV+WFSZ1 zl~6bB_aGHNc6~^%e>SGG`P3OQH{?rKE}f?YFVh_c_0G<3DOGCC$u&2BlkIdOfgdVghhgAG%nOT_2kJj94lfkEyBi!-(mfr_6l+bYNwE;4hR<^_b z$(Sv(vIRRByqr76%6>;m1S?C_t?VYd9HMVud{H%8ttUrQM!A2oB`7btnEjJiNsG3X zWgN7vEDH20WT};%w8N26%?`(Fpu;N^vcpmDz|~e30XrO_iIpXv@PhAfw85-f#D_Kt z1S?x==vFq-FtM_eb~w6*Ta13FVuOa-;ka?MvIyAW2u-Z4X_)SC^dXz;3NKh$qHblE z^oEV%8tPX|uyTp-Y}_Zl+OeeE#rPwo3s%<3Dj(>Rb}@PdSC4+I{Go!{#keF|Sp@82 zgeF$jDwytKL{WVcOJU2(hFy%PnD1hQtt<&^EBgb*^(i|GEtgwaXILJ$vKEbow6?NIx+pBHtoK@28?bV^bP85>N~gG$ zU0A2MvSrt#R#pcqPHVbgWho)VgBg;e}#*;ts1 zwy|VhgpG~aG8lbvK^8P(X>KSGB;RfvsU8f`2BY%DafvE*xPtPN(_SRdLb5NvFzq1)I*!wxpq zHQZwKClwnsl#QK>HWmRk7Mj>t(=fHMK4f!U;RPE@w6U>`;u`9|m!OM{{j<^q8*62C zd7Lwo^$M;Y{YCjh1!ZHGMH`C%8w*WrtW_|zu_&q!3n`prV^J};v2gr8)<^IZPi?Hr zyxAx8~<)&$%&1%)^Hn3!rI3EL2-TO%tFiMHr5%I$8D@dqZzGjY?3Yt zr`cF5r%R_`W2bbA+t`J5iYr@oO<`lFHC?c=ln`xf-U(bI*jS>CjkT)St)1D}$i9wk zEDxE?#$GDBt>e`70Qsv#evZc971Ot;6zW8Ye~Jv=ZYN5-PunW&9F6xY!Z{k}h=wC$ z$gLA4{skHSO(7>rEZ2R+nK^Lfkb|sSyGebH23b_dxhh2GXnas)!Z{jNwiT)qCG>)6 zco8A8=lbW1yS{TY&}z1?Q#k!S0Y6LS2UhogOXO#%tW&I4{nx^oCB!#UsCMXy4Blbw z@F5jp?Qo$Yw8Mu*LpxBC+CiVsR6G1fKWGP4+1dfF+5xg|?dEkmkVS=jRE4M=E)tp0 z4pz1ms&@F8()kM+kv-S{xVY;(I|!|2`=20Xd3Mmo(oF53vxAmWfojgeWeU{-%S8t7 zv=*3hb`VAA?4V5`!zBtiJ7`lH;GkXwS7!%7lCy)zGUn_cE6IvT&kl;*X=ev<;nvwf z-q)K-q&hxCpDR(US6$D-EflJbD?|qGT5m5?hI)A=WVo3^dU>EYGSEzJ>6U|OwI{b~zXN1=V};ay zi%@&Gsy!sBJy|-{-paN@v)V^?w`V%zI>V9*` za3_V-eMP7{T-6TYFQp;_G{yIbASDy#cz<;%Xt?A$IAX&!wmkuZ;bzWmfT z)4csd`aeVS@m{r?g!Mf71kG#fa}aKk@L${T=ij2J*5AyNeH$eaXumC_;zxUXKC-wZ zP5FMsdh1)ZNX=z*sKC zY~pffk3{5IKU!0NnE5KU zwZXpl*VDcCIk)z&le?VzkKcQ5`RjMuVzzAVU$Db8Jm=2!o096IlWr{~!rY(exK-?? zjB*vbB`7btm{siErA5#)S;c1fg}J{~0g-n~uR@m2{U;sO&z;CB_8!pTt_oSjUa1F3 z*n5wFRcvT7_a|Soify-;pu692v_P2qmm2!qp9Dd}WbQv{@4aidVss~RxrSQBUWJCf zij9C(Y-lp~Hx1KOY#+0^uJFR#pJ=m+-6*cHeg_G(^YH~)$!O0!&qr;Ohd(d6&p@HW*BAZ+}~y1Y?PYL z{qtrdWtjWh`1iR#Ihp%gYxvxsgqr(bBG5m&qvASP*FwwXbAM-89-sSLG*0j9xqp%_ z3gg`Wle$Fcwcua3a=LU1bN?xw;&cCnb&4xncFh{~@!(TZ)Q?V@)^uU+PYH1qJMRRp z5$66xn^kP9irqL`#lDoQ+57X6tmQ788zjC#zL8TEo4>}$>)W7O{^ zC4x~WI?kv!Wt2v}B`7bt7^8k~Y0)<7jIy>-M*$rzjoyhvf09w>Ho~ay3mx8BAx3>| zH0lU2>d?ffldm!AcHhXT`(1|oSg!xf|bRBX^tMt#d@)Dd9Rp@~s9 z4O64;V>Z_nUNGuJ8>8MRuCaa}3Az~d`zc*8>Q+`4`+-B>E4XHKf8`Gqlu_R*8g&F1 zb!cMLt%9jhN6}tIILWA^Vs6yo_>HV{!WB=Ay34%TC^a?ec{7qS7}`AKh2+Uge?Xa-;4H%i~7fqS0>GMmn9p z!aBv3ExTrGjQZ!Ls2lZZO&5$hB}Aj1cLLW4MxAJ5)U7IZYs;vAfvcHOkL+drFN)io zhj>h|>EA8Z%wHdDy6*C9&HR1ArhiqmwCP*RUhkCKbe=J@{V#Dv_vLHSvnfN~j)Ne>2P(wdaeXy3 zUVXTFmO<976{PZ$@X4Y=zNSLt&DK`9N#1NL+X|Jp;~PrnEg9K!{VT*(y*Anwd^FL| ziC(k)Z+cqJguGO3@MCL(2TSC>o`)#bs~)OQwLe5;@II^kx0KCl|7}I6{dYt|?a8g$ zKMXQFSRu8)L8v`k)gH2Lt)4Gld$OpI@2L>g{z{PvzI-d&3RUgDuXJAf$e!z8CGPsx zG|+0ce>ExnJWPB&Ke4($Tq0q*$B0by^*mC-Hm1{=>Ir{>ujf!D(ewN;NX3t~uLoI) z^|<0#tmnQSE?kQp{XJTo6#Y?X;p;hm!M>iG+++g!GxZ$(>9vIu&DVoY*Qu}Pa9vPM z`#4C&j}|P1nZrVBgMCY1PtL7>2N3oU=`>xtPiSXi(FLd&^x{idYa*Yj8@vB$}} zQ*~lL`g{Qg+osw}xvB4^+{~+PdX})TDZCbx7hMc2JVIIoJriFK!!N)>tAhJ_P@q>K z>jDe86M=zI1~u5u+-3DVWMFNSm+wA z7(G$N1`P!ZRZ{KiK>#d-Ca};nOktsq*<4q60TvQ%U}2-U#`@zW=mHC$q;vrmT3KBX z2(ZvAxMuWZlk(!aBv3ExYDM>f^zWq^QHfX-yYkAtgjun0Er# z2(XZ70}HJxc54e3{+O#7ER5`B{hx??o%wor$jtVCYL_%$&rS7?qT_<6NF-cvv`D}O ztAs_*)BoLsMQ<+rpwC@MI1U#amGINEu%DLjC*Xx+l|(oC(;*c<#vY}BxP%NSQ)7b6 zJ>!|$3eurI4OwWGU3eY`X~i^x-ZCuG!aCY!Uc#xr|T3%JVO^$dp{FW z@uPL1HO$3>2y!n1M8s?vh$z^>p6A>#AmSJ)5kLgdaUh~8qs9vMY}?w~BtsYFMHd4i zj*}Mpl!Zb&CxJ*%JD!u^Y0#@z5pSK7U@BiBJT&;Gg83u$+D-pk{QS0pHbh}?w;_s` zkE{zs;h_LT8A69oRR~1cEKQOMUo6z*!yN$`6d1p-7VHFSuQXxIUwxP~i6 zBNZDo6hygkgeVArD9{9=n1(4t@jD{d6<&ZSL>q|GD6Tu{cnP{dlxHbjfGAd07i$Pa z@d~aPouK@of`TYFi4X+=5Cxh*6suqgQBYK$Lr^#gqM%|9QQ-J3;bSs|C@%A6qtq0l zDpH0x2qF}5DH zuhxOm^(X-(TaQ{LAC*MSSx`e^hwb&7Z#I{{tDlPZXZDf(uH1mp0@a})jq9P)f6(cSz4NX3uFZ^0%BJDM4pgAk5p_B|?G z(J{rc`2>V4n|H{;g=?`xj+4YmAqRyPM>AiGki*m~AO|{Kr;y_mT~JMXDx~5^>)d6S zlOP8tEMF=Ex9eTQV{2c$8E|XA1-VPeG5*};#@n##16&i&mO+kKnz4iR&$&U9^k}B% zNr?bCh&trR&s}cHkY)T5cDsfgEkSwFkU^yTxyvt<7Hv?#@N0tt6wrC`=$$NQO*(g( zyO492Ukn{SM03sFAB068eqV= z%a+bTfkmU;w;RpQT`mL>5cs*vrk2iKW>mJ%UAC6C0WVXzaWk8b?Do0KdVRrc<@I%A zq_$G8gPN^Wg)&>o`G`-Ey{q(}*hFr!?A&GcX#C7<;>#tHO?}qk*iPgi~@or%vo&ePHsdBu=dzMHG897H;j%n&hQ7W!&0r@I4x@ zS54GjZ-7+%XgT9yPBLog#!G7eGiq>aqekx1sEyxvnHja1Ei-BbJJ^?;JI1KJMoI*u zMs(afx+$ZaN4Es!MHe%VK22J*jT)n@ZPZYpS0PJ{+N3=i+(yiF-vk}LLLoEV9eIkn zGadmmU1(y|$k)tt?Y@yw^ScNIf>A3qbfcDNm>9K58!uhM6{9m$Y|v0M-JQ_TH(nxO zrVCAsnrWEMbbZX`y21-ajc8-k8pSo%PnV!JYWu{44VIP%8@yTRf+4fAN<%hjl zMyaVG%bSsu!I0VbcSA-_44Jit8!{4Vru%alknVOyQZ%`9{du6dRv`AV2{(mgr*BKT}p^E z-MkaHMwsamZDzVw6}z=%zJJx2@5o-(|FyW+)gBF=F|+;OaK*SsHWN^-UTY{3*66ZjM?@>rg+&r`dT(txw zX$i7)Y6&ab3e8#~vO`PwUX>TlEPqveC-1bkHt*!2RniViX3iH5{IrdQ4@jhT(7Tr( zR7}TNTX?=gwZH`;gAZ5>OnLW`BJ}R%hakgq74q)oE;PVFy$Y`0y@Vw1UXo?ZyO&my z6_LJs8M)Kmz2w5lyO+Kn=NDGT3nlXXI3H0=2eT?v?Jg1-oNKlFn}&#u^uH^@NdJdu z80q9z|9%WI{IEj$ch}IraMiz%b!+7{^^r~%74k0?qLKb@kqIN+%CAL)@j z*Iy^@`u5|X)olO2r1bqbTMEDb((3+kiG<%T5efKxspbmr(*N$7Biu;yfb4kBPbr;j z@uiT8AMN8kkwu(729;l|1Su*fLxIXqQL8WPJ*oap^Sv`09D#pYTB{{K1F87YLf|lS z1a8%8uy*ZM%DFWHCwDglZu#r&Ffm((zzcQ&!#Q`Z-;`8uhxw$G*yCh940;vOaR|IA zqeS2>L3z=|An?yhi=bz+9flDV5V%#rx5J=7uR_)Zfpa5(z&{TienKG#d^g?40f8d` zfkP7nPQC_#+Z`bU?)L`@1O#4c=mft!XY z0{1bS>k2O*aH0(YZxq*9zf6KI2>gpm7ZA9W)dlRa*5nmjGy0P9hYAXT-;xSC0!IJ> zhb9QzDwra06zx@nVXU;a!=Pf0z~T6ftV3TFPZ7AwyxAx*v!#Xq>?qmG?e(~PrD(a<^j-0OuK&cZ##2UqHNWOIxAHRp zer0y~%MuBb?ANQlqL|RgS49RNG&C}&42DLQDFPZWzn<8P2?IdB5oz&j!1?p8-NKpF{PsHYH2g4@E&-MQZVz`IaW@_OT zo7BSj%Q;^(ybS&w<=3O^yO4?>jia$yXhRkk+PH{cwq8j~AWi+n({CwD3TY^!SXMIy z_mYC0U;Tb_0co`L_rUFIWzr?I<|y-~5mM;}M?&9IW!0otLMnc=7T93sNXRrbB$O_& z<=h$xk-J1f;}_U0e~pA;Ot~ZWvCKR3o8pONoGlh>lxeYsv`gWz7OxOHf`k zWDx1T!1jG<5%f%u5CbtFA!`grLMWg^R?)k|0vop=3v5?Ihu=`h0^4mc!*|!cs53jo zVu1~sAR+QK3v7042?_a)h5`Wzl^Qw{N;FK6(4+-6*Kpv!fiXow|>N6*+SybDur}ebM zr0LO(y1fde#Xel@t7dn)O3ew!Z*3iqs<>mL$0R)j*X5mnbkRBk{YmhafL7f zmd9J(yi>>$aFyLnj;kmFTxCT$t|DQ&L}#h%B|1yzSgN>sT%s!kQ7vDhGqtot$GC1U z(OJLQEt4(LMRr)CtG|n?qsnZ3ZcE))tArcszbj3HUbd}Sqej;IQHWy=4f1&)kDSip5_|e$Z=3`{YqEoU{12B>H40vky+Yw zeUIFwO&!0!XZdTJ8nb0KwO|MHmUGA0)SpXZJ8O*Koz?4=OfjDDT4VXz1Pr1b7#qiA^;PQ}2S0*<4q6!KM;zY-*#p z#`RoV|Hyfp<-i5pwNg1r5jeoa-}}yD+Wkf_H%uqIV(h1g;Uh3q%|5f>p(CZQ1@cT+O@-k-eQ;o z0$`Z8;fj}!tP5P>2?1Q`EfpR9MZbV6dtfW~&|^a94od)BfhKT;d<|T&TUl_$Z)_9@ zaHZ7H;Yy-m2e{%It{BZm4Fy;3godv*Cj|oF3N(Q$reO+K{Eo>v9h{YMixW7f@?-gls|NV;L4sD3Z`%cMSB%t z3Rlbp09=s^U{&G*K;2$ND0bokaK85uqcn8^xXc@p>!dCKt8)YnwF@9-8AM@3748Da zJB2I({GdkIp+ouD9lMT$9}?E!XCuXRShj_h%fXK`ERTbq32G+k#;Mr`KUPkcE(ZKe z>0$>z3+rN6w(RHv{7h@Q0DdSTf}gw-xJCd!L>us9Rj~&}27V$tfFC`Z>$R0X1pM=m z0{kpeNiJl(UgH-%zgB@fg*x`y} z!48+v3Fe8|!Oo`Qq+o|ai_f%QD`3Yz({4op^$Nt}>lG-U3O4wP#1^`s8hHhz;z#Ri z>@XJ(cF4U5uoJUoV5eXQ+>vv~fSt{x#2yZIh>in0O&KNFX$i`UE(YwZlomb|4eT%` zTVTi2aQR+Eyajelv+iJrVcrHiUOuueV28&6U}p_Be!Dhn?V5BfhJ&wd=1#K zTUlVoZ)_9@V5ij3!A_!K2e9KBt{AOVu|Y$DoxRb}eKQCEJJ1B|n1(6X@jD{d64 zL>sWvD6Tt6?^HHmXPR$jOQj27$I9wr2?0A^!8N0;ls{BZU`H6a_RSyw>_8K+V--xn z4vO|F!W8VJz8O@^eKTQyUD*Z-^|t$37gzNBw&+$q(l8JcD_$H6`N#x9d4*Xbn|Kx zrv@26+M6|zMXZtRY^YzM+C~Xd96^R+v*yBa#2djz=QE?dKtb{?_OUo(gTsaGR4295 zjUg33T8k|(7Y`T6y$HAvvt@9hUcbH~7iZKXtj3q;4kg{F)WF0=&YMHd4XZXzv$ zo{9H@@zyrzDA22rbusANLm2cOpu_7c#Gu~=YvSGu1Q>K^V$jLg7<9W|WYGQYL4jb< zOAXziCmMDz=&s?4(T*xMXefiOwfWk6fdGRJO$@qem>P5+v$?MDf1p;W0oo2i@a0F65s)91n&jq0}t#v4i88u zc(An`_oM9<*Y|HMv|J7koMCw!9!yX(Nf+x7;el4uilrMXr%M+D52kdn!-Iu&u`644 zw4MyR475TLmTsmsU4RFa5aB`I30xz<1ELK)u&UUDLhxW4u4YR&k-e(&*I83~!<@kU{)@)w~?$>KKdf#g1(}oZF5@}!PgL>7?73)>I zDAexIT}1}x+3wIOZ{m8yrV+3 zz#bxl3)b5Ll%W>56J&UMg|xsuLkqxF3qX<Yx|-$LB=@B2ot z+5Rm(E&IOr*K<#pUoh+55^3IZUy(8Mo@Wq%xpV!dqJBNGAh9%wS} zF%8pskB`}0S9oFGL$sOqG>U7i?=L|;@0sSve6Z4md5@LV1r#&y@d~aP9jyGJf|~c} zeyJUq2$=UklX;I-FrD|HsJ@P%FpQPfD{QEkJ2K(aV}?E+(@Ft+cZhh4p%8sFRMRS#3nntxn;pDVTXk5m%f*N=i! z{AlkzM;2{8<#@?s*HeA<^x?{qT7Qa|n}78d|0nDJtp!|dBf!$hy1%9KUK!63Mh7Jo7 z4LiUB*Koz?aVj=wC|IDA3u{<_09XJ`V1a3v!U7+&xvua6EFjvzf<|$T^+P4-0t=2% zx&RBTtS%M^Sl|`Z2PKq0R8X+s0TC7;02V+KSYQ=QVF8Nj!!`;h!2(pwVF4V!k@Zm% z#Zy?|GH*6YO<_UajHC>(z{bDB0&)TitTh}Kkg$dYhbgX)gIH*}92Pjk@;EH8Xtew_ zEJ)Ht;WSua<#g#3V8N75aagdhPH|<+t|?%_w5AKNfD$4s$UA{+1Xw_{fdy6-yR|b| z5ZM71)O)Ws@ZNKtF&QRc@7AAeo`0l7!URtg3G@8V%2E0R?Y;V&{;yu&Jik{xNjck? zpjSOP;h(7&zQf+D6e|prL^u0UkcuDey;sOetiTm(tU$?rt(r4t&GaeCkfH|)E#6$S zIo^VN2j}d#5Z^(A9#B3-4-)jYuIrErHux&*)1--7e;!itqXjEqE*@5pdl9fAX3Jnj z!44Ka=Z=9DPn8k@RuCNrE1EJ&SkV%c7hMdjI9gh?VFe?!4J%NfS0U>HE4Y(^6;Fo_ zpP&#}@xTZx5CAKn39KMr11sz<6s+)j5(NURC^d9gk!aWfR=9>MM$b^OK|{fc2Sr$c z09XM{V1;Rz!U`X=xvua6tRULJibipb^>ptT0$>F+ffZK46jq>UuOgfTD^M|q6>$7U)@OSZPho}2yxAxl9bE?3x4A$AddbQTH}XYq|g{C?Ud%yc4)afE7d=SYcJMTU)SVPp)R( zhR9yl-%H%ME~<0#W{!|g;gQ9@scpl)sm~U^hFjxLP{ZpRhJOC($|6bZQEal#XGy56hxKTmevJLz6yg$vpkIwS9EG4+&B;)RzW`?nWG}!yTNzSZ z!expV;I1=VLUmI3(cltll?paEE;&gTRF|9#srb=)GY;nBaS6E>flFex43`w_01DWk+CEkSwF#o&_XNejP8Y_m9nHK-lmjPo>HzE=@%Z5B7pu9)~{ zoDJq=jfL^wMm=6WvM#8H=M1Rl6zH&02UnNR>2hYps2pKqi_=HLB$;P!12d~ zkI5AExXhc4Qd88EHzO$n>aj8GsE3@G4r>iZJtVAA&kGdSw;?RFT#kC2VR;<&STq8g z8ucXUqHr4Ov2wa}3aDpFr#R|aSf{wMW!Ds_XIj$*)I$jo_2iwvH3I4(+Mph*irv~7 z>WS!o{t3F^Eml6Bx>GeyIgn#-1A4#68G#OOmlDjC%A{lOon?7 zZE(+vB@*s=sYt**2MG84S^p>M+D}|R?s=JVj>A1KPxvYBc}2pHxF-WSuT~O02VMiI z_%RmbATB`;%G8j?K@MuvoG~B=ZECSE-Mmtq6y$K3;>EY?4CGLq6w5RqhgzkA4GwZ% zs|%`2UI(f8(Rw2e=HfvPxfcO)VzvzA6zqUEa_$(A^C~G3Kn~GyAg3v#1UW51dC|py zoYzZ>Ud0$SkVB*eay$)}*Ovzrwm^<))*a+9{@WnO%SYA)o{Hvbxw)K#o^%&FBo}4;2*1d1wSV2mm?I z1msu+Q;>tA`u2yyNgxLmbC3ha9}_+%Q;_2_Z#GIzK~CO`qzoX(#;}7NasqO!H5}xS zum(A&DXveTSZKK%~KEbm70Y}wqMzgwh7}k^gI%g`^IDGTAgdg!u zhGX8TB)Zk#1*!PatQR$B1tW71!$&!NZwXg)OtNg=K@8WbISGiVPY-^(#3^K<(Bkyq z>kP7>e2PpO$U+@b!3Kvc@74v?`tN~M{Ae934094>Nskq_#@m-Yt8nYxspKvp%lKo3 zEq}c`HD=2oOTiB4A?J>PEbovK0kRNv$dZ4zvnfNC^-K6V>{+Kzg|`IdMMDOW?#Bwh zS6T!;6VC}Fv<)gyKwk$!?+(Wba~E^0@Y&GeTNHAv@F7^V2kM^gRR}m%7@B|z@-@c_ z+g&J7;rAp81W-|G=%6CeFaZ^ljumzdSB~DNVuOY{R`_9Pc(xt6gMed&p$Vuk4bx+V zeaz;%!V92+Xag!5#WmK?lAs0^r|Aep#lNVh-Ja9V7ka<)1b|`XmbPrt5yM{DwWD*C zKU7vn3_qO8`VqqjIAR!@01T^adc-hF>-$IwQ-Cq)h+)*#r;`-sM+`gP`-?H?ki(A{ zc9}OS*Kx??@#!Ai@(rV%XHu5yOn}_7TI@Z+830aL2EJMt1!b(E5yFeMrmf_92Dc-a)pL zchz)aa^{=hjNyODmM@q6O?(jCu*n(2{?5u@%sziWB7bM)gNo^$mGeXfAGUW^?ySWc zduQb?itx_LT}8t?E9BEVE9XOo=PKl#l}Bg<@~r~6nqffJt-VA2&I(yn$lX+k-dWLc z&iem8iqQYs z=U?|fWvB%{2^oG&AuaHz&;oGP0+4lUb*`JgvqTmZvY!f3|KCq!!aGY=wiT)txWCf* z(q&}N^&cQ^^Ul)AGs|BR+u+rwH*J7kvwc}8($?RI^EUXDL}~+lBkt3R>GLiYe%8Xv z6sjdYCo;Hby)8jWYKhN7hL~8IVR!KXg-^%;CL}~|pEAI-$^br#azok$u@NJR7$E^jXyrD}GdPDa+ zkl{BJ@`mnXX@G8@iC>4PCN~c|+GqvLezqbR&1#xAM4f_Kq(5_x@)0{dXnO zTz z%;?z8Gj^J=f3In+batg_m+$^Z`9k3P_ozcE*x>WAAL)W>{U1Xrezf-Q!OZ7lRyUh@ zrAN}|+h5Qp~5%f&vV~o%+AG0d>+kz;dud|?cG9R0CBt3UBPTrqGhu>3(llM?PYr@-t z2ypU3lld6=8Yi#ag_@7~J&6KgK2~bz^RYz3WIi_ONP5?B#po9*HfSg(?_p@@Zwn&8 z$qP;9W2Ry1k2Q-$A~ubu|{!?^`A;m&&T$eawPpPl`hP|tgLblHt9%uui%=| zuarMjP)^>%sh}T8j{qkxG?{~01yd(4is~aD3d2}wy)B4}xsw-;-^ls`h~lY}*Ja*p zl$ttu^JXMvm^In>cPB47nKfB!_^gS9a`NskAT|1#;`(-ig_g^myw0#ZK7+Dodvceg zi^4dIIzX2Qy%ydUv~s$13QpcBo#Ia3g>{N6TXxOk)W?GZrKs=Uo7Qx}$x8{*$(wfq z*9cBtqK%W+s$#dc=86Y#HQT=z*~|J57WX>azsEynwtui)()RD&P(EPC6~C59xZ<}W z0at9UHSG86e{aoCcNG2zBl{i`-WB|va*o3lzfbrPSM;hsB>dBN9{aw)pOr*Ufxkd1 zevDnmMqEM;l&JxRLk`raIb6;as5xUm$RCv<1tDB!ZvI?ll~3RUf)$}X76d{rqoU_4 zb9wNZSrM8xg%k}4p*n@YK?t=f1XuU#%B6x0j!yn6P1IL^gH-%zp%a*kM#{|Cg_BG4LaeTWeM8vU=#@Gq}0&SNupr~bmAJW82wwt z1`UNy9v{&O0?-LGK_{kRicWmY=DNZQ=!9s4P8!8E*8d?v7j*I;r3>i9%IabWS%UTo z>YEYDA1Wwxa%4m&2tX&$1f5s~Q*?r&y^1i5l@>Zd#T=c$@f%qmDp5Q|Coc15qtq0g z7sBNIc1$06Q5uN0nz%>FoA=;o5tBT#)89IsV8lA*_cG~(s z!#=w+3t#r3!U&vYuz9ft{S4uT?ZtnCXt~es8u5Oo|HQ}5VonSa<=xSmA9s#}W$tom2s)YoYY?xgW|Jz-iM_$*-! zM^D(UhL<{EI^q9AP$|5oy2Z`n@l`ia5R4C2U%3u5YS0uPki!;$v0O9k<->rf(cP zR(Z5K(xwS3pDRI^{|u#x4( zbyhAJT%>DkdFxxQq%}9$Tu#o9i6JK^aXC4!Ct`u_wU0~E|Ad0o8~2XBSahW0E*Z%; zgjD=!fpVBRD7OaPR|6tDU@Yg>E<YHXIZre|xj)}%fdI-&4IPw|AZXYDl)Hv2MmHswYba3uWHfY_ zAp$@-Gy&zNVG7E9%;vhn3!t261Iio4HP*M2pbIG1DM~dcx3aq6KR~%xaLq_xsi`X{ zQ2rDu=q^J9fO2R8%B_MaC`VD9cCIjtl@=&R#T=BwsmBbXECuB*^Jb&e6qM)9NXh`p zZTveZCnuoXTEjs(2?fdz(}Q$$W5sn&vW1q*LAf(5kArfHM%-P4@+4gpMo@mZE|I$o zt(-2M0w|x-DGtgP)+w%R*)>m99}gZUMcrjMt?2?Nr-TT~^G@Iz0hAMMK)F@LZXAK~ zBe^T(gI4f5~HnkHF;56)iFO=f(TB z{u4~jQ)ae*q+gT$7hv{(8V-|J5FB=Mk$}Ul*1X_3(qju@F-@z4!*-T%91iOz{BO#9 zIu7eq@EL~Cfxeo(bUuY9_>W}?u! z`Q9#x^UogQ3&Ko0Df?K=Wa>F)+Teb=Tc{>#!COKqe$4-CrPR7aaAELC1*uK}UU4LF+q|4XOx$gE8C&99}-ME`WnO9Kdl~=x`^60FFTf90&j$&;)Rh zuK^r(p9*mJU5f$%aFiN4;7By=061L36{Fj!*r1^R$59b*AOLVc6To2_rhvomh+J2A z0dNp)07s*^?xb5w&;@YZUg?4t(8}s!+W;J1!8N1Zl|NKafa7Tqa3BD1Koh`W6-)sK zit0>vg_8gWD&~L#jz1B6Os0UtW!`L*ngWiz8A%xchmBze9OUFlZ>`~ggMRqWOl;CKpGGr$qq%lc0hH?C2BAna$| zs_+5cF8Bbi7L{mbXU)XHBKH+u0B<~5w8R@96z>xKCwPO0%xr&Pm(&{NCNn=*-hUb1 zxPwIUe;um>`4#I`cd~F#3-_{cZwv2i;ax1et3vt3_7NFeVt%osRJ84ge3~M72ly3hHn_0IkWt%xF7O^A8GbOqSb8wnWT*0F!;B%&)p?*AL%_6>s9x%@ZJj5 z0{0Oae9~IrIAyjLI9?H2pb`x&KpAQQb(&h>9tvrJV?qnSRSQ7Yt=+e70kWu&kqS`@ zJWFIk3s~7!s9N9zrSleu?79B4#a+LT6uoBq&+)Wi(o;2tw989IW?zW}Vjd_GFsUjz zv#l`cd-VSb!=(3voom>u7%^(Zl@!NX3sf&_q@OO-ddMG%rxuI@3E5 z``gkF5GMti6k2R`+hxJdxo=Janx+$lVQ$TK?KU6|-evv|tBZm~-d)O-c2l@q?s90HZ|5fzhUn5{$M4 zlA|vbrD>;G$P>&FJCEA1Wxg z_zWuO{wV~&MQ8#St%50BMA2SF7{*G=KZS}pT!d4P8Ae$O7hUGfMyV-W%$t#v0WRA3 zceqGS;G(sL!$lGbEq=X0;^G@Iz0WK14;G$KanAuiMxJ0gkH1# zmwVb85B=BL;4q1VhmI7Ph=(30;TSyhOqu-}4?R&y^z?cXq~b>#4RQanVV1s=Nfg7MI~y4YC9o2l0s523B$p_}gp9^&Vt zLojnZWX;jSLpis`L*(v;hb(`Mhhnx24;AbHO>*vBzbUE4Lr;(r0S^%!hliRnN<7pO zlowqL9(t;@2zn-Xh>;lZkX6C)5DN4vWL@wOHy?QDY0%-}3c*9iV~iaSApj3S6Ffw| z1`pZYCOqW#9ts3JRBGsWDABM39&!y=jOJBr&`@}&LPN(x2*5+o1P_^pDIW4Mo9hZM z;31+79%>ZVSRY8RvI8DETIm8Fva-6EUht4tP)7kPf2g4F(2xo`9zp;ff+l##DwyIS z6xFHa3d2}w;UQGa@emxpk$V-REX6}E^Jb&e6c6RiNXmeRZ2UVOA}4srTEp=W35ADV zDLXJaN^u?QY@y|HJmd_^<9NuT5%Sb{C`lKE5f8memk7NU+-Fu!mrel>P3aWJLksH^ zSGMe$k@|S>YANb?Xj;<+JVXf*59OV}H3A+Y+TbCpirw16L$Bd#hKC}1S^u@-UUzti zr_5~sb$-nn56Kg!C&;l9xqs*xiuI~zT6mm7;i2P22A3Khdc86m9(sc!_=ipt4S0w$ zgoi4~@aYP{L(fuEgNNYiX$D!hRwrIM9wLhh(b;_9p*M+4z(ZEH6)HS*hSGUkM)q9) z&El>f524p=|1F+&n_JDzd`Wx9HnKJtN+djVib%ji9~1t3v@oYOAI@B%wa;GlED6Wp zq0~S0LM74D>qU@?AA782GFR*oLmVN|k!yhsCx}-=BHuN}(#+*%v!?0i`c{!<#csWu&FCGw;+0Kjl~=6jFH7Sa()d}X8PbFOw`w%o zX0w0iy}Dqn=y<#0X18EG^0ReChC;c$tr;E*yyE2TZ94n4*2P_n{48|&zixqhv5M4< z`VvURj~1kcnL}#pW`oq}DMmTBhScOPA@%rEj4Xc*sbjVbQWxxiZgXyE{&Wl6sZt_9 zYN8IQ^HYqPGK4F$Q;b@I@}ePwNcU5WUMekuo(ZJpQ4t`uHHJfK6wtA{=$*J2w^+4B z|4QybmtXYYK`L^D8>7ZYXnG56iB^wZ@YC~6}z=pZry(;S2IX$H8l3J{=38#3~ctm{YJjT zBlP<~VYze<+$#AB@iBf(RPM)_ox_^+&ccJ+>-WB*<(l-%#XCd)$(l5enc4ok{i564 zYID{aXL^PwUn9{bOZRv_jOumzp%XhTe1nCjS$MjIZ?y1D7M@|@n=O2cg>O|T7=EV6 z;L`@f-=pgp41cd8!0@v~0}SV~g5ht23}34d82(&!4=^0AU^rym+Cyp>P8JpNJ{2Mu z{(g}OFx<+vLIuOmQ95t`$kzL>;?n;94#$Nv%P)y*)t6n~tW~4fZ2w$Oj9>C_`oY@m z?Gg!xze^dPk!i_ae*yj=Sq-=lPTw7nNn@uU4oabyu}XV}$|>N}Mn zMXF>dkg6VH3w#k`2Z5**sc!HMd}m2(wZz$wiXSaN12YFSRxJZG=`kQVw+1xiE& zV?Zo_4QOJv4A2zpfGu+F9JXWWAO$qui%=|dCDIuC?DbT zsNe-!ywZ7k65u0*CV<8&nED7&REH}n3}eLrjUC0fYUL`;QRN;yO!LyC4^=Qi-Cji~ z_Tl0Lh~s?kBgUOW96yTDW!{in$03d%#b|Yo(4xj2G0T*r81qgcOMpkH5o|o=W8>{Q z4v$DEcyykg@S}4S?^PaJE{8|XusjZrCa9UDi*<_H)q>k!%PZv$G(Zlt0(TQ*~TNmrEAD8U~8|jFX7B=e3e($dT1RL?hn(cp>E3zNW z&!ybhZ2b8W$=|qNulkT;0yh_m41Q+d<|E2r;O3)>0B$Z44d8}+0yiIq3@=a!xOssZ z7jOetPeaJMwU4U74Ovvk$5n{H%_l@AfEz2@3Kh7ySn0g=B73fXiMXnZW1Hh+3v zOu1_(Wc>DeuljhxPtQ~NM8c2X1<}Ef;&azR{d;J~2(r|;>XYK?3HvEX#gFuemAO@O z{rAZ-nAoA!(v?fYDck7hUdyH7lx;MtISKq)I`7{@GX?A|i>31p$Szif6p*1s_#WEQ zaKwr=(O$IExl*LdId7*HfK2aAUbflHQAul?hiTwW#O8<vyHpoc zmwXyh@uT%UG?+QSvt}}Y$NR~bs;PFpYp8LxNghsH0JGG8egdm`D=g| zvttCpa=XviRvc&s+* ze?=E#2~#o3Gkr-IhAqd7HsK#k^9@{TXQyZWi9qV6XsKVA8 z8m8G5DslW98rDk*d}RCw_}GZN-n|N03LiHY*1M9H*-Y>?@rUuO>8;#s^m*v;qY77T z*6W`Fc41Q7s}QW-OvjgsCh(DbD(Pw!={G*}a(@g^ivS->4IMsu3z&upd|a_=MgK== zi0kghipXQPl}xW|xW(uTDmG}iMX!G<8t!KrB3QjeZwO7`qiMKB|0fiAJzRc%NAQq} zy25k#s6${CH~cvItYW=kqrAHJGB_1{-+K38R%`tC=k$EuQ^R1UH~+59@raY^MHm2k z4gKir%lS0=qIdyX+GR@Iv1Zkp{;$w<^{UnVUwh?Qe)h_*9({@Hd-tsF^Ky7VH5B2omD-Vs4j6cGgk0Rd6}=bU?Xc6Jjm;rsJ_-aJq4%;%n4&h2OJl%>KK z^}mHl76G%73xLJoZt2)7D_poR?v$X~+_kxgDaHB4S=EE+vv@*cwaB$Lmh6)t z%+2IGW%75Jd^``d0prLX>0ANWjDq#5z-yUiBkvruA$L5*%9Til^ zeqUOAL=P3Q`r5=fszJQ9ZL^2Bw^_*icIs!E-FY|Jf)5Y+5<{=3>vC z1tr*?!_(Y0?2I&AH|%lp+fmTZ)nEv{#6*x^XV4ZF*D z9B~3%+_0O1OS-rNi2~fP!=uUK!g$7p9gRY;xWt%51=!+p)lgVmCJjv%*RwY4god_} zS0Gu|5H{?lqK4uQBnoiD4v!{_i!?NE*oi*ttSkEQh8><78+L}`(AO`4fH!NN`;x;q z5RR=XO3QWee%6MaD4_SqZy`Px5H{>!YtViN5(T(nhewlDMFli(*rB49Y;<#2Rk&dX zRu!t~{7@hIh=B}WgokspRV8Gi+AvkKRpnfb7?Q0j>i@zlz?f)NQEdpT3Ip1$s;}YP zk}X_{C9EppL2-mtMW+tK$!=Ad!a0P_Ru#7z+Z&WlUK#~0s^>I{us8D8C_-7+rZHPo zU~fFH>e!;f6dYS@&W(V1u)Tq&hP^>Wp`q<$Z#cXSdm~QR8-MT~8+`c9$=)c%_QoMN zg2=Ep>ae{L21m2Kfp*10@LL1_Cc6SB87I2}e}7ik6<0w7cE$H_V7nsc@6Xb_pSzs^ zAE1VqcKgA+&-8=I-(hsXr>af zPz}3}lgS}Al~5bISZpd?2OqN$g4wwI{_OvW5%L_9!q`;8;<#8M!bHJRnFas35pokU zgeLg~57`Jget#A{U)%`6*e_s&IHEZjAuir*4>>WEI4D392ahHbhcq;sIATON>xzDC;^3)a;uwma1NiLCzoOg6GwPZ9AVeO$4&n1m97-oIje;i5a~egMIQeT7p{#4uxR^N4t2#DuFa?K+ixM<6zvESRXv@6Z09m@H!71l2R!9>%^2YUv_)j*;`9n=DU39jN`k z@Q{s=TV0^=D^Zqq0Pqe6^H zRDg{NR}F~5%3|!z@vQdCfZsXBpRFH<|C$~kP zb=DRA*r>o$!>BM6hra#~2nzFqPMzT{1f0|F&$cw~P8HT&?@U=h7d9{`UDvhjSx<3` z!WJ8;I0_3-anHfRX3`B16yQ_bcr+OpR9N#<+^DoA8{HfR20z7(Dmp*KjXq*fTe7jo znGFmf6IF<*nhgx+D#eg&V9;0)1_s7N1A}Tq7#JAP{EM*^8Vw8l#aId_j0!q+*bQV< z&@aZi2pk55_{CUK3pR_eSLXc1SgL92@UYZ6elgbJZU4nsc%HeF*iU%gZ^q*NixV#U z3Ak^t9@fi`;or1xfP>8Ro3Y|MNmg1@Rj3kJQ*}7-zJcp^lJdSz7Jx*c_ZGxMHbRX! z*Eiu%=D64wZ^F5OpZ(h1v?|)~CRjmiUKKG3x6E!OP2b?m|Ef5#w)5k3@BRsSsoj73_hBY=j)Q5YY3*mqLvF0!yJIn$uF~;?1j) zvu`d-p*twSOCg@-wiFs^xGse`1g@FB$WjPDBw(M?OiLkl%bZIgDqzV*SzeYx9DKMG z7RKWU4P0Cb=i=NeZXuummqI+6mO_kYEQK`CU?~*C4i(^~&{adR6q+>5!%`?TEIhIZ zB+DAYQaBGa6t@sifJ-4BO-mtZXkH3MpLNz1{dg(FQ)4MK6oD1_tX zkJ8HP@+S&dY@|2D=K{j=Hy;ZqUSdK4E`NA5Eq_!%^YVv^TC&l7*7AocIxm0dBL=c1 z8+(~~`4cixZJ4Tg`E#yD49UwM^?$MaVN6{9s5Zp%hXLXG`Uu>Y9%+Mf_@N4NDVDgt z79JEwEQNIHvJ_UbM|2T7mcyfv1-BaCLZF~|X%xJ^eomu^>+AeAiYSz8)4T(1oOTQp z6)!P8uj=^v8dGq*#N^xvmK|Y@Pz~00=vN=kAdeB@DZ|eU{k;k0Dv&(HFn-@ zgi;V6hBf@)Aap+j<67FdA%HSh8=*M(*=+>zR01ku_sPX-C;?)#)qsh*WzO;XpR5M| zfE-qXxRyp`@_or{$;MKlIYFiS|K6PNgY2O#%HSazA%{7Eo-b}rVC)w#Cmhk7%n287 zUfG>}b1^4Mf)Z>_;Aw8=gpr1;Igvx)n(2#}6J6I?M?apgDm@lQ}^en#~E(XPtFLKQ<@u)G#Lu#i6g413_NQiAoTT%?U~? zFDn;r*NXxc8(A6Ra{prV#+bf0BTpo-4s1p0`948PC; z=Vo(4$V9bas%CS-xf(Gfn-kRkg*kyS(VU>#5at91w3`#<;oOofT#6;k3E@F;ggHT{ zIn4=EIEV0g<^-jamqtNz;yH~X%!&Lpicr?IXS=T#k>6PSX-oN#Ug%!ADdJT=S- zDhds4Cv(E#ZI}~=J#mYlNq}EDc6uhE2tSjs+hq@-3fKb`U>~6a99^GDm;ruE;NP^j zfYXf0p3tR}5Z9gd7OH><-usENWLJeV_<;~|tCL#;TzC_xCLGdk(3?P~z$BqJflk8- zz6o>&j{GJNrUY*S)xyIFe{k_lpv5q%@J%4}g?o^A_`6uV{Y@Z@0*Rc1MBq)J^Kf{^ zn?RH{B?@l>U4U@HLUVY#`CkNI{vP*a$$hrtJ)ni}8Seq1R*L^u7!u!q65pQ`^-vo` z;(JSV;0!)yPi{SMp$6*1A?@dXtpQ8}YM=ogMg)M1HSjLi0Qy1=;K5V_7$r|NKxtE= zPBq~0<{GfS3pHMHpX#WCIg5-sK)p+CRmpt$b3zQNi;qG4= zy^A{g`ul+=bZ1Gnfg`y|Z@eYFz{}i~6bo!=4 z1cU?AtPdWt5prG1y#O3V-&gBt5{oCodV!Dmk`NPh`R)T4YWe)`gI68r zOG3UK3g4%O)bZMm)Xe|2oh2I!K;P$T?}Kk6A<`wL<3}<7*X`uKkR()mBp$L6a$NtR zr}On6)ldifJ=6oR1&(hRI{Vt6NXOWDyZ)p2_B*SNXinFEF5Y}8=IqOwU`qBk48uVQ zzW&40+^+wOG+eL$atK^AeUa@1r|_jC!+wb|L|zK{-Xk#um4a{OE$XPR~+y8@!eEZ z(fRrhee5lQz07?5CuE}9Fje#QpK~>0NWT7~{x7coFeYCAQEiCpKMV-he;vUD7#RcS z@L_dwDVDhY6CM;tT>sIj;}XyQxRxoLL+H5v>jYUiZzoead1(~9{(DZNi0i-nHHuKy zwQ0cosh-vu6cyXa&#OAV{=*a;*MH89fO+usAD$Z5e^eA2+Hn2X1#_eAWQVuazbp8n z&1T5j zjZYGwOjri^Ndinkq$w-|`xgcVLMZdnkFne`vmtb0@r8lRDRA!LP6tk4C(LgiVmXI3 zkbi)=hP(Uoe|}kY{QR;9|N3$YWCo=ejE8K59Lp?vx@W=1#0sSChg{9;srfyA$101y z_Ei=myRNdizsK*i$~vMst+FoOyx=+e=CaBrf)c#S;;C3=o!{d((r|r`KZn3I(-(P< zKNYmdxyoWc$hpd*0`M_+)Z4VmKI=_;?A7?DeFh#!#Dj}(+OKr1vM9he?eS<@WicK+ zJTBg}r_KzktmxXP0I#yH8j4lcq@ih*eb$@yLPM{SnUE}N2yfc2a;&l_z&GvjXj)}S zL-U*VqRTq#ihjJx;;C3=HOmM?ap>x4ASkSrJq)vm`ModA^_itC2*;}|rR6%IKkIFJ zQNW@jhd_KTAiPb#+Of)_0N z=jK&b$V9bas^(SJxf(Gfud>wt#VU(2ah0Xo5UVT(w6C)1a1I}HCzoQ0RaSUV9I?vM zsbe9vud=3a4x!5`D_V_j+EO}sX%t*#pVKH}mCawH2xVQH#=OeHoAl4CI$mWl1;?B8 z&W(V1@G6U^xXSwA4hR*6hIU~e(<e!x-*P8+IJmIi@ERP_Zqt54 zH&~!)$E7=*;EqcVIP#7QrUCm6*?1W73b?r6um(mGeajsf_8U<6cd>tb8iv#Qv4%CSo?mHsDlw868lY~ z;0!(h4la~_3>?xxW8Ek1d8NnLQ2McW7%>uDEd5$8J^DiF@n9-FM#)p@DQ!yBsq_wS zF1;xGGxwWNE2pyK`+^>1W4#U{u(2k`@7H5C_6-@a<1!w6%w`uR;g-1u@`a}( zHAZD9MeTrF zC+3&=oqg>_9maMw>T-XXpW@rMP8`vkj5-%@wy&Ih-S8^a`Rkh#K?yeM@KhLe1>xgN z1;xji3W=hVp04lF8Hw8ku9?2bdvtGu7Obaf>jZll8+B9!v2}t9z*p^2ZP#A% zjJjvN%r7*wjhqh2vWD=c+d9-xY@MJ0-*m&H$*3a@&2PGiKI^P2`ms@mr^eQap*ZyQ zDIoZlt&^4-d?INEgkz(Q(sH#Qp7k=nD4_SqnGl}~2yeQr#{!D26BOW^Zg?~qbyPs} zn{KEme3Tko?klu)0c}P4^DlbZuPr zO*X(3m_muI#*Tf^&@G|1;)@_mIT>Gf!I6XMsrAGjrg~l06q(uxIAM zA?-J^XKq3?vgTlNB5UqfII=Z|vB931kB1Sn!9{xpzPCu$9Qwj6hKIk44YuDu!zf_S z+=fKJn!5vsXIOKTHYE!7%x@4*)S<)M&Hpa={@eXC)JpNchan}YRgVrZW5cT^@K*@_ zU#VX!pjN$rdUYD3k0zyndvvBORTw2njb_QxqAaNA9z!w{QwPGCB%ReQ(vZ5~*RzMz zuCYbJTa^_;dbV!^$8g|9-vYNvN$Zb+;SZWq?p@}+g6{aT#1pxmU2Fx`i|j{vmw{svG_SLg*mr zl6#A$;kxuaxv#dw^O?;@^)4zc35VvCE;dhVtxM4@+jP;T>=x+Ort<}KUW(kt5{mv+LOs9?o&s+H%3+XFW=!F`7NO6laY#KgUY7~Y(D;m`7 zu1g&toq6O_L`n~}bkn7eLNV?~B(2h*HhjSSE|gT4_CrWWGYsAI;C9ivIxJ@MQ<6t(Kw4%5*aqI<6Gv5+Ft;wVeE0@CQ{IjIGtASkt`^hXNmKbSOW zi6K|_!1G<;7La0Ecy)#nf#yY|IW1AQE>wz=y{53c7zbSOaCe+6w(2tLWof7t8)*{Fr!Xac~PrV^T3?z4e|nUD`^uw3pn| z6sC473^|ADDmn<$Sx&J=S}?~5%5hisVN#2L#i}a+9W@Ur%ErAESchIQZtHIlj3Po3zBu9 zc)HY{WMfFCOFc=plVomEEXk%(nr>1$$)x_6pOwbBP3lkatkQ6j&7gSh(in>OCxvvE zCXq}h8MKqM45W7;9_-UfQ;B*&4oGu|7O`w0QE8SfCaS@*B}Ai{RuE0)kn4&1v1}vJ z6VL^7*h*B4W!s3Fa=ed-(wX)UZRU7;iB5C8{Y2le>;Tabrq7AG4;J|yB$~*wpNLv< zDmRF>G2JF|Pef4#&$$oIo0_{v?TYC9uxgu4|VAcwg$@F+hE8jsi+0pwq_<$ zoK%rySHh4InJhh#lBMb(lcWJ1kuszv6tY@Fq#;skB8@Z~E`<`6r5r{{QA8P3_Hj}Q z(JjhhqBMjkgmQRO$|eeGifK-fCJ-HLi8NiBMpQWnX{I!ns5H?+=>rSa#Oy$4j;omUdCd_kfDa9{^!0mnq~XltG=fD}*68 zNxO+2^g!Ao9iUX!Cn0T>z989AsEM~N+nKVdhkPgh@|#)=L&Cm2{5XqEI-H91CDYFo@`$97YzWoTF{u!d zZ|ITes`3e`2+>3;(P^oqg0-ZDVA*fN>WgK6gUbFJ5a!Ua8|Ltv)Q#w~6r}r7U!o?I z-(zVY(R-~?_O~>Is08%nlNL$NCW@kv7Ws9eRH{Kuo=o&5^-p(s4$*l^#Z!Kd=nBca z<;_I5Nmf$cM^q^a^D8YMCYnTjzN~zTXcmp5a`Jhi#-vL{`5U6+)Uztd-xHmnny4cG zOjMm(rH1^FD3D~eyc|~5M;^=q;BPUQA zC4WM)%T#A$n5t5}OpuRI$U0QMiSh{wIieHBdyC089qDcP9LbiaAWf665LL4v&5*AV zl_Q!Z-=s7vH%HkV`7X(JL0tz*?=amVS|mTFkP$HY1EnRhtYP`WL6_q4QXnkfpVX6= zqYTQohiYlLtWwCCpjmNwrCg9gR_%zXYy`rP6KHnZD0>p!r~J0c#fgT~sM;x4Cb~lX z`ct_9(G(hEd*mjRLphq4_Q|a&hi;_H=RlZ4H>#J<^bk=fIjwNy@Iwubyx=QiR%fpB^P<|KXQAAg0 zmANdxNm~C1{j<3Itvr*oUPxMB146C4Q@vc1=TOMHG`IdJFQSn5sW1HugdwL<$e-mU zM4^=5FY-!?mk7PQxO`jQK=C?I&EEsUc&SvM_vFn)OQ?Jg+oM4yFWDitkmI?9Gq$SM{aQ7I~4Rf`W% zAkD4SEv0q5JRJw-d7xCwQdw7^?@olhiwvMDM4!ObZidv#QkCd5T=!;3VV3GdiE!1M zA;nv25-lo#G|W<)C<@k=3~7?34v{zHk|DigsYjGW^ns-T(H^)s&XBfRUM9jPPBLKi zYfRLR^4n`^N>r0__`(uMbf0oKZfQ;gF9blmvzC@bq70WUt%*b#ezUYC5@oO`Aw;4K zMV0nMq70Rljzppi4VBJBLhBHvE0NH;tI~}~Xx&TcK_s+}QhE{zt>cy6L_+H%C4y)a z><48?=}KQB_%sC2>q-<+0oW|akY*_{MBh*?El~Oq;cpRVNK2IgMEi-hD)B^rQtf`O z3?!;d@s25pM512KD#=92l-~_yFwuRg>&HqOk*Jq~Y6ej$=ph+W88wTj7S()!I+RG% zOAGZ?qN$W$J9RkGyQEoHHJeD(OD}aK(MW2|XmvEvIZ8859ZMuryhQa4qL!rRYwCC+ z(SB3ai9{Eu4=z#PBsxlIZdNA~2|W*}Q;3>Vy_{925e=aJ@}oL~XgA3osAtp~ zNc1IL|D32J^(9~Z5YZH>d4K&2A~C9J=|_nAQV#X?V??6&G}TWKB~vP`^ixD)#SBrFQsG|BguX z>reD+MDRE)#M`g`NF@5i5&b8keU#=I{bwRkpO^Gsh;CCa|5d+5Bx?5`{SHw}%1?K@ zOCr`zvD-c-IyZV!k=+rI4f2T^Z|*V^qdk;t!u+n+=the)@-OtJxP|CnS$-DEdh z14O(LZVHizH`h%w$yT_znPl7D+=;~evdgU?k?0f0-8_ikHZ;`IRW~o9?bHsxyA>w7 zP2)(l79|q%ZZT^yA~C;IvA#qkdPr?+aiaFr?hUOaiH1-PLDtelF_dOoYZ)Rj?{>77 zBNFB7ZmmEh=G{1JB_dJUq1GxyV%{BLtx6O?E%v&#I?-k7A+xMC-DK%_t@KX+rMtN7 zP)NUi)z`r7OYXy}qv5=VZvZT=F(uI*Uwa(*1QeePZsDpk!98AWF1T;iTnO$*RhED| zzRLUH-tu1s?(BdMz-?81Be+LvZUuKi)g9n2t^6^#JFD&iSE+sg+%GD90q*yukAu6R z<{5BfYh3{MT$QiEEm!#}xT!UN1ov6>aKZm3NJo=y9ZI9Nql^CzKFw-81ovPKsk1DV zs8Imi$Qs_@9;)sK?(ORS;Eu0e7u@%2Gy^xgMliT5s)vG`MP)Bv1ygQSy$|@@D-#Fq z#p0NL(Q4?L^L~o&%=6S`XYsyFX8!3s)y84c;1eDZkNTn6=D3!qJQsl zYa#c`RX27nEV)&1r0`k5N8tZnl~2K~TIMjgStX8vn_T5IxU;KW23OQrWlH}wN==j^ zXBd&A2(zmq*7ky0m{$a~h>+H<>Bv2qv|URnPcDc4_XDm&EKB8I!2P}wx*JRW0q*!R zDE-U_-Fki^1@yl{u_~8)3g=&xNB_#zwJx%BxO7o)C;OBJSA=)?+uJ&|ca<)^#uSdO z(#7txJGut=>>{^GJ3L<*jBYTUe?;d^+F>gMle<6I(Q}%#t3%<@4W{#tg6lx;*Ql+B zRci?6;U!vtbk<-@VLG_7bl0y6_>V8s7Tm+sju%9oko!5s{i0G=kdCVw0q$L@f$?Pq zz`3Z;CH|?>%10#Zui=6L97<# zrh$8y+WMDL=wE|Ew)ewxUn=`#^4DoZ->HfI6>6copdyZ)q2!7gZv%w4x7yI)`B1K( zd!qYhYjj7E&+9?+AxAIjd!4D*m7$WlQy&&J6Gr-cQU+^mGL6u+%?FOV)>xQP1X`7+q|{;D+wToFr@E0ucYP^zUn#TSDnTdCjHqZG_-y_H&OTxD#pUu!Ri zkYap2Ka8mP(NsDyxAZ4{rj=L&Da>>t=jNI7|0=b6W#q2*_A<{ZdX<9UKfa6&++ozu?@-U_Lw(P; zJht_%3h0Wq7Nh%R>R0{hlz>>*%cFazcxg(ZEVx@~)f2s0 zEQvk*gL3E|AlHlB>$NgLiv6M2m*iIeNwGqWFEa}K z&yrRjlH0!8TRyVnIPW#apHe&88dF|H=bON_*OI6`QCFf?9X`Frv`%%*A}s#Q(56!$%%648{h%ef5xvoUnuhL`w&-qcgYNe37}r9*dR#4R zHQ$=^z$efjT~|$@9;oMwQJ+>D>(IQei9R!p!i+ETKBN#`X+5~k^Ya!%&$kQh03F@~ z*FNIL(d@LU#3$g>glaOjx?_zHD{^gG3-(j}x1hOeGR=+l85?U=jD-rcrpH#>3#o~o zBWw&YZ||sZ5d7=;9RXL&la(rBFZzJeJV5Rn&{rL`dJwd|ABgTR;L1{!N+-b`RpFdb zq8o#cfb=_Z8>M2(+5R}6^ddKbX6DhfewBhcx2Jq0?K)U)S3=Mo)duYf(fT$Dd4c*H zu8FcVfM&(kGy{9ms&t;(u3sHo!Nph>v*Pvgmkg~&Hn;{_Y3d<@)JY7(!N5N2CI@}0-E|I&qyD#{Zj4loCly>F7-5FmA@>-;z zy;?-YKK74V2Yec64Z&TnqfZ%YQ#fz$j^{oFTEKY;OM7rPDqX+@s|wtEY80gQtbFsE zV;w8z)zsZJuZjh7<`ob5n#=fNd6`QT>z*?gtVxlwIj`Pr27`azYcfCO$~1D!fBJ8@ zv{7#LhUts4yjYDjbF6h}I&3#mwx_nwl$t{-S}M0Nx$EYrVa(C2;aNz(Wb}97iZtJ) zwn$6;5qvQH7nu`oy7af)=7iky&3lgavE!OoZhaejUCuJ*H?M!|Z@HIfP@CWLRg?KC z*CV4``7KLRclU12^LB3a=1AYs-}2TU?4`&{EYg^nxqtBbmXzx+qK^S|D z-N`k)J>*kUNKbgO)Ld_E6H0_4+=DpsWZM=%zv2~tr<2hD#QI`DXD0-SXmst0l z_2yc-7t5uoyK9Lm7RWs>k-oV;W9s9xyZ>cP)-_u2MN8M(rM+@19p>_1rXLFFZ;M;v z(!)h>wD;Qx2xITzVy<=#Zx3mnt8-7;9@3m^mK&DO*#QW zir!K(dOnzPxrPy~U{CFNAsw}c zt!xe%ZRBfDC)t$aNH{MUJr!J(=5N%@%26{pYu=H*u<`zzT$UQ8Fkda^Kd<$9C{gZt zwN3c&h3fEs$?@a=EJvKpM6dW?>hs^`w9i2QZEYoy?+ zCx*OXN-g)0j#kTSczd0@h8HscmL)e$%=5rQ(5hrKJP@BFWd25IrFe)zHe3BWmT=%TcSv;at>Jw~WegZtjzn`=XwrXIAY#4pOU= z?&zP6lHzO-0CDqEw+(usCeI)HL6GLQxG#)Sytsy#R|uqL?@K-5+}=1#=&6%6%f7myDhbu6d?yoA3_!2(9u`lg|5Z@49G}+x{EoYtB*VkoO$z zcXM3x%5C0$RvB02tBm={(XqQ|zk`4^oZr%!`($oUZmfeeMZI;)*!=?OH+4Vc(o(tA z9_Aui>c7wHEabHCU$+w~iS-{phyt*`usb}*Z;kBjZOz9qd!|O_FB@yyO z(7^D9QUFt&$B^(Q@D6~G1r?nb-dsAs^t8~d@D`GHWg!dfz9PJp)PiZH$CmIm(tM`l zVV{SGNC%kqcpMM!C{?S1@kD)wN+Cp|KD$X>i9~&Nlfs1z>htUH?$TkV5U(fUy`=zu zOhwdZUuiy5hNn+NjAX4UWM@1YM8rw4Os711L?lR`5n&BxMkGqVGDUifjuFJoX4?=UwKP*IPb6w- zrc^`76U~);(-QhDkjmmqtXMwVh(3#@F-#w(&F`~JTE~=X zTiNG*Nv@3{MeZvlKO&L)DycG&$bFR*AY^ig*RDRRrKL=Nd0gnTUa|&oekp(S*(}v( zDqyqp-7YO+ifmZ4?=I;uQ(2F4eRoTh>Ns-WE43mLx$l!Y5Q*IPNnt_;J)}Y3{n7y@ z9Ak&28t|<)>>(juVSSHEvzanH)BB#3RQzxr$WD1q>w8X$V_M_6q3=cM6C&&(NBdrq zZZJi9eAV|GDYQPun=AEf{%hZB(g>z>kNbVEOP86dr$~`EC2Io_vVg5XTHs{N&Ikq6~rE3rCfcM=-7QC=*pdKFf3{s9qF& zQ>m#48R^j?s+v5A31+FN+VX5Bn5ClX%J-S7rwoj0D3`?#c0oH7uw_Iwmd7xi2pSs| zD6eCR^OzddQuYoMA@_$aiwc%oFirK?5EUX%XL>iSa8!Hw6Q*vqGEp66?;sIxBFMVP zEtndBEL5IDBx=5gyoE^Ae3-n8NYs3od_c&cKKDlTlxsA{G_S)*y%H56zfFX*&7-JD zc_$N$j_4TKw}r^vH?2tY0J#lQbz8~kc=;V7k^3O|Ln4uTqWme5$URX$EM$;-wdf={ zprr(V*I}##N2kh5nXuinWNRxSi}i|+epMbsgqn?seodauRKWID^ho(W)1jaR(PQPZ ztufwQDbizA^mus^Q_tqRqTiCYF{OL#i=HBTw-F(I(~d{akXtZSw_S*yCC?!eC7LU5 zArd8;C+{K>C7LH65HhI2>(TS&Qf=*Nsxb@Xc1+c6wwQ%7O5n>$8m`6g1CC6%7Qbf@ zmVKo`xE90bxH%-Q#TyO6wRp2ZxE60S2v?_%48qmvQ-d&veFov`bkHDNosJlUtJ5)q za4tV-5YFXi4Z@lBflUg(0ehMPe+YZNjFXAMt-aMmbn5RMgZgK(_CZxeEw*puPM z1(~oX!w&;8p)M5-!k+AJqU+Js4VvOvKBlHYAzqDQ0t|xw5>wBh49|?1mko;bnikX4 zpf#TBV*(92<#{Bgxj`XbH)C2El<29)1{;*&St%BN%gCfP{HP66tXG@ZFoVi_#>T=& z>sc1!H8M8JpjMu1V-pOD^*S7zWTG3fsV1`a%e0fng0`*ujWTFu+p)e5suR_|-)KV? z??f@tT}?9IqJF-PkkyOYBnO>s;O9HWNad#nHpxNt(|YzBYsezfqD(Z$JE7m}hHSHU zs)-&)zS{2%LpH1b2oqV8UN_O{J`+tezR%kxIubd5z#ACLcA?Z+%XgsBriN6WvU_;vg;7>zauY zJ^$)A-d;;uh*zopZyA)~*{J_igK(_OGH8uw@BZ@)I^{XC{{n+>CVJN(oQd8u$j@te z{}q-wH1CSpd$nZ?k(j;LSauPK*?W!UfRMp8Q2Cg(mWsjHvC%$j6tmtkjtR%#Cd;o( zIR3U-!a_ty9Dh44>xj?>+tYuSfFqU^rZ|tH1CCpcGWn)e8gSb3h^e}*&VVzPwjD5@ zDEm1}eXt8z?@e0@`4|r@D#B?ZV;efv^vza12Ru7Psr%We;J|3Ve{#`}9IFG{v3MkW= zdN%)hfS2+KQ@Y2s0Y#MJp%_xsl8@4mNYv6xN)VB#rI(a;LI&%5n^<3E6BEvZrIfPW zM1H<$cLtPGIx$tZJswa|S;usvv3s1qa*?Tlhj&~JC8)b2_c}^nB9VJtWdM=Ly{?iX zWY7*HW9upKAxikWF5^twOc_LkJ*!e&3uO^g0b9$sc8Y(P(5ykz0dd`wFs8O1>2YDo zW+GAcaOF6W$UQKmQAEjMSk*06j8*$Of5T@$3nQ{G;Q$!-oc;z;c zNHalsNF>rsP^4a>46$A}Vh1XNi12D~Ra~+%o2k0(!?;xCE|EwxQ}OIg@o1MLOYtER zX=W*9g$(qx_8X#{B*HY0#Enr3!FQ%<{MjDFO;$D&U3bSdXP)vA6RtV)lzmLN=FC^V zBpPe&7*#2LzH)|TxB|VSe9f}4AbUsofn~TJEl_@CSz2_B_yx)Xmf`BOQ2C1qSEq%F z9wADEtJ5OIlL=R+MaoM|xH>IX$}r*Tv>1L3Ma09^>0Kp&30J3gmBvH|-EnnVqO>F$ zYxRn%7r#X5z%pE`mMYy@_Fn(S@k^DyEW?#+nKFQ7Ws+LNFH=%jhU?gS$`F=)*C#ms zJ!K@za8-L>8PBpgeLBUzuS{hbu5rtixh(rWvU~h;WeLl0#ap4QV%frs@c0$VCYIs) zw^G^3vheum_?60Dmf>o+O8J6isY!A1tCZ6$!?kg>a*1UZqLSiQE7w?tE9DyH7nZq4 zq{pvO?z0Tn&9%x?mi-g;O8iw|TD&>dIN4-^lgu~uvR$oLNwAC}>ox=!(9SyJzD z@#~Z-EW;Icy;7TH<(p29U#~P`8Lqb*lol)tNtzkIL21u2Tzxkx-B>m%d4Bvxr4P$+ zE#9Q`XPLF{yYZWpWR~H|yjjU&S>^B*@tc(qEW>qri!zR7j}zC$Z&9WYjf0)U(zdP2 zVuLE#wkzuls%iUB`NW{D@jI2P27Ma8OVRpbElq$_j>hj+UN-1L{2nFApzq`NDN7Cd zE&g-mkwJgQA6CL5F_p2>$F1OdJ<6;Yr0?9-!F7Qa5{bFssIrqt%rD23&xpiaa7;NW zWH1+8>vvqK7>lXkT;P>(QVC_MZu3nzr7R{AX`WGb5s5U7@NH!)51*pgsVtqCGzVE1DQMb-LDD?P3y_^308L@kw2HxP+hDye=* zBx%aa zu(!fD2GsRVwB4YLfsNH8f~+ed#|~_&o?+S$IT`3OQ+Tn2e$CV$nBt110^JfsIRvVY z44OMIP|Zw2%_dm4Hum%FqQ1s-u(3_*qQ1ctUM$ADt2&t}uGk*~yQ;I9E)0A+FjQT{ zbaSBFpip%M(-(t^4(g_^XSy`V59mXtMFXo1>aKpuw0U3yphHZB2DKd2Lp{OdH>eZP zMW)9I;e*1|t4u`)4gmU@srA6LK|R&GO#KJG2K0pK&4dYqda0IVQQAcbGk^**O&+v( zP;a#;)3QOUfl4t24cay+T&>6yF=!7^O{Py1jtq)W8!(+oI1ki<=%DmzkSz647o}2u zRP%k*I zi5wEtYUz#|Oi=3@lrb>CWUiwV;ls_tXLG>583nEvh(n)r%(hN)23UO<_Mo@n963t9)!A<$RG0s9&3TF5{cFvrv_v>G#jTjGH7$+IQ3OQ)-o^q`A$A26-mUQTqs@ z{<%o)&xHMRk($i3tf8OpVl|6tZ9|*1SRKKHrF~Z&$AqPQSDnIyrCp-VVZzcbQQu|4 z(k@k3GGS?#svDWGw9C{TOjz1w>Ss(?+V|AMM546ssi%lU`@OF!Lmj1kUoB`*J@5C` za)PW_q7`aYCM?kkwJy`X!hXIh)h0~G3frWWYHK2q!zy*CkkQy&rH(YHR?;eU3&$(z z?dQ8*-NjVT+a|47_cM7l^7GxG9$_le$R=%2&ob49+&8M1nc70`8`U3~>IcVoZ&GhD zwF~}Z;3oAU6P9SR`Zp7nXtV0}3e|-5i#C3~TU0Nmi*0Pu7S)$XlxV9uSjebETh*Zk zHA>p5P9~b+TfTQl(sp&8kXd~~Isz?WDjU)bXf;!%=!!RehLFX3PdE z!?dB#!lXTF6{ekiRssbu%@5j=^qJa-X=Tt(pq5PQ>h4L}tF~wQxbEjbVMLnvzUhU`3qJFxawl?Xc`Wca!3r?w#!yQ_mQsWFNn|w-r zM-a^g7u01;I2T+{*D_&=E~;CYutXQtkD0JUU#a_a9PjK1^7mAJsBUZzTHpURSFy%}%sQ*VOT0HmFo*oAZnn!{?zyFY#54-#o?GfZruiX$zPHscnLY@yNw?Lr zL_)JWYReIh-g8H7Z&0t~J8FU;Yn#lB^&;^cXc$=#om*FCNa$b z*?o07({hmASKlELxj#^k2pQGO1NDqS?<7A^f98108ZJxzL%qwiw&5zECrn#f`uRRm zEh9x6ebN$sSwbyHByxDHmK8F};j!v((1zs4>KKkU!sh2|(Iyd%wZ37qNfvDe%Vsw9 z^HsEWShldKO;WV?ScaOZ+FF*OW~#Q8W#R4od^PQ3rucR?Nz)E6eGz;)S=Wv-oe#ba zbdKp#M?YUT?F!S)jyB0nyUyene>d5x-Dav8FQr(uKbRggv8A|c|1epamIShn67@2p zP?eMdnvLn*LUn;k5s6wVs2vqDs-=S3S%ZR73Tk&b9@d1X_LvE4!c()17CE41URnVr z)XYmO%7mKPw31AynN6!mByumTts_Dkvv*2i?Q?_rrxekyGEECiOew0B9fSE{$RR1- zS~G)2rxeqsGwp3QA;m{4JJud@M#@WCV}ll@_-ZLki+jDFQd~PrBxaiu+GT?_q?FL^ z39^0z)Q$MJWEgz;-)@m9d;R|$HBZE8!SJ5VL$g6M_Sx1}7 z^Z>3R>uB?snilc%t*b3z3N2!j>T0W*zJ>X$p0jQnwv@NQ|;D*{Yrrl8;fqrHB5JvdR+I^;jFv4Hf{t`s>(n!o^I627yj)ifw|a1*UHk+7_qXGW>|x=vVg`Ai9XR>+also8JcUm3>rST zxpqO2bz855eyy}`nJ)H91-ilXXi!4G*4l4OWfD_?9y7Vc1SYo8%fjuCv7WJE7(!$q3lK8Wvzyk)pnBfjv@RSE zbLgSIkhd%dV$Z0cypv zUxRC|t;tpdKt+1h(5KtuM>AfbBL)i(}c%M$3{%Ybh*KK$p?lP?i;j`E!gm zl4WIK{v4xCVA<}b%aX@xQ(1Pr=_;Ukb{UlYb!`dDjzQU9*H*KvDdhKtwuxn(8?6HR zh-J%QM{u0Bmt~t^M{u0>CCkPoElVD+oo3mzq*Xv)vur=eCTQ1Kb_!$@v|m|vv)kju ziQ0XZ{nbrLnyCH7vXvm4q-k%8Hu@A~lQd7F30Ay|_@?H=GQ5lUrdEb!yFvDrR)u9> zg6u6VfJltZ$=W_5v>;liPS(CQs7vbGn(tef-z-TA>6to3n@uF_f~ndfgSsS7)%FUq z4u-3Vnc5djW8rFIrgoZX3(R%1v`b6}VXm8{U1PG;_4A#r{ler?*Cx%@?lXM^*YxgJM(XYE1;u70N=b713BL&bte>jx4(XSD1^m9xVF-t}qvA zkt~aBmC$do7RR#0R;fUPSr*XbapJq$P?oiVov3%UQ7r2ZvL)ICmSur#i8f8hXhvD8 z%`<3t>Qe0h$HVnug?5w)^<1HyW5RWMrFMl0*Xfnob*7)8@2=8rGd+R6yGr|mX?iC= z-__bbOshNDq}7`BZK^YCo%VjdYcv~Ev-UP=jaG_C^oh0FG9e?a*J^7Fs^`5{+r#nj zN@JaNhzYMW)@di1Zh&mPc9H2%kgeCgBN91m(Eb!M%3*`1OtH7->!};G5`wHVTU}1x ztd(b4*6KP?b*B4+8+&ij>M<2c)ub(2Ga`}0RxL`%D2J_Dyg@Tkw`#9*JgoT-wYQkC z=0DVCG2x7|LtDs%Gs+HaIa3N;MefwrF^zz$$er3wB9Z$?n#WXoiQqR#v|< zADDPd`-v&7e=yK*Oc%lf6OU_;n68Hh1Ig1wA8ed{F7<@w&eS>mYankTv5Rw3dtJy# z>yz4B27RA;QrpAv@DAL0?GO|0;+)q`GGU1>Xcw8VL>IL0n6N|_wV#==L>IMtOjx3? zv?okhqOUY%y3iU+bV)17geAJ9c{5>&zSc@HVTr!h{E0-LxU5YVGAhw!ZN5Q&r(V`> zay(q$Z)o?JaDBg_{mB$w%+L2{O_?Edi7RH4e%1;x;hynL&6`N<8Q;`Ov#d~a*hkSS zv8;S^*hkT7vFu#kvT46+4VkXitqjzhDWze}v|CyT)9{A%fI^uvJ2y$Yt%WmX)Wuu4VsfC>&-dj zrH)I|6g`CLX2%skp+-pf306Japm&m0J(WY^evhud!i4)hx;~l-*9SL!A``9;Zu)d0 zQ4>~ug^-bER(-ue>(Z?HC60$St%v?S6WX*M`Y%kh|DylSMEfuLQzq2ROIK%eoq=Xv zx(8GHl+V&^dNHQ%DF=c4m^OqTODn8bX4)No5h#F2XkA3#BxIy@5q+mY-w!IHALn>@ zFWFl^&xH4qz4dRI@LqB;{U;{8mt0K$O%SE&qdzj}hcqAEZH_3zUlDiGUedjoeER$V zJzGZ1oaQOCzK#mDD>KR3W{jevm`rOjJWZ&V(~j z4gCUB(agr)HT7?q%4TX(P5lNFjjjurruRt? z(2FpAnjQ;Ol4)kEKIwJz3QWsd#RAn}`WANK>gx5G9>OkMT|JN~1Xja(dRwMgSPkpx zU6|Gv9GG5T@5QvM;9#H_rYk`S{Tk>4nQjNA0;MzUi5rsMP#?y0ByKd&SSFl>U)J9w z60`8j`b;7*D>l-<6d|d_8tG>Znw;K9?=(-;3(ksd^)M!!72E1jOxP;HdOQ=hO0b^F zgsl>yzruvA5~7c0!d7XgPh`SYX{S$T!d7Xo&u79`X|FG1!dB^^uVKPg>7Z|6!dB_1 z?_$DM>8S5#!dB^|A7R2)>7<`!!dB_5UuMEq>8$_Agssv=zr}>D(nWvBgssw5|C)`!ZpxbkoZciB{>RS0xf-y1U+2grrvKt`9Ki)Aa6omLTiF zR;SX#^lYY+tu6zNGeXKzPyKC!ZomgQHgia{F(dSkn9#r?5X<5X*^ho_zrcDu#fF1~SZURn^vi_t3?{j&GdoYbl^79>__hp)vWRnKyaZGQ) zRcoA{!ZaVQTI2Mgf+)XueWXEEGvf7G9P&cD%gF=vg-k!TyAHIR=~~yz$%FKDOn19p z2ih)((oEEM8`Lx-QGd!Iu^lpWb%Ce}Y=;cpg9&%DGxcIjxSO4+`!NO8_4CcrD>HS6 zE7L5!HdEECu#6%4%l432;Xo~zo^%Y$7^=5p^6V52)QxFvov4gg^a!S%b@~DIXBr-p zknyUX#55@;184}5=&i%_8VjimRN7&BeS=134AW-|vhIL;k+18Em`=dG$k+81On7DU zhQ6K&uWa7XKV+Jg>E}C6|CDJ(rcD~BA7a8ab-aFp30M2^`bDPpDIaD`(62IePx%b! zXQm;|j$};K?=nqmb`IzXQ`f#%GbZVlMWR&(_q_vDkjX#dpNu#4qD(C#3S_>imtw+^ z^Ojzb2}jObdQGO`F+Q1-^#)9nV#)!vAQCnBw!Tits0QEGw;5D3^KJbU$HV?IP5+7s z`^z-_d#0*c@cfH@lPM?*o`2DQXTtsK8Ty}0xPLuER~KXXMD8>72qLj}F;nknP~*&* z`UF8%EZW1~MYC^U1CUgllVnmCG=>Q$I< z6fe~Sn9xdJrZ-|jD}9;Xk_p$U_w@EmxK_QVcV|K?{e8U;6I$u->jQ{H?Jn1c5#fGT zZ02%(hC#`hEA#_Q%bR9quGDKRAw8+=tMvK?jm%u7j}t`qxi;!=GvUmzQJ=$91n%2! z(ib!N!+rZr`bwq??fRr|);BQy*e(`m2h;gNvog2ndzgMG^bXKrrW0v>(zog-nZ8Mj z1^SBVNynv`+w||4JUgufy2(^EYklT+{T@?L)>fcDnQ*rGP*;|UR>9fkL%k4@sIwh< zkdRSL?9hV^+LgIO&lY5j>vkz~xBdoGX1A+AZ!-;U0J|0XY^LE2V7EeF%=AOZ^3*;0 z3Z~ye)&Xr`D%Ng!>Sy|gOy%0G1KPv%cJT7lz4{@hxxwpzPBI-E{8Q#W{UXza!FPbZ zBN8RruU``~D$#!Z7lVFC+pj<2cxX`{&@Ia(_?uuwi~4|GP!PrYTrX z*de_R6OOS%dJ`roUCKJFw_+-kt^;)xL}`AZ_b_Ni>KA%Chy0~G?6K&>m>zY9Jr;c| z)24cUzQ^=8nReH+Nyqe=Oi8fMcU)h}r}b+@*WJH|K7U64g=nnxcj)tH^!rQ=V`llB)t@r8 zh^doxR@dIc+PyB9?bXTqoL-6OJ6Z14NIIw2Bog!BIlX}hNjaR;1BpZq=k#DE%;CJ= zg$Z*wulE-5D2EIBt3)D)3;Jjxk;4Ujq7zLsXh!M5# z|D0vm?qBQ2S%!1+W&J$Ma8ACge=B6v4p;P_44RR8MOWV!y$6Fl7|Srf z@AT3v!~DL}E3*vq`(CfbGR*IL{beGY`I=>2(?bmk$@)Pb!PFzUOV*G2Ng`1%*Y%4A zMPyyqZwsC>`))wPwB3f0mr-NT>-S-14Mf~-BEw0HF;O#Pv>clFjx82ew6jQ9?6uIcn~O_X+__UvhM4HnKt)52sDgHl;MH?qmYqi5A<6Goy~fn zmssU!zbATmBGG$1-fcKlNrT!}fcsw_zE!-&4Ia%a*_sFMsJhnbyG* zFMsLLOn7bhx1PX+*M@)VX+%QnfAlwnjI{nopJC9otbg=_9ItfR@>I?3I8)`cbwC%G z@Hrjb?OP^%PDgjU!GzE0xVintgwN@?xjkk=%hBp4uNL)!mZR0J0Mk^s;&XQ^!n6#o z_}tw}GHq%3cUA$n3QV80bRSZ{tp<@OQ9-xggp5j5(Cv{y#fB7gb6X?w`?P1NA%)z$ zm=5Tb3Pq5zVvweDBah?t`fKCK&8*5*{TCheiO(p zXXT&eCwBwwO1e0CwHRm{4pjQg3AX8gyQ%a9`!OqhH{Tpex4)+waPzI=zM#|J!pN{+ z(dlntWLVz|u{k@@CLM4o=0w}ybB_L|#UPtbr@v`2$Yvd=^qEYXbHLqNnrRHaFOqG#9!y7T0x+(T^> z-5B{P_fY#To&E%TnB7UIKLHHIR5Gi?W*z7Nl_`|0$3c#ch|@ve?W z$qlzX=-!dsaNCb=+)a0vo@Gy<`@v0f#C_j$I7801ryp=!$uDSJ8`X_XBR;tryvoJ?HF^pA;6@Gw8mMpA;6@ z5p;d!PJ5}%qsx#x?WOiox=Hd5^D=uC-Cgny^D;XD&f9vST>+i$t$WY3@*lAAdFYC8wco3m@|+yk!H^lR)>o^yN? zMxb>4GCtvT?^-p<$Al`%i(;v-flkN=G}U|{gmzQ z7;{4Z8|`1{W{pWPH`@Jl=gE2f0~@~_bLNbe^ZEz22i;xrs(q8~OLwolYTsl}fYZG_ zc6!jBeZZYKJ!FG)lkUix{zF^mwZq6J+WG@7XZl3j<~jV%!jEh_ojx=C$o`q`Ecq>{ zTkO|#7s+oy-D3SKym9_U-ai!E?sQw^{X?-$rPJRd`>{=f^L~%)$M$46Z_cLJSzaYZ zHpSj|z+EtXihbU5&PaL3ew%%T?qYezew%%R?gsg}=m}Ym;T|81gce9_+T|H7hceDQv=Z)-6>%4;f!^rNmDF@sY)93M;%39qAt$cR+J+|b4du4jqx^x%iu9{w9 zudIvh?Y;K818(i~d+n{Bb8esT!Sp$H2HorlyT#o@H$C}J)9dPxp`5i|O>~{t#FC(*Ub>-$oB8r^@$>-$oBHr!V>3L5dsem0 zqSJd;wH-#M_pImbxpaEZdfw*K={@TOdl{YHvtF=8aNgEyY_*re)@$sF1MauC)Y!M! zPM;@UvRml%dEzDe0i8ZiylkU%`aJQnZTB4dTyFOsaA&42w|2ER*ZR)w6?+Vw?$Il@ zKb>x`)~3_x_G)bwoHyz^D}N?Z{_|er>g>b=Zr-hRHq3VVzW;Um0G)om`?{S+r|N?$`E%U9sG+?H}kg_ZwUD zNi6ppTTiDs*Sep_a<1J2PIK$*vVF1KI$KAlx%GDO*RkAsTSKS0x9q~d$8vAk=jb%|whix(<=(cB z(rK>A&QJ77(mM`Kb{U=KHrUU4#&R3%emc!7}OghbNwf%?2a$D`mbeem|?(dR&$0iSp zZSP$he`c)RyEc_h+r4M^cgekHlXGJ2TI^SJdhWJZXLu~P&7Lzd*5@{R37z)2-7X#- z%WbzcbeenLMlOuy-nYx?H1~mBd{Hd-fvus_+zy+2MJ%_&7Sd^Mr`;oeKce&4?zA0r zn)}dxc3mv@q1{iXxmNqd_*kyhn(IBMxm`AXQY^R2rqXHdBfD%$EccPEqto2Swy-po z``AvP(_GXR-W|(D?F2f_wb|wO$8v4frPJJR?be55x!>9-o#uAi4<3o-cH2MDX>O0L ze>9fcW1HzT_lb4q#d4q6t#q3EoqhYUSnhZB13Jz9-mZN-mixVJq0`(SZ2kOL?hm$^ zPIK*c>*83h-A3s&_eZ*zH1CtI^Qmiv>fr_Tj{!H`e*ebDH}PyV%4XxZeN6 z*3fD0A9gwZtf)7Ze^{4JbHpIZ_4}j&}pu_lYU{WU3cdUI?W|J z`@7_lon-tOQ|~=TZ;Hx!CJP+x2wz(`l}!lYB`mcZ_2SV%s~$NukqrDb812 zaw(2;X{=o@r+I9wT`#AVPTTc%qT^$^-p&_vn(O17^TSxKk8=r~=2D$Aro?ioPJm8x zeVx?OSgx;=NvFAfPF-0n*Uwo?r@3RDn(|ogSf`#&bN!v?X2o*-ot1Q&8{pL7PqBK( zXn<2sr@7;tI{blEFL#`?mQHiWJN4mMpT|4Rbec*9m}2Ud_kwVEa!}Mv0RoDpwrwb&MoU>xl^3G=rnh# zQ@A;nJJp#$r@3rr^p;pI+bN>c+z{uw9kJXH=N3B6o#rfWi{(ypTsqC2?#%yVEO)xI zj81cBIDgn1%bnqTMW?x;PRG7jZm1LgwdXW9%o!c$KXAVu<`mIs?o6l9AIqKTOrXvD`UM zA)V$%IHOZyxe-ngo#xJUo;x;{JJ(rBr@8Z-n*Ooec}_i@=5n3q2E=l?&PqDXjdaR0 zV!4sdTsqB-a_%}YmK)_5<1H zp{)+>C$>lbdS$%q>5)gGGtfDc+P`jH_u8A=*cM}>ip@qW+qu8vMjUx7I#-=rIsC}} zQd;@VZMPmepWbo*rL;ZLkv)1`d%NX39@(z@qT`8|@f^A@o$=Vd9NH>2OF9M}VdvTS zuUE#)z8rZZx{sZ+s{MbLW7l~U^qe0%O^r?!okwy|w_*I;M-;92UtLN$Bv@!ETK zZ2U(X;e|IJ`7G78M>`gRd!6wk&7R+AHrBI_S@-Bjcbo54887>Oc+WaQ zos+J|@!%un?eEd9_kW)4dXyi&P+vp;a@alp;R_F)bFWXW_e*_j%$<=#XG7ziGp4;A z>0Wg7t?Q`t80oeSy=ITz>c3;merz}X2>Ynx(fGl~B~HH6?Z0bI4n6aA&JRBB-Zl8Y z|JlqN=l|~~jqmnq>y7!lzA|=gb+o(U(O;F0_9~`l)OUTgdi$J1&wp=hdPmZ;`q1mB zGkfGQ{7>Jpzx`Ew^veJGUEiO!{$xqInG=r_wCq|N!R|nuIqJu zwBvR3v*n*1NAJ8n+EG4wpIt}mjY{{z>n(Vcd#}N({2iC*8MRwpofG7nlv7glJHAs= ztbE6JN{WN`aY=k%;~l{wsfo>uZp(X>nKA6h@h8tca@>3R?Yi}oZqTjk7_7;XcdU+l zn{!G^5=PR^X#d?Yo@9>4d!KtGJ^UEOX5+ih?LR+WUH4A6>%A{H`2DY*jo$utzSoXb zew%j?hrf<@ef2-mxqbNg|F50x-Yb{3eY@+k6V9B2-tGRUS??9O^I1ZB>%5yC+K*qZ zzJs@`k%OO14t_oDoQ=be`(g8dPeqP?9mPhaN2>G5?O%I!IQ(_rd-~Ge4$Onx?K_{T zVp%_~+*pl{O2>SpCsn=1kMtzm8ISG7q5c1Bt&Tpb&ZD4v*EwTdua2&9-J`?rONWl| z=-WE9GG2P?I;-A{>CEU>I*()55qfvC|E_zWHy-U%K9j?d(mPuM?yH^mG`+7nayN^O z^V`+yJ+SLF;3)QL|L#4cr2OZvN;)S;dbRrh z6TetKD~>b6@rm(QlXVQu<22%}zanSy!Rwm!GrRByv8=bQz4_Uj7wKB>^``O89=b-f zGM+tmp0|hI$@Tc^-9XP|?^@`r)OhFJM*IKY@%rwKR%c1a=H1W#yYIK&IsZS|zs~m9 zX|b92uG6mfB7OSxAE@#6*NYr}y??i7p8ttYO%H#L>b!5nj#uZW96DP0hGUt5C;Do( z>y^9eGTqZ1@`~e^tnTUPetNgpPZbi)OY-Dw(bh5F{7CQKpWc#^(#@=w_3q{jSx+`Y zWW9%}5bbGRmiKhWnAatqVoF7OnLprjt*%@AudLtSNB2U%V=J~7x_8C6>b;(K;%7$Q z`m&+AcWdQpJ-Gg#&&DM;=xn@wgroIZ48dbu)jxvTOg}cKy6N zbZife({n8Sa-I3N@bj#r&5w7a#^Gsmt{lgB8R0)0+h4ELBc)Gq`gI zb)22+dh}1ZSkH>{4?4=Rw%*o1m1|$-SzbNkP2DKnqYZdY=_){Oh1J`3r!lVo0y=cR6@TwZZv=i8Cjwa+;8AYZ*GJ;bAj&g<^m^f2}U z-FN+YXq-8=L`QhcVOO`eFWwC3cT*iaDlc9oGw(N#$We$lzrOg;ny#}k9cSzxuhsh3 zMGx-H8;>44xzl#J2EDk>UL3BS&QDOgKGk^dlyl{MieoN54>Os3c>muv@{&B4#-Sg- z$?bAyICxawwzsaW^m#bW{QRav+djo}NsoxPr#cUQ>~FlO!gI1W51qXoxw2cTo|%(- z>)G`^QERrHrE@alTAh=AKhU#ld&;3(@9gvNxNfCu);r?AoN(mI{nzN;T~w?i&pK=$ zy?#2+C9QdO%HjQJWE|eVc=bOVu6;HS?^>y&I#RrAO>Et3s~TtSmb;M8Od6wo7T=^} z_;|;tws`>cGDJgwT%2g>T{mk~UDJjRAaq>#k-@M-^ zHqNf|{J&{kXKa(4SMnPaII@F=>5T0->OD&9y{p*!Y+;7nXW~tfyz5CYbH2svh!|(xktEz=^kB= zb9?+t$adtl8>!^}2s%{uncZ@0-qw4YBJgOtjZR{xP zymh{M26-%Ed(^qVTHkg3=kkgWhdZ|4eDA6w*Z<`bt@(#M+sE4Kx_1vTc)A{Ur_R!e zxNGTInuv42nw#a$=^WwJzjF+S_UY~8?{RhLtBl{gafjY{^zJIJ^771#wb8*3#ysKX4(~oOk?~t+V z(dQ&qqq7}nM#(FYT)FbzC*J&7?h*;+^V{?~()pLCYuTbB_lj7nZ_~3^6P8!%ICGyo zf%r`i8E3p1BAQ?#@-8FMT!G*3`pAt^9NtPJf0XgZeXINbZRcsFD^GfUGfUn<#G4C_a4yBR zvg$J3NALR8k;mh{mmv4OSWV}g92&Vp&H;VzpmTWoZQ9oRS)N`siKgzKzFv3j^G{bF z+H=?J!OxRNuGIUax7V@bs7K_sGrf9U*UzpstLsDMbC0+~o|!e?`JT(G*BX5y^_wT< z)h!;+q6v7~OvDqZ#S^K6J6IB)IlIYI?vY2>b&rm;9^0Z`Wu4>v{b(J-;n#S_<+{J# zYiPDyHSq`Tt4H2?4;-l>qJA^C%RS*pBZ>8J&p6%6>M^m%(dti^vn9@aE}z33JpcNf z6KBSprE@q}&dgZ$pRIfM_G^agXg|J6_wH!#T)gqb%e^|zOqixy`Pp?^Kaua?j=UAU zM|D2W=yOZFyte9nM(<$XZiGjg2R(vMOwf_MEO*6&`*~cRNaN(Lt|L6!JKSQqzr~s8 zP_5Cc_~0JAEna_3Y~*@$j#P8_*z`#|&Rl?d!b*8(bfnJ=4aehxk&hi_N+{b=W^ z*Y@yFhrH)NeKzx(SNa^@r$!p_j`a_C7xRDme>3oZGtfB$aq`3!XRegj_e5EWMD_pc z4xmIic&2&43>OYJbLEBVQCYUh(r(U?*g0mtIaheDS!i;Fxn{8$ zB^+fU@_$cRddo7xS0(FJvR)@d^KPFX&brB#+)vV0`V$Ff9aX_Mu* zvh0>+k1U_a@;h06FUucfX_w`XvV1DbXR>@Q%fHL=Ct1FbWv?uMmgO(9bjb3hEPs{d zZ?b$P%RX7YmgVoV?3d*mS^h(of5>8d(~VD-I9dF%#LJQ(OQI}R7DtvOS-Q#6U6y27 zddSjKmSbc|k)@X`y=CbmOR6k=W$7o&v9k1+Wq>Tl$#T3bX|fEI?qVo6bu%02> zP0q!%YvnJGLGz#m(6P|*&=9m3It^MW>NAT(2g;eE|Bk8M=)eCQ@6-4@zLTa7lfTZO z>-(Tdak`!*I?#;3dY-8Kjim$YJ~J&YUH+=6R?7FMq5n#(XPfP#er&SM#9QwaExD+| zXo5lKZP4UsfN(h$j%`5fiTMh`j2<{+DcY%a2+ zku5~F5ZOXxix4S7qzI7-h)h6a0wR;pLkW5)MYa^#Qe?}KorCOLWalC~7uorU%tvHC zB8w4OjL2d{mZ66l^iYRv9kO-E)+4(X*=A&$k!?n{1(6m+S`cYPq!p1?ME0PE&(K2$ zvK`2FAiE#g_&Cge9Ogd`^B;%#Mk*$K!_Lbe3i5@bt|Ek&dhky1p;5h+Kc9FaNbVJ>=@kL-M8=Oeoq z*=5MqAX|fM4YGBJ)FD!bNImM;qP`i~W@MX@Z9$|3krqT+5otxF6_GvY;WPBmfoun| z9mwuSHr|i<_hbJ3n14U!ACXiWByT}jchiu*~sP~l7mPNBDts^jru}l3z02E zwg{0TM2ZlZfciw5nz^`~8X zeM&iW74E>Rd~5P=PFdx^9`Wfktjt9)~>u1uLDt>hk#$Q*xW z-|MC3CpRw?opSTClpToAMSQ+g%J=?3mqBZwbHs8IQXYddNXG2iY8CbCDg5 zY$39R$QB}7gh&x0MTks5{Up?vAX|cL39>%_O&6b$nk4&mW@<10g3%*Veg4R3FETQ< zG+zIXcX|ArsbhUJD=ie_gybSd^mLL1YgipC#NTubZDC-ho#8 zF_QR1o!j_Co!j_Coz-MSk`YNpBo&cVL{bq+LnIB6G(<8H$wVX*k!(b=5y?g*2ay~^ zauCT))cqQrs7Jh)f5zlzkInMm-nU=>EdPw&$MqlTugll(7t$-eFfp@lmc+*w4eh_e zw_5%_eJ}s>qt6#zH)XU$(yqO<|4gIxD}3|vuafv#!>;XLgtoo>%~K}Iy51#<67@Xk z<-h$VZTrn7#pvPA{sp-IjKGy%;OjB$Clc9kVMYIPzs^s&U+1U5w{Y?U{r8#k`#s#h z!2jlDkBe$Q1^%C1aDM*@vMC^rp+16g!%Cl4ViT+}$8BpwBI5}~^O#fq}k_SxlpFOhAfCh77Klw{(zCJ0(4VdOT zw`A~uUh*oOJz#*ZcfXrbv(4Z84wH3#KFsph-+Ix23V**Imk%gSJhx=>fbzu4i)Id( zlc<$*67{~6TR*S$8!VbqJBQ=7o&bL>c{$bPuV(Pyqw|D0U^;p z49N1gU;V{^0^AKUpvy4BmHy?on&T?{DWmLh88S;fk1O!sJR$YC41Yz*z~h!B-jpie z8=Cmd?boMN$zJCkm*xL)$%V&do9C{)O!UbTxt8%{o`XGl2hY{-7;Tk_+^$dEI));&DnhGPwAzDKpP|)E zpU(4VXjSRgJK;>9wwmdC5>Mv(o}vS-_M=t2)j2Q0w&JbMd_A^Rf^C&xTP4_5DQc3f zp5e(>_czt*ER~|N6qTi@EJtM;D$`JziOOg!Nnf~}NdE9KZqGuoD8E0eI5X0&QXt7f!nLCqZWKL`EKMgJ|RY(ZrUDqB&x2u~OD zd=JTArCj9u=Js)e7y0xrz%TOY-+Eu<(|Mkc-sYpX#ptaSy|tpZR`j+EqpiVc>oD35 z^k0Y3&c$du(5eHiI?$>ft=6JdGg>9%{Aot3#b}j`^Cwx(AGzP+?=+^OrUj#F!Khj> zs#H{_qB0egX{g+T$~~z343%l9OhaWFDmyTe{TNBSqvvD}+QvJ2PPSqsIcSxGRyk;u z?CANE>gf5ChE|1Wm4;TIp;aMT6{1xkS{0!t)6p|I)6p5ucJxdxLS+#ui%>ZMl{u)) zL1iu~C!lfyDkq?FG)7X0krZJhrD$7(kz_l1CYPdBDO#0!{iD?+v?@WXxoA~_R=H?3 z7p>-^)m*fikD5}9suZIt$EfC`ay}~OqjE7S=b&;9D(9kdF)A0MaRauUuuv`UWC`)6_-&i^>Qf2N`)HA&B()FeHB(vtN2NkwHUDpOIJnWX1u zHu}#&|Ji7pgZ|T!^sLB6t8BE&Mynju3sG5w%3M_D zqB0ki6EKoV7)c36QiQf87|CdiqzJ8w(5eWnO3|tut>&Or30loTt0J^2L8}t9D)CyO zW-dlG7o(bwQI(>y6qTi@EJx*HR4zv4GE|nMvK*D=sI0+A>M)XejATCA)?*~|F_QUc zH6N|!qt#lpYDTLTw5ma?7PMN1RyAl2q2yf6K*tN4B6oxf@ z$~07_p)wPdt*C58Wh*MPyWv%}8(vkr=~>-@wz=K(tWNEwXI%$cb)Z!TT8&1lLbNJE zt7N}k3q@#^iB`#eTnm0&3w~S+sF{FKO~9xoVN|K8OhsiXDofCRDf%x*|Ji6;j{Ya1 z|7^6%MyqVJ%0bN>^gjpv&qe<^sLVlS4l3uP|HbHk8Tv0o+hyo~F8VJ-t3tFYM5|If zGZ&$<23x7YR_d^oBGeb5z6ka8*veXLr5Rf(LEC0*r4CyuL8}t9DnY9b)U=@g7WChW z{yR|Ffyxe4?m_>bq5lr=D8%bg=s^Fi-cg9hQHaM;h{sVt&3^R1AN|L7#~lfksi;gv zWg04zyW@Q8j`IzbX{by?WtvynUC*M-?s^twcgHI-+Gcmxvnam1o<%umm4j9}XqAIj zxo9;StqRdfR2QYfsTb<4IK{+K_^4y=Ooh4Oz0BmD(E)o zK4^kZYX*oq@{v}>I)qJ&4Lbrj)0DY7C^^9Z-j=RlcB}XY0&A=Sk?)R!y-whF*yGg${;hL5DzxLPtPHLi3;(LJOc{pjSi3LyMtPp);Yg zL>&``&XMgp<^iiS^ANK05MKygj8QGYdIU99sCf~(0`YpNi^>M9uSMlL)NF#j1KkGQ z0d0eR0{s%YPt=jWf2?X89aX%eqe^fz;y8LvA`*2|qKvR*0cGTYEa&?V5Pq1DhAp(~)PplhJ(piR(i&>hfE zpzYAlp?jfULia&^NjU4Ey`X)egP~c_5zvv)0_Yg%c<7DLsnBWAS!6#U??AUfcR+VR+n}F7+o7LB_d>sf_UNYj+Y6cj9Sj`` z9S*$^S^&KoIv#o>Gz6UtoeG@>oerG|odvCc-UodMIuE)Cx&-p(8u}`<0lE&l4Y~um3)%+#1lkV$9J&|!C3GM3 z8)#Bb-J>4RUeLbK0nmZa4Cr8J7IZjt1au@c4|*ZA06GRb7J4;wJaoh{y2X*u0%!<2 z89EI*9eN+M61o7o2)YDX1$`R&B6J1xRp<`rm(T$zy2atpk=G5@;3lY3M3w6Lb@_4f+YR9qQ|)qe_4#L3==ZLHj}nKnFrIpo5`V z&>_&F(BaUj(3#Lh&?V4S&^6Eo=sIW;$$eFyqEbT715AKgk{=m6+IXa;mJGz&TeS^ymb9Sgl0IvzS5Iukkzx(&Jm z`U$ih`Z;tj^h@YI=r>SbDvk?uICLts0(u{`Qq(aIVSNE~3A76OG_)G}B6J1xRp=_{ z8fXKw4f+k#*B4ud4ups5E1?fT=Rp@h7eSXm*FYPf??AUfKZovxehE$J zucJzW_Ja0>7C^^9$3sKV$qlU z&;sZf=+)5i&>Nv4=yd2TXa)2>=mO{>=ql(MXalqj`U$ih`Z;tj^h@YI=r>T`aTq7G z06GRb7J4>0CX@k3pxZk5}F6S5gLL{hE9jh zgwBHQfbN2}K|g^eq~TaYdq8_Zi=oq?GoiDfmC$+61<*y%CD1D9)6i<@i_jI&SE0M0 zZP0e;=g@?KI+9}OROmG5BIpX}tI$=@ZO|RiUC^Wxw1*zh4Cn~xSm;dXENBJvKIjVQ ztD+h5od9>5ewUpl>`wME&;3OG@n!`$$ZQ2qH9NpFO-h;O&oifj`Q{w(G7|*HnJ>W` z$ce^RuJu!d0ikX$j|`F_a-vYj5f+x2q2(2fN8oG9tLT>swa!I6ZB_&0QTRt@wbAbu zYMuN;3h6KIZl6%MpAJ9g?hN`tLahrRo_J3l<3Ywl^b_gB!ZLI3JxXm?!F+_iihe1* zD=agAyGN<@4a`UB+vs=G%P+P|eJHHddY=&Erq7_)ub#oUg=J=QI6$Are2_jwKaoBx zEHmd-C^3HKBlK1DuCUC!R-weW8IRJp(aS$zk-DMxDluN6j#s}jK^Y+P$RHUa!@@H2 z?7bEA5%}-VuA+D07td~>kHV+UX``2a03hw>&hZH`Pw=VtWzYwNI<7qWAo7dvQ))cK zc$mI|J|ZkL{q9$4T@~XleFJ?|SZ40KU#WF%jLSa_h4%?DE}@(U_op+S!FYf^k3OG1 zC@eF@KUHF!%!lbK=x5VMgk`4vr%H^M`3AC)@hE*8DgQ(PKDWhU#vJjR3Yzj`o4KT)W4VX}hph_K9@_%o&Es~BHO?~)CSM}=kPv7afmzK!wS z^gj7;3CEqxAO{Iw&~eh|k@<`Vg=MDa+z{ho_@Bjb^IBO4-&p%USAUsmYMe+R%$+v`F#2y8De~*aHF~4 z*I{9qx#$t4wwo=~?L_FSgpFp(s-=uq3u{fEH(g>5OL}zIs&_;uUWOgk@&Vqe^X;hy0dR z1<1erW{~laQ0Hr+Q1_!4`48U=3(L&@N0r*XLa24Kg<4lBtTo*ms~E3_Kc~^9Zy=ix zpV}CuZzJ0gf3{INm+h3!^9i;8Bw?-D)|ig?*Yh$M&q6$LZ2<9~JeJ3JzEH(;u+PoCeve4|j? zHzB`mZ4~*v^V^u;E!6hy$p2}r{6j5xpAh>gtTjpN(uHNFe1THyGngMF)c&)Cdj15M z&tpEHz5w~`H-o}5^Y;Zx?I$GE?Gz)Qxh~9jC4Baq5n-8`{)7_yiTI`KT>3`g3(~#` z@jKT=g=OaVPbjs%9q}jEnI4|^3$;E;SZmg;OBa@zYkscO`V66tCky%Ct_v`p$9Mta zzV$(2nR)x?N^KWnz8Lwz>%)v!FkXpx-uj5J%v`)ssqLzmuSWjKbuQx#j5i@Zd3{t^ zW||i&wOt$Y?Z{uc&exO2OIT~}T$fItL1rQT@cICK9$A2RpErZTGIQmk5aSbtdR&W< z&s!fxe)FOV=4T6a9F@pFxh_Iq#e6m5lh?b#GBf5$rPenv--P_7>!OUeG2V{&o$Jgo z+HT#GN^R#8;(Qd=nuphC&<_%BG#~yt3-LAU1B~a91&D87AEXbF#fa}+9~PFGQNO5Q ze75if-7n+^ycI#d?iW?eFJ-if%!(}n~=Zhttj#@FK%OgH}mbtuURku z5YpQ}A@)yLYi7TdE-W)AEm7+JXD~lVxY3;Qn=E0idFrhI^Lfk{AYT7gP*`T3SfbSS zA?7CvH=6aoDHhh69dCu1uVB6s@iprs!ZOqAmr8A4#e6mLe|yViyn*p1#8cmn3gv$O zOQp7JW4;~v)86*UzXR9(^b0qdK5mk*))c;-&UgknNce)(Wg$Q1?EvF>WIpo+$Upve zP*`TZ{AGywiNcNMTDKVa>^H+g9Zv=Gm59srD3s@`Un#Ml%vU4tzTH6I1mEY)Hu`q> zDR2AauQy?Tgd5EwH%VA)9)CN7@htf4H}mKV;Pcjp=!@aqw=3u?;rG5>MPCiytEqv$ zQHc9F;=`KS7~d__@wX$sX1!1TH9O8HVXe8LDT6)>e$Dzk`U3d!rVxEG{4-4z^p)^$ zHC549!~e0V3GB9^P1tCDyQ&>NdxKB@K4YW#+bX~CLm5w!u-2?uKZrgH{)!EG!bX#{ zx&Xd-LkNE0>SFlth6?zc)s^sT)>pxgSzQgkXhQ@1)YXkb%m?BP8`=<`y?VD0^MQE# zh9vpx9JMBO;~*hkui!^*%ol210sPGyi$U4Gu+hl&;UC^u1uxr&e{o|2{M6M=@EbO^ z!OvdZ4&T1fCx2lI=Y>$Wmn5t;PICt1gM_->EW}T0&SSg){)!F7;8o3);JwXN%vZy| z(%eAbDBNgXcbgFZyt$3>cK89Ce8+Me!j0x{Zj!Lp1U6+bJ_zv(8?q3ev?-7Ae8eAY zC_wy*4I##h;n%FMps$2~WK$LWQlai|HR8{2YGAxksQcT5_*DiObRa~0!Dh1y>=;*V@@V7v+b zxy^0#?accJ==?P|BnfNHbDIYVwck9U9_M_a_7|d`$b1F;Z00M4wPx++D#okff48}T zz6sv9rH#HFK5dKdIBz>i!dg?jA%lL9P{)ylc+B#RNhcWVXxY_byZr?ytnFD0uHU%Rz|zL9J~eB9+J@pl>9b z5N~;>jea-Tj`*M6@eSno$t0oPcQfb*ky(h_ck}5B;4|M12^&ph^+d*t5zl+K0`b>Y z&t|+5@rmzNA>OolDdW|MuUX%K_(!W78E-;-&bw`h?_0f_@pi^)yDX4vK{#gwwmwh_Lo)pgm`@*lZ3VAj`z}qdfjF) zK8Vah{;~H0!ZMTklv3;Rn9nB*gtcbndqL(yj87zsk>CDaSXgGlPbsyZ3g%~%mBL!H z|GfzFRg5nstC7E|*%iv?T~8^sp9ba|$tGc~xwkpWd>iAt$#&!iwwQG7=f&SN&A=8{SZ2;#*1&ip*(B8QM}=kPm1S*=?p$NLF6BOCdBwevKaYawS>BiV%f3EQH=GBfL0rS{Xt{BE*csK?2i z=;eJv%m!TcaHOIT|bZwWA;$9O(jfc)rfL7{x!|D00$2{AvB zEEd+9;I=UH6^zd&E0LeGEg~#4+n-ZnewbfMRtsy*^P61e8yIgSn~-1mUQ}3S@~f4Y zALe(H?ZR4f>U+LHoEI`lSZk`brPF7SgUBr8<$W@J9+^)TATRe(p?nTl9b$YUS&V$~ zhA{FcKVQN4Y_byh@P>#G`_K4NvKsj{>s?`)dHQ*!)-^ESNHz&;O~bY*^KFdpCfkwU zxy@v1KmA@%YCk?9&J!|8SZhkwX3!5Jvk-rHZGb+H%qI(k?@50_`VcvhEEdY=e`~|S zGV{<26^zd&E0KS4T?F}myimpXQnDKPecN0i_Mh=avI%+lyj56c?x|5~T^sYe$#!9_ z$y{d!bN_|de=HA?L#gZV*Zmax_oZO^06Ckqh2dwY;RL{21&kzc+& zOkY9HCM%KOvppg#Gm~GeVtgrCjePR^t`PIUcq7?_ynL=FEHfXzsKh)lzng3q>gPhf zleqt6l2Gp>>GT=oATkU2C)Wk&^T>R%0Qr5}g2FO$*-IhDCz8d;%jXM19ajb8v&l;2 zGuK6gWyXC;sdZJ%FD0vmdYl^Q8_6cbi?&DU+sNHyJMwpLH{bX6+eiAzBw?*tzCB%7 zW=?-OgYiLR7V>+x2ZTDVJjV0M0_2n54+_i7FJ4w^U5NRKWU){`cMQ{4kh953TkFy{kd0&$^74E|-$w2x+mSEcU{2;dkbW{rSZl%?(&;nEL1Y&4YqtjI z^T>R%0C~AD(uc^2WHIvX8^iP!g^i||ivKskw-goI6$VRdW`D@;f(zlVj z$#&#R-#1y@f6`AT3HALzI(-H?h|EHM!^Qx89+^)TAph9=LHZCmkt|03`AuQ^3UW4C ziTrEtN9e1_rDQeoE8lbJ8^}ho3HkPoQTjG=H`$K-&iBnJ+<($fCJAfJ1zXeUGsrc)1nBd~e6j%fHS2@)A#x&FjC{kkFnt9%o2*1W{euX76}gnGM*gx7T>1vGk!(VK z<_A&wHgY%Fj=Y@zr*i*EKba(~HSHVI=`+YdWES%BTtJ^k=92};KfftRA0j7`#mGOh zDNJ8M&L%67FWwNLuOh1v4{vbk8^|Wa<$9-YBij*QyVYcKKglGad>;NmI(-J2h4?k^ z2k7(20>l?@3DSqiV#G&p3)5GSm52woMd+)@YQ#5ebm<$&CNKU$l)jB@NBo-i%@B^C zOcK_bFFr`8&mgl9@3|vDpGOuT{@VLN`Vd)+xLk+y6=WsiE8mOISCQ3-582_;H;_$; zU$!Gk-$u40{-Yh{G>)H463WjlcBIp1!T)MUfId&CKSwS=eASL1;~~U*zELdH=dB9( z@4Zne)caKx{26al!@swqL8#9+P4Iu((MI16pS;s|x|dH9>d!Ya=(FJEb7%Sj_^h2F z`eNay=AxYy^p)^MJFDoc;cwd6#CW? z#DDc+l-``F`6pjhYCfIJ5bAyekU#Ddis5I!RRRCb83I?kdE0zfp~Npw(r(0r9`S(S&$-LzMA0vK{d& zHkh-#etcw-u-5#bHG@72{zp6V=nLRy?+DU|$YR9HTEp}eWF_K1Z;jAbk=2N=YIW%w z$R@;hv_|RM$aci#&)=TS@sdfxT66NQbovZ33-SD20s1_$0PzXCg7hJ>7;(AJ(N~a_ zh|ky+p|2vV5r1NrOW!~?AwF(%l)jB@NBp&2<{XZnOcK_bt-I3cGsrB&zuFa`FMuEL zQII|)Y&1@NG2-(2%6J9h$JJLNF0ZeQSCQ3-pZcCl-#|7Y{@VLd`Zls1@v}cNBRFm{ zNmy&H|0tb4gUmww&W{50d1L|Nk8BFj7sEfiv4Xx5KC-ilz8ZePM=pH>*@XDZA4Tcg z$acgZd(WK9ags?w{rowdK7-6c{O7HC^ab#5eH5ZEhTr>91$`xa#>Wx*DzX~!%RYAL z8^|Wa*Q{@&Z-<|;%XgkPz9eC-d16;OeFm9@`0Td=^m$|f;%m2t=!@ay=brSH@U!2l zqOXQ8-r&+VkWGlo>l=ML{B0kbT+W+N?`P@s8SrP+=Ybd1hZwIQBcw|<2pi3W`Y3%H z{PcP=lKl%C&4T(2`aCj7hR85kK}N_b(j}v0o3PQmSZ_vgJHkfu>-u#14ET5J1N3=h zkPMMwvVyE4U7_B$8|b6-ZS>}R-uH!iU(O)&$RHUa!(;^+A*)E2jFN3aeO@&I?w?S9 zpD~?21Ag_Y0DT_(mQ^8ePkj|QYn97<1N_sgqV#R>t5=yk_AhKSTUMphXTU$UDnOqH zzo$M(A0oqK1sNf$NSACNqhuRtF5vdbbTWg?BST~b86m4kmyD8a!bbDhDwEItg^lK~ z_388(@JVX|^m*_ntO?SG;LlwXrmuj%W=({?3VzBOm%ai1zBN($HuztzF{8PCGM&sI z17sc&O5ZB*SEcbjc`b#;`pZAYC#_n#);72FM`kl2OuJ!Fn=6x@44;uTQ}JE1e9GK{8C5 zv8*ElWRMJ#5i* z*L!jOo+RxrOh!nTjFRRCZjTI*K{8B6NSBO~^7R_nPLK?f=0^5Q2FM^8CL?6}54`#S z86?AGgmlUDn^;c<$uJoqT`~~lILRn!LL4Ux7JuE*T}w6mEwM zkP*@)qogTeJsBW_WSESQE}1^nYZoAcWSESQE*T}wt=t|NAYC#_n%h`MMo5>8lJa#p z-n@_z(j}v$na2Le2)d|;;6E=W!iYP&FfgmlR$8T<*iN9u=em`^f52FWlP zAx$~!$uJoqT{21rXK{OEgmlR$Y3^pfWPl8kVba{gIx;{8NtcXv=EGinkaWo?X)4$s z86bmXn2eAv870lVY)=NrAQ>hjq)SFgGn?(n02w61WQ0tghjq)SFgb04=u z2FM^8CL^RvMoDu&+mit@NQTJ>>5@^>{FLp<0O^v^&iDgfU62fu5z-~2q^V@TWSESQ z=0WDk02w61WP~(7V?7xlgQQDFN%<-<@A@GFWRMJ#5z-~2qjF2uFCFSeVy!|8tq)SFgGmmv-fDDpR(mcjGGC&5&Fc~3T zGW~I{U4V>`E*T}|>)gEYk^wSEhDle5=M2&;;B$r$&lzNdbjc`bp5S)K02w61WQ26d zC~1Dq_GEx`$tWpbOXuwm86bmXn2eAv871Y*!@TxngmgROPkQ+P86?AGlr+C!KV*Om zl3_AR%Gc<5+a&{JkPMR%(j@~+ymmn{Oh!86zx489GD5m!lr+C$KV+DUkS-Y|O@!kW z>Uj|$gQUxRl$0+5^!ASo3bkFBjF9Fj){y}+NQTJ>>5@@0xYTPOCL^RvMoF`b+aUvF zkPMUNY1WYeGDwEW21X$N(86!(@bX$tW3I;k6Hw5z-~2qEgJhUAud+WfKnBS$86jPvZYN5b*En7w?)PMbbjc`bUg!46 z0O^uZ(yU}186bmXn2eC=tGxOE86?AGgmlR$X;!nH5c5uk$q4C^Q8Ms`*Dgqg$p~rc zIes!g2FWlPA=B4z9AuCTlM&J-1Hb0>$uJoqT{23h|Hj+D02w4*p&qv=X&&2_GfwPdGO5q{I=4g^4o~7bPxF z+?8l-Z<}QUc7naj&bJNrcQ)Sno^zU$=M*_5&Kzg4^Bd>4j!8N`X+%;{(!V7=oD@lF zOlnKopL9&O6T0PgySCfC-DDJaQzWedrhjqWPdr9{PyFcB1W%rHUzwF*WIY0Ra z$rZ^9lV475Nd7drXOF=>@_YQC$Fv@EdOY6awH}*#eA*+i=YXEMJ#XqctLMU=ul0PV z=l-529aC^j=`p`Nrs0@9$Hb*%_PV&&V0wVANHQ!`+?p+ z@7>UQPw&6?KDN)9eJ<-WvCsW|mi75fpZ%$W`kvYMs=hzz`)c2feRuW!Q{R1kPwqFY z-`IY4^{el>>0;iaBR`BHy?Y~v9phT>e!lNuR8AI<0_92rG1+AgMrlp z$DFYDguB0Ya=OWQEF_X|$W$g0h{^pv<$pE-3% zwi!}4WaMe7r>{JH!WnDMIAQ1~LraFGocZXPd(V6(=ljE79$s`-!r5=1J?5Ov=R7;& zv2%|*Z^e1}x!p(JJ#y%%?W4{fK%g?lgDc+rg) zcU=6yC6^TZr6A7uOuW%=TlX9JE9s`2Nih1I>OGA$DH4&tn`ts7nq^Khr<(7ZA?9Rr zy11d{6mzCThMR12wnWb{1@h}UmzrGp;p!+;X!7KTpBKmvD)Y?^X0*A{Txfn^E;2XC zkBmd+5;IY%Zjq`Isk%d|W|}KanHg&;%vENN87Cju6q$$R$9VJ2HS*^7T6tr7ompbW zn~1sIJS9E8AU(WfCYj~tX0yWl$h;!G$#2ZcIsRkwhM8i1Ej>5L$LDM1qw#g}vG-f@ zk#>`8soCf^tIv>cQ~x*l_Vl~t+tO#sH>LkXz9qd(z8$?>z7c(vd;|L3@@?n$$hVq@ zKQgYxa;Ka+3em@D5V z{*Ziw_`~uI;*ZEThd(Oc%P~*B9sDu*4(`Y08^7n9pl^W*`4*bVz9-F8-!IIaz9pvA z_e(Rw_bd69y@>gL@e6sqI8XjY{8HYG zf1l$P{OcUQ6_?0c#V&ap{&kMq#joY>#MSZ+ajm>l+$irBH_JbW-^%;MZSs%e4*8(C zTRtT2lYbTu%E!dR@-O01`MCItd{X>X;$N(mPm5>d-^6qB@1jErQQ!3Q&Hs7&>&o*H zYspcUfbL{^>d~}sKELSKpzll}dQ|K>&|7-`7PRQ7--GU{zYlcqu@8g3cEn?#7aZ{< z=<93uf?m3*19WZZWzhJsZ-8bU{Vr(knh!yJM}G?1J@gf5bd|P6h+#9kfgXNr9%%c< zBGB$f_5mHWdLZc6VcM7f=S%m$y+prRI|}7Jy_jnIPt&RXPcNPf&if71K%Z}{0KKJQ zG3X(UYe0K9)Prtlh=K0fa2)6rjXOb)YCIG4?;9=z-O8=`%o<90ZRl5^PnF*YddUPz z|E{BnI`b_%@=k;*9e%&$0pP#XKLYypQj(k)CtAGt32<&*NPS~x?cafCA4+^B)6P2o zen|(%eFe0~jQ2rRF7I=>x|UQjPZUs^hxQ~ocpA}a=F}|UI^lHo%_shlssl)W>e1hT zo=}su6*b18FK@~PKIq6I&|l9P2zvL#A)pr>F$%PD{S;7D($iW0V=E~&rDwW~N>j<4 zwVY}xJ3{hbu!bu1{4jA8K83YyXU(s#B7QhN4>|5zwE*-grteR$1wOo-LZ9Vy_RLl( z5I?+-`3u$n533ZNbgQtqmUs5-fX^|_3- z{TbKTjhm=`-j2QpnqBoV=x@26Gdc7cuKA)_B=ZEvS~iXFiX$lfT^k8MeJoMAoO#I4zXBI)xq_YGCjH@UYol~WBY;J&?usR~uK_YLQJ4Y%4!)v7*; zep^QLigIex9?`EsRV<}*EBBLyD@o?g338hd2WAoO%_%tBF0r0!zHklEWzAWTRQiE*kQm9Mf(e`r1mp;wd>{bD9*RnIlE zuzL`kkLFN|{G~n&?6f)muGF3?PasruFN8Sor zx#o|cN}p5LJprt8DNj%=HFBNWs?Zfj?1SWooU+m|y_J=oW4PzPwUFxk&F(LQz8oW5 zSo0=mdE$LgrTOM%`+-lKLjBgikmyjRzg$4LI{F2uYGtLvpl0njA--BpdhVZ0^aLI+ zhnIH)|Bwa5`HXX4w5|voCsrj==_nhR&UvwU0Aignbuj1#?k#t0r17#PJQAE4Yl)`E zy5VrjSB<7oG1A;=hgDl#VT|ahNa3v&WuR`GRt1jgw|8u$K3qR(5jgE!mH``V%c~+BKxNt9Uc3hUJ+s$=sySuwGHNM5 z&m%*bp1{3gQ*8(`*Dcxz+J7x+_{@<+r!J=S7xIko6Rt5;!-ui;ev(^CS@@M~6Sl0T z`uvRT^BSJH$`hNArs@yMCKT3e0q3N(ZJ?)iKNWN*TdnX~ng`X)rCKK#rT(*T0#VZj z(umkpdmdt`u`q#0*0o#@r*^*>{B#YSb)rHQN42$T-z#C~HLRw5SXKG(e@z^O^^_F- zKsBtJGJ#7$HLRDifTx3MSS#fKmxF3p@8kln0@bi)$p?;uYFMKb0OPMF0{>JL0sjnC z!`5Cg@PnWlw&{9sVI8&zI(!VO30*D$_Je9zZ!H5p z2voy*s}^`Ls3u0s6~JRaH8DZ10-gw}i9_WY;Ax;5{;k9#foFqiSeG3IJQq|G^W-|< zGEfa`wE%DhsD^(@5r4~GRDx<)yM=(OKsBu48i1=oHF1~>10N2mi5iK&c`p`$YGSc$ z0$u{DiKQ|IybM$m%jG8ET2M{Y$pr8UP_(ja0bT{FiPdro@ETA}909{1#gU*I){FRd zQyc}ViKFF-!0SLYtRa64901kCdaO^S2!d*&9&1#ImF0He4Opj2(EzH6Myyq(2!m?k zSgcp2*a)hL2-d6;tI$(`qgb~}5d+mkGuEzBYy#Cp9P3w!Rq9#5ZCJxftV+)YJ_+ks zDNY8}uns*B_+n5^Tp=$2{uQW(HRy%F*MVx{daQG$xB*lXH({+Su`<0B_!g{pC03}H z0pE&suf$6Aa^TzL6~Mm()v#{868KI~P245-0RJ9T!&>%g;CnzdaWB@#Qv3l_!}|7m z;QK)}{9Bbb0{;i}MEyWX{=>J$pORS3T z0DeZ^1^g^1dN|hAQoI0)9xm?%ehC!)8S88*UI*308}b3*H$gS=4%XdLybG#{_vFLC z?}KXMAMz344?s2XA=czld<3eAkFhS7Vn3)RzLZY@e+8m_X5>KZ|x1>KA;$n+FQT}foh_k_6~4=P)!Wb-UA*8s)>WOe*l+&YGRP~A@Cuf zni!^i3_KiE6C<=wfJcIA_;*7;10Dwo3#ok$TndVDt$hhR5mXbCw6B3DgKA=m_AT&K zP>gp?N{n|Z)iQz0K{ZjSWdSb$)kKw+1H2Ga6V+NS@L`~u zI9$sIt^w5q{vA``#h@6=S`lz9D8{l@47>sqV_EAByb2U!S?deD1{7mi>j!)!s3z8F z1AvbK)kHu$7DGi^5TDWIA-RhtWZ8mK1D(#n8;4yuW>wF=;KKs9l`RtbCos3v}? zRRLcJ3R|I7178fPiA%J@fiDHs#4c?S@MWNy_z!If@a3Qy{w3FCz*m53;#XQN@Rgt% z{%zM4z zG~jGd*aY7h!1yk%ps)kJ3xEfL!VdT@ z1TF!E9q?TYdjp@ZAVJ6%@9@cN6e5P)$tt-2yxVR1-6O zw*t=sg$?oD4m<}GHpF)a@H|l15Z_(E<)E6V@ZAkO9~Ab)cQ5b)P}mdSeZUJrVNZMy z03QYld*XW#xCT@cwZ4ae>p(TJ!uJU9N>EL#^8FcjHK-=m`2GTX1gIvC@;w23G$?F{ z?@8ceKw(3CPXn(9g$?oj9k?D8HpKS~@CH!W4c~LX$AW5Nqpt%v0;-87-wVJ|P))>q zF9A1$!rSz{0vrd04e`AOyag0C#Px0)-9ny#w3|s)-%G_keeTYT_rp ze*m8Z3LE145csE{nmEn(G4Sc2nmEJv3GkVqupz$BfPW4O8{+#M_#9A8oag%z_us^;5!1sV^;(p)3zz=}J{`dv~KL`qs-8UHc5l~G$>Kh9D zXHfVjzTv=s0fjB{jRbxQ6yCURH1IQ^@Wy>(fu93~H|`q`+yM&z#5V!>B~WuM+rMP}m&33fKn<|3t3_&IE;jq8|>N1q%N}Uj&>33jai30-Os9 zTcj@o&Ig4p(rbYWKw*pY6~INHutoYR;9^kNB7F^TZ%|G2(T@b~3yM{keiU#&P)+pL z*8vXzg@F}3MOZx4=XM(~m>30DC929m*zYF*rP)(ex-wpf=P}n8?Uf^GX!WQZG0bc?N zTcke#ybDwlm+21z{|BfhF4rFh-VLgWtMx~KuK|S*qyHKBI#Bp9`d@%=0EG{uKLPw3 zP}m~q{UzWBKw*pYSAZV`#ZH3$8t}uQ*f-GM0DcS zcR=9_>0blC2MYV6e+#@H6#kDceei!kHSwA513mx>|3~)&e+3HvN6!TQ1{CWiJquX) zvw$=FIl!5qutok{;4Dzs8Gk--0VwQ@zW}%h6n4g61Y8UXJL4|~?hT4{kiR!@e^B^8 z{=UEiLE-=S`vI4L!p`^y03QMhJL5kXcnB!gLHpI(ZG{HVMF|5fv16LVupV_@Jvwbf%qo?&jy7(@lOJt3kqA| zp8{MBiaibgp}>cO!dCdF11|%Geell&UI7aG;GYe=1{C(eKNt8&P}m258Spw#*aUwC za1azW!Cwg+0)!oLW(2^4D_{}SLBDAqXsWx$(2 zvBvS&0w+M>pZHe*Zvn;5n12=U@t~SG!M_IhL{Lq%`i}%|1Jy*k|0v+?pzu}v>wtHH z!Y23wz$bxf;uL=n_*78%D*h1g>7cL){s!PPLE)45!@%c*V(j}j0{;>eW8B{a{2!ng z0ACA=aqZs%d^0G6A&U&4Pj@JpbYc-en0@GGG3EBxmHzXqy_ zxBM3XzYPk%!ha#~yP)tZ{1*ei4~o4$|E0hmgKA>G|1#iDKsE8H|8n5ZK;b|5uK@lQ zR1+fON?-{JUm{}n6EbcG?gxtTn{fwl2`I*I#$CXNfMWb++zmVg^iZs-hT~4k z<5|3DZ1%6RPfL{_(;Fm-*@XI0&{IW;_zalmRzaq8*zbcLcepQ?R z{F?X?@N1$K_;t|^{JPiy{D$}m@EhV};5Wt3fZxO}`e5;vI34&caVGHF;^)9`i*tbA z5x)R_N1PA*uJ|SJyW%3?_rxW@?}=T&@8j%v5a@2;e~4cJ|3h2_{DJs2@CV`=;19)h zz#obmfIkwy0sctb4E(Y9E%3+UHsJl@cfk9_oxq=n-vfUl?g9Q(`~mn=aX;{9;*Y?e ziHCp>h(7@z5RU?XE*=B^Ts#i^h4?G*7vd@4FU8-0zZ83czY@;^e6T^>ouWeISeJOnsT4gt=W!+`VU2;d%a6mSnY2Dm_u11^xIz=d)m zaG{(GTqLIg7s+YBJ>?AGo^lp&v77^3Eaw6DlI6g?8hC&_26&)c4?IxT10O6m03R$H zflK7Ez$G#QJV-`?2gzpOLu4HI5SauXEH?uWmRo^`$m4*A$P<8v${zs_m94JlF@^s*l@=V}S^5?*#FC5cn|J6Zml13;1x^2e?Ka1Y9Hg122*TffvaV z;KlL~;KgzX@De!;c!?YVyi|??UMj}`FO%bdm&sD#<#HnMayc2eR!#-3mD7Oh0^n70A@FK>81QOY1H48q23{kV0v{ol10NylfRB_b zfsd4{f!E3-fY-{kz{NOYn}d6iM~iD=nWxHyGAN&r9r8;#U%Og+OZ!mE^d0GI@a^>7 z@5|DA=~MN%et~|ce!u>#{<-e=5B4wcU+aIz|FJ(SWJSD80uKAHJ( z=9ifT-LCESc(;Fa`>b1T)`+aqtOZ%2tQ)f)&)S>ye%9#hN!iuek?gaxFU`Iy`=jit zoNYO6Ip^i<%Xu>=qx;zIvF?BE{(SeZx=+lVk-Ic^ckZ*fFXtY}9hJ8zFOrwc`&r%< zdDrIMm-l*JZhqhVL-UW$-g*O-ewJ=$9cF~1JHx|wB zxw2=l=fX5r>UjIWjo% z-H~67%pJ9F)c#RtjJ|mEhhw#IJ;!Yr7a#ZIahHw1etczVZRyU^vq~>1eZBOf(r-(z zo^bnw&nIS1nm(y=((*~SPkLa|UnjLszF_hTlm9VUOqo6P@Tun=dflNP9{Tm6+0%Y9 z?HALooOaCgEz_sWsF+bZGdMFj^VylN&-{4i6SH2JHF@^D*^6esHT$4BBj(&a=g)J# zos%=S&)j3?M&@ptJ8E9pyp!ggH}9%>fwHY-zb|{N?1i#(%P%i~y8NZ`_scJ=*i-Rb z#Tym-D=wRV{rnvZE?lsGfvC!@`bE{Rs&1{?SN(Q%|HDQcHsvtA6;q~A|D)g7VIx=J zz{=pzPu*doCep8ychq6KXAsXv#Q5J)hut)rV7AG??}o#)W%NqtT+ia6Gp>Dj=zQyW zJao48B2sw?&&zmT!SgDf*YLcK=MCI+eiP4Ic;3eI4xV@MyoYo8_woD#&j)xu#PboJ zk8vYB}AqO5p4m^V#cmz4{ z1aja3X7cWs!MkJT&c%$Ki`H<1Vb-?-R@Y)mRnZhjl9ca-IKSaTlJw{wGC2 zMi6U^C&eT@3o<&y*?4}P@rw9+##`cxjB3$6^DQwL&y37h#7aDIJf~-VEMCm~TJ-G} z6eGHQEoS0b-0fqr0nd-{{Gyvr-rg-s?(0@0i?asE#aV;pCOju+Rf}I{jg)s~O_HDD z$;u9jKH0P7vg`_ZLiQs0aCWtLF1uEKgQqyBR*uP8BUj}F#fF@qycExG@H~*yBn!JI z9Ft9o@IXqunkK&OHsD-f40po*(4~#c8=`!{a$yKA3wkJb{a4 zQQqa4Z}-SGc{jxbP@#EuI*j_QIeztFS?P9?vI*XN!WOv&Gn=i$x`# zql%ie)}k%i?L}F>D|_ALo89*=->G=+@7v*fw(rNjkq347#vXK+?@l}q;Cb>OpI*_= zr`O;)qTgM<4R~UBPVASje}+f&&)4(%cld_kcMhH^JS+P9^oQ^~f#-$(gY_8$2J1Bg zrszMz?|B2N^qvE&^icz+=<^2F>bKhU>zJA5zW_sD~5^?E$itr&n`UI;rSh&`|vz5rp(`g=XE^$@kGa# z`M2QNiRUalzr=IZ*r0#dxEBAZ#&Z^)ODA;rZo=;$@H~R&nF&6`dLr*3+OFM{74cuvD};q+KW;fz>DKRhF6 zbogfDw+7D&JV87$JX`VnWQI@w3=fV_^}LzeGj`&+aOSxgV%E7Cg?NU{nxapgby>!B zcy7h>z^o46Gx&WI&xd%vopnpb5wmZ}h|GQ<<1;*B&I1{Fb2@y7%y}~7B0N{%xe4zN z&Uqta=-kgUelpjenK{p&*#pnOc^$r~^ZI7qK5uB|oU);rRd`mEb@-afre}UoR+Skq zugW|g&ri!cd>5A=nfYaTL*~|shRilRXH=k0Dvr;T^H0kB5uTIqoI4-wi{HVOCuNSo zGXu{8JWKE#Rq4|o!}E7MuT`F#8CY;`=COFTF6i)`iQlX6+=%Dy1$#0Ns@jt|2G5+T zDf-f?J2D@_^L*90dT8OfdKAwIcs|1;s?XK)s`uyz;h9kVVCGGD?!@z_>JH!E@Vr|6 zTxR)Un8s#>w$7QdZry}ZF>8J(5=w?vg_Dg7lgZ{qp+q9k5K5FKwnc+;>Xk@MIFT&h zR@<^Z5sZhMli^tOpAcUjO2k^?!BAB^*3#US{GxC$9!tbFB*&E<*AfqnTNH>wgQie4 zIc`xb8cxRI<5q^^3FJDlbi%ZCrPJ4yPB7KB)dVYDO^;xgTCVWQXkdLLv^*3Hg*S)d zooj66ZM5uO%RT*t*3dN1Lidb|*xB<;p zUl&MhEZY(YCyfwp%q7i`qz(gZn`6-gB|zQGi%$tq`W3NABow4bcw^NlWKk&D7^^RD z2}kNfaRgY|@!Qf^WLr}#-rN`t)`sHYKqP!z=&(dA3iZ&I$yAy7p+sj=X7SMNNExKI zIUEdG`X<0McomT_`X~ue9pZP%{6I3WtR)oRh8K_C*mW0~h+F5$NfX7ab&1AUOQgOo z9tehLkb*^xGEp2J+O{$fX$dV2gyY9Re14c~DS-SSKadjBd#U-;Y9NioX za$8l`Q?^#TvIuH$c}v9ZvsTdJK$DAG5r_m^BIw@bfkY@0j=BTA2LKXNCdg99O5UZh zGuYXO4QXdEwTG*KkfAD^L{&U>GOD-{eQ%3hGyE=1MlHW1ETI&6CZ2@uAPFMMLS-D1TU0Nc@tV{5; zQ4yEP!-gv;*fAxSXYwYQADKGRS^-~W!FGB23o=> z+H|uF02Iyb{#DmoRfF)9PT(2CDX-FV_4o8(r?**M-)Xg2*>@$8UV!hGcB%JW;@=hS zEZ(A6J?7FmV%E}lcr&KT>Zaxhd%HaM&JQI6;YeZ*{#3zcn(NoC6V&x8;$b*3;ebdu zU*HqP!$CHIwea=Gc~w65BD7){$tnRWvP0gK_^ud~Q0J*wDPvur^s}9Lq-=Wh>=B3nE`|Cd=Hr>!jN4Ri*HOcV`XH>I^VZA!YEy`EVaA`VF4 zg<}!38kQ>-LCZoTK@TP` zooy+KO8ubPvC>qtTPz+AVcCc!zmZslixYIcQ8Lzg+>m#^$ILwkgpn*fv#8onuo8DL zg3eGboMW5Ih~T!W9!81e+|ekdGH!CV+eSiePQVq;sJ1wirTM18n?+ z4KeElt0Tqba$pAon>S^_V64RwtxaR5GFb5zXu-|lj*Y&Q#t(S#Xk-{h1S)dDc(26f zu^W@ZBRQVY;S{O86}Nn6VL^{{D!96g(YZ9REfNbTlj9knDmO*CtiE2Yx`YZ^CB1!{=u%1z_;GB)?)|Cf>8{y^{A!L5jxu&O=9%6ZK z=|R|{N=u$C8s*^?=$I$cV>;)B^ibPir-!B4|8x;g1D`IYEO0zdUOAkr4XXz3iHY;5y#oVL|bYgqb1-U-F^SFg^mNohiAy@53KsK(RfP1E2VYPVH-OlxIp){}PRJQ~oXugJ9d#z9j{Uqtxu(5? zIOkfp*h%m3nm{6{HpuGhFmZdd1-wAo2kIo4N*LMPS*Ur=lAf$;{?5ZmnImFR4~1%j z@SxKZtlQ?rH55?-C4sdTePf~&&O`q-9Q#7$4NED~9=A)UP<9!_T(ZiHu;*_fVzs*So7ad!#N zRH)N>2GHV>4y0?s(T(X^Q>b@Hb)qT~TOWuRb|^h+T`U=hq_c5ah~r0q-gvL3GRinvE0?YJ1d+B1AnI2vwhX-ZFZQDCcg01a)-&(ZWKc1=9q^(LJd1^TprwlV`>kfl`-5bH1C^wgqOveXrrJj z3A!+gGo__1iN>zPtUY?e1MWiB+R;?&VGp&qD|C@Ubu!V^MKIqBHCOdr$YB8BZUdc{ zb*f2iQ=+TTw7Ik*=9*1C%C->4g&u4!GR%D(C#2~kN9`U~H+L$qa#1zrp@zn!M`X*O zS4V@`o``zM7?T~{!}LmlR)fl7aAF=Jv;b}K;Pd`kCt+|xI*XQiI-Xu7PK`TDWqx3r zhe}-4$op70y6Nezz*tS^ss`}j)2?1RTb-tu_Jp_o(uJUP+#{}W2$C-EI5Hd0xeJ1aOFHi zRG+p433M)Oy7-+-VCD(nc2%bW8~9+2j{Gb?oe%o#x1_nN&j*9p$mekSh2<0F+u)-u z4aI9iIO47s+|BJ*N*4vfEM3LJl><`nu61@4h%R2`)!MPmxHBX<&Cog7IVDD?GP%GIuBqW0}|IhM&J;~D>=!k zC@IX8SNoe3wK8G%rfV5TXuWmSM70#%X>n-ENgD6yy;fMYxv(@|cX z3|4I@5Dzv|;ViB-&)A$!cK1b~vjB(BW2F+Y7cmwuV16-x>DkaTeQ;Yrs{WOJrntky zbq8R$Y~8jb8rfz=Pfyu28&(?Bw+S=mprLqRiVcz8Y|YNKxc!I)v*Vkr8l*KrKA4O1J~x7L)qp8cze`-rv@-n zLl?GA09^^X0?agBOqGm%L})~JFfbAEcY~^gY(p4^4Y%GZ8~0fyWp-(P#UJ=NMSY5$CkE)x)#gvqcobR7%2ymoJuM$;y$$Gcx;k!j>YGc9LvpNt*vmg z-p!*+qr&X7OhNT*g<`S{k#j5HY{Zj{Qf`tPS2SR4No+|pB&zv7DcR@HqCl__Uz_0u zchdEa)a*b~$vh8bb*vW(QFg#$CDK{g?R9_LCe|BYx#4ygGN)8Xb2?S!^sN_CnYkpw z8*m(MAUbYUk+I#TA`(~{h$jr+gv!L1+G#_MMa?eF4ARxbU`<>HFP5D9_>I}9aYS$> zKy5?c?s7OQ!uFkCd2h}RphBi>87kFNnWU8WSudBllb~kL(_xhZ-Bt_4!}!e8GC!;r z<)oU^*w|;T-J(venhBg7E-q>VzB$K3U6_!Pz(h%>DON_j%&{`C-!Mn3(`Ifj(gV$~tjpt?aiA=1IIj4-CVl4hi?C z7RD`%kaV;0X};6U z*)i1UUJ!?^rv;Q9ppp;87l!Mx$7J&@MQxUu>jG$sR-#g*2UbTn#Nz6Ta3GQ$ zm!kIi^OMNX`;6jxb3g{g15uaj`}6jsD_;Y8s4(KzWauAsn2t`7&u zbS=cUOQE=(_QF6yy=R!KOk}3_ldhzP`fo z9Isofi!Cr?*sbULF>0XGwH6lV3oZgDvUoQxuqdB_KBUJMn=n2gqeWSO{xpK9jAE5W zfb6>IfzUj?5E~wJNrD6DPakk0UEJlN4I#eFSQCpiyFw_T1w1$`wvn^Z{N`V?pbS<8 z;vg7`gh&o>=S@ZssB}$j6Sd0OQq+Fz8$y8q0ec6gNp+DAv=@}yzH(xM>t$6`& zlrG=D;?xvM(tRvZ#UBsG>ly>mC2>BU6gAlFaK5ur#w{(SjrkHb0g3Q+Ee=kMDS&3G#X2m<0cAT zD1W*rVq5^@w4Lv$5i5*jY1_x}M{ysF#Zy>~ZV6>wV0^<(_+X`ptu=lqEleJCMT`?M zG5o+tO9H0XWHcE<96{YFQxOc@WcueLNF$ApvYBANRw!{nFKI1efgkNahW8nOv zq%O8G6cs`K%0+!+qBx`p%(U~Wno2E&hYfI-497!8e1px(U%in63LO>;D^1mSS2x;J ziFsff3^mG)7fM-OUSmN6a(=GWlS9Tm@{IuZ;CCcrT9Y{6fHN{t=E`81R>F8y%3J5@ zXm!jE>=s%pMQSk1!BabQG>N;})IupsHMc+~t1Pz=)HfDMZoYF-;|{S$pPSDMP3xYU zJ1j+4wd#w--9m6K)U_P%U}FsvCkMI(pI$kuh)x&X9CM2@7_!d4+yeFuqiya0T5w=e z$7Y=4S_5n|e?{uzv7vEss9%u-K(i@#1?z=eHRjgg#&kXZSp*yu!abn{5lK^2M{{y) z=R0>oDev6sggofQnyKre} zmd?jKl6pDQbni?ji&P;uQB@1RSWCj`q(3r7ZuU5LXv*5!9mqB6yyvOv)WxCe9$1vP zcvxiGAKt2VVfRQyR}h|AT}+K!+DtRrkB5NqP9BKsow}3}M!UNPETi3L_<)WOqpLYM z+|i78E|qoDROw{D25e|(N9h|;14>iVsSRx~{#qB-@~QW%OsfVf+PRQvBRqs1nXB>Y zNQg>c*$FOy{l@dV+meWS^X@FSg=Hl;ru}A)G+HI_7gJQpc5uo$pgWN2$La0zio}ka z8e9_!Y_LO9Qg)0zTgGq;Y(~(ub%y!3Z!>Wrt&@K)r2Q5*F9eHUE`;Dxt;!`gse!?ZC-Y5(OOuaMBX?gNJWGM}vYTcQnu;Bh; zOVd(=)Ke-XW6h>vT^ve|BS%zt{H+ZxtTGS0`ePNH?`6j=HZHZR@YJ#3lntqc==G>g`&Gt2LC2Jh~C_(duH}hb&JNX-f_>*zTb?ervKRBpb zQ+<2HsTf0%`N~R}9DB`Za$x1%B2Db8nZZdTS*qMc>M)o7Lc&I9Mq7&XO;ogj_Y%M% zA+_W%Iq_I5X=17vT3bMn)G#2X4C2u40!#<~z7U3=(QjR+%d6snW=zS>E^X*zh9G+C zUwedn75;_@{ozNzN?LUZwWue52oZ3~O}y$vY}(Y)3Dn7GsbB}VHwwv8*kQ^%(QSG+ z-*s~mnbJ0i>DY;sYm zi;Kc>O_Bb(B|bDo7pK_{$6rQ6r81Xei;8YJ7{zwS;4w{=!i~%((=g=BOtYsV#C*qJ zwlv4IJ)I`TnZc+^{9z^bgXwQ~A{WZfnh#B{T8#p8mbAE7lBs#q;-J9hHF=B2^D}h? z$28{-v|?Fo(!#h_>-bX}t_z*4(|5~s`H6)X7o;+e3-XWc8GhHoUo61hlA!ye4x5l* zjnv>z2sP{zX64)N68K8j(oY ze4+f6nsiuS5R)s}Q|LiGgo>5LI6hEHQeg3j)Zz|Ov(QSzOKb{axO z!X6!cMZ;;BnE2HHQ@*re881E!kW^Vp!`jiXKE&Z9JlGr3KG_l2G-Sp2mMJ$fpOGj{ z4OkVToeA7kGsh91Qf*c&YHf5OCkyrMeC2ZDgC12d0!bpO-_@$WNT8CoEvdz(ii72db05MLtFthg^UV~o%j_&DR8rb9;KJBz zPNN)721%rUGNdXLe{CqrOL}9;nh+66eb$`G>((V3!>VQtd!mxIUJRRJ&1B>p@R8a$ z+UQp?9p4&pe$IE4jwTD`$2tRo_6JJbXVf=I9N&Q0Co@opzgJ4znzz@{)|R|+K5hT? zc!bo4B8Hy)m!jCoQ>Ao%?<9iGP^wM--iZ}b2q#qvP@wwiNfnoG2#cWlA*T;+x7k~b zzu%g#|b#tPQZEn@i&8;*gZNHg&*a=Z>=f=a`@k(aZ z@mk&4co0U2qdH8MSMSIDXWHtpJwRt3o_!tH3@x|9DcohxrmNMdd!f$AUG!t*XScMg zR9$szv&^2oStV&4%)65G>bs5tdvsYdqtu@2Qae4ctA6QKS?S$T#LUwI)w|TVRDH|D z0n{99q`AOytZq#Y1V?0!Dq>5mRC989)}&Ph?a8Se$geV9$(=GF397t#x5}xE!B83* zFFZwH|H@L(+)^8-?$xM*nV5EZ%%!}^Q`3?8MiNd;vkW@7lV$8onk<~8*P}P9jEse{ z^BYyJ5N|#&nq9KZboB{4$w)3`Hx;WwW7|jNF*?zK~t5CKnlP6?i*=O&V&PUpda&Vwjn!_zXilvHwQOv4Sc zr6{UvyGlh&VTI^QgFBLQS4+ilbHdI~dR6^XrKE0s8O8Pv;%ZEfK{~_mx^~P|I_ca< znjFP;Y_F+^ZieFetFFoW`_kB`v5b z{qKQ`SjxY!q;8~}qspP9vwj@K^Yj3CAlrtZM&{?$zQLa2rQ3{$2n}o7ft2CWHDs{-}V6#c@!&UPZL-5vac> zzzL-CtQ!V~40pabwruDR|8NXzo6)kI#uwgp07dfn0|Xr1iyxw`MZWK2r(tbfa+&Eb z6>xM0s?E86`C_ugbao6ogw(-5!Nv*kcRrkwLNS_|6hs;0O2}Nqu$=Wm$)v9itzhbO zT?E78^M^sKh51(yj11JDL{Jy~tRUPg=f9MI_0u}uIm6#ZF!oR#rxZ$I^KU0`de#fi z;?`RtghNY8gUW%iX#9OGRjtl#1dUJPmCqKIe&ibHNO;!~cYUm0>q8gXn%{HxW-w+xy`@Goa?0A2u@ z5Z=JgtrVM(o>8vcTGo^FKq-qVIQM$iMrk7Qoq0eeYcb0pcZ6(aomDLe{L9^>sjAmS zNF$1;2^`cy{vzbK)qc;ZgDllUM2Lb~q@q%yTG$5ZI1*$R9EBWduSz zL$j>DT2PMC(paML6{R{rtA~&$^=kZ!QRq9A3%>h7PorK0|JB(Sds7b%Aq_PWC^s5o zVyHKN38d}#qM!zGslKdu2d8pUViY^Iv+Aj66*P;Zg%d{WQ8}ui2ic7l)Ck^lS3)y- zQ!Ph*f%;(B=*3oASu`Rz26}@U<5Uye>vJl>p|OqroxcjaIP#!+Yd~vIej7N<*;_eY z{z~K&=l)4`EqbTx%YCu08q3rUcF$2Gp^n>QBSNs^KrWOQwJ=#Odu#}dAAC865Rwo% zcA3TS1&~ucw_Z@2Qkl##MJXCqpqNr{j#4$kXk?IWBHJ58O&fi%C^aSYlVXyk{?LF_ zsRp^m52kd9OSVSow-n*j?}B7MVAV(mWf?@S(}K~sR4t*bZ9oV=YgJ6OLROV()yk>& zeC8+%-E8G11}#DFAUV>GG*jbQ@z{nPY^GNR-5Vf5Ww2{WWGV|uzhoIjW-T;^r5x<+ zm8tbdHHBHKuNpnItOMB>YCoE_M1CdeB!HSFtAh7}`3S)#n}b6(s*yvLC8gS;K0>Wb z^MlfhY$bYE)A{f^#sn*#;mg9~NuSDrU46 zw@iT=&D0{wUQsPk4LCUcoUP!tn4-6B|h zIY$Whf7oWK4b*Kv>JRub0(sEr+HCyt$QztK2c(V!ky8#$sP|ASJNp*i2iW?mT5*Pp z0d`D}(0q42ioVo?$c}_j8oLK0m)>SNsr(gOu4a~YjG949z^56XdN9>8S>al)rzC0* zDHhxHMzv>hDg8Lt5ZQlYbi!s)9OY|JIM?rB>RnD-X!~o{d~vX9e`V1;!h3s%izze) zX`GKk53s%4aVSFz%9Y^09mW`-_M~2+EZ#&>Dkg|&@J>s`bfy#FqmtJW7HXEEK0xwf zFj;t-18H`Ta1E#s^5bYGfehMKjUa0KCBQ3?k{Xq;0>1G=NYVObq7#)8aH@}os+}u* zA|yJmL>0gDaI=yrm1d+9<7T75f{UK)(9`5Wd}^c(sH$-&yc!1N{9wZZQr-=q^7an1 z^A*F7??Qiv+~DIo$;Tlx=)3AlpfgcJjy0STvngkzmP^HnLi*;SQHEjSS&D|L6JqRE z$l_y0Q0Ee9EbB~52I{^^goe?mlDjH(2kKN~xl7QXp@jvRKRK6jZ|2VEbPmRgW4V5# zVx}lTKIGz2{nK1hs9 z%0(H)5;5E;`*7%QmzMfWTKTHTRG8Cd3DS!pUFt2QD^0>Gx8v|ep){c?{b;hHAwzQG zP`g$5g;B+CCDn2+O*J$*^Yn_hN;psyQYpkB?;f<2%R+S}a$Q3zXDOBnbr|vsg&0`_ zov7So`nnwUt!H&M$W%A(ER<}<4>NegaHsOiQ90grQndcPGv)p{)jPKiDt_nT_Q?Ao ztcU1JIeRW4`jKfh`yo}0-BZN?r?W?4&J;vj{{PL&qG`f=pg0@JU3T(*MAlNwO0_fy zN1E}KZ?lcpFbx_vaCI5#CSuLMKI7O+3bpg; z?kQqG1bwT)IF>Rm09eNOzi%a^)KbMZ)l$xMR|=!EV=MYQB!+v1dpSsF{C9Z?-i0?e zchnJywY>Tvc2MaoEA{xH8YYFd?d{_S+lATQ`->+b58J)VE{U3Zj_CpkRJkPP_NsTCWp4*t!FN&QGhQ)1zu=iR+ zwQFag<|)Siu72UJDC#?2RRvqzx6_bfr|qz+(cx`Pz*#WuVS9L61>^`(eCsAg0j)FC zN?#qk37k!P-gCiL6zy4g-XL1AdyjjGYBQdBi|7Lr;O z_Qqdol~^G-EA^@xD|~S0Rb&%tTZOJX7OL|n>>Wo(mcgmz| zX0?!OpiS&-pcScMO-E35$b-@rTYi|faO!QE12w#8Pxab@)pW0PKa zk#s~jK}^LG_RG%ZsDEt+`>)=1p}i;PJ;HinAN1Ippq=?Smwvy(|LZOEh1U;BOv zrurBEGh0U_{`HEqm%0DRlQY8<(r{2d$3#J==cI{ahiACDII{!>x67M(t(X31ZOcFB z$!>=Ar5V(@0Q)Xw$Zn2jyJufN6+)cad&S{Tmt42__Uy>xzu9~Iy~0-_q+TLrH$O;0 zF~Pjd;=(dn*t(Bch1E=3x)m3;zNVO>u=PEEi70HF4Z+rXWs%4zE^NY2k4&v#dwp?1 zNER2akcDmCavZoDj=K<2Br;2-lsyItf3}2lw-QlYxXg^)=!n4KjX9KNgxH1Q4E4hS z5zeeRRld0=$tO)V=>7m@q=r;?> z6RSvcGlTRJQ6xxsdn-pLVM?a08>iFCK|7qR9hsDLLF+B3Q_yY{_vC`syZktQ1*KX# znX0?>c8+_hGw!KW3ra1cs5zvXfxEL(#tYZinH1TQv@z#$CX1Zo5MlN?tkLSLV&EOdCSEjZ~U9bI@&0)@@t|cbau@CrjMpl(>hA;%o_2i`5b( z&Xy?QLf=o3jglD^NL^KFa6gMY4V@NM*3_qb&TmXV~Kf z4rNs$-IccLCD-UU>WzfAKcx~fg;{y^!nr-gLVKM;%-_o;*=K4|*tXZvTlTWZK5oJn zO%YWmdsA9liN5G;(!EBL?lqfqFSp98lo0YUnp8!6HMMo1hSfTIovou3ep6{fEn+In zm=%7L%k-|PaA8}iqfDhN@-BDv4_FmtKtA9|`yG*3a6hvTq_PiioqT1oRh^Wk)QQUK zD-zuyQbZ~79c+h8qg85DSE*TDrBq!zbc%=~7}dpT?$D{b@91W9_Z{6>61BvVoOE|) zanD0!X7xy|V^oV($ED6XE+xqwJ(bE-uVw`@=EQokNFRp?v-?n|-qByNtr1X@Is$4~ zxId>+VhR_w)i~NoiIh+~?HEEL$|UU=!jVQeB5_(Hm^~(yJ%;ruHQC09RB4xT*ksSJ z$s9J#Gi+Mg;H+^D&KlR?tRdkYvs6Mn9wCg4v~vk zs2m$vsfexAE{9UPSSfa1b~HOgnBC01G0BOs)!32bw6@xUyB%rm=15zedhRmx+-2&y zi}gH#lWapM>#3Armu5$+lhw-Yy~Awp9nPe88%ggrlitlqpRD2|l#^CEoy<1rRAP}Q zsLa=kDdy`%RzJ;ydC_4tUPNDpdu7Dux;RrMN|pkWoB?A_>`bn}b66Esf#-0f^G!_( z+dgnq;0GLu9hw~%IYgMvPRx#7sq9@`wB06KsrEri(Nw~_xi+sdYx62+ZGK?X<_BhN ze!#VP4W$bujoMV{T*E;(7(uKY`!+jncCv1!k~$p_l+-f6A2=(Lr=lIVsUlG2nRUXL z)4z>Nd8ZOF8nAtcyOixiSoBU7y(dMKgV-n9alaW<*gnLrd?Pk{Iy)Y6h;Yn@xY-^} zWk1U8`#7-;bNzTqsVNJy)a^qYrEXV-{VA0sN@^*?m~(xKbKUC@VK(~}hWTtCq8hG! zh|zG!ge>qr)`>z%H=}U-IOs(ui#?bfuR2+;ayNO?>?Z78?0AeeS)q4X z&kr0T%;qj+>N(labF!)DWL9Rs${C@or%G=>2OV&-4saGwX!64~i;KpKrM-)MIEM#^@l&e^shlr&Ol@6;*CoUtNC#E2O&!V&RC5fG|=Imd3) z8+W4J9hRqkeoDuk&!XK)f5(7npYP~8^POF1K9{tIN|d?_Bsl}doLCRex2HSbnv{Hb zQr+1zHD9;nuaZ2csg-#;gqB{Z$D^%?w^L(6%%8?Q-T z($lsSu-eSwlaCZ2_ov6n;ZFcr7k$%OadjTLcPX z7ou$w@d&g)p6U-{+iFW4*RmBM9s#X!%t=u`rO1tfVop##+PJ0YzU+NHHHv7;! zC#SL}lZD(ljq~6caOX7cnX^nmHDMia_e>+JSu8p)MU=Cf=jcRj2aExEz$jtc0UnU^ zIadm$5*lgF=b(j77W<4lYn-eavVl978a8m}QYy1!Xi~M9Lj;-GL!^!E)Xq9e%P5&W zGz|^vxB^!@M7Tt&$pzoJR~>8lT<4oe?vw z!tLfDULk=wJGN&=_t|dv=i6(H%H7WX`Oaoa01;H>8WEeDGkc?>^BXTa5kZ67#daBX4RS_951Y@4NJP2h<qX!^z2jEW@y!Bs!0r(v4XZCS((y6 zei*&HJS$rJSB33gsZ`s)GE!~-$_j2- zR&PiiW9oT~!KgPG^>!8%)zGuq(zDs%Y_&LB4bBdWv%^l~s=~Ibj4ZA)v$%>(e_mnh zWk$qDt%#3W5!)9Qwj0H2H;dK2&1Rhr9OjAWElA( zp}G;H9uhsO2@{K+jR2C|!M~iw`Boa|8>#Nj&eXD02D^(;y%5XIRW;k*v#`A) zr}mzPPVGI7*!NiJ-D7a}Tb%uhvt5{+?a+p_*xtk9^e{M9huKcvAjyoeWX2er`Ie^J z=i4=QW?|czMva|m*4UXk%G3?p^1g22%s$-;!H3~!>z0>CGbP9xEw6tz<)amx2*cQ> z836^YI}KRSdRjs2PYYYmLhuEc(CPPF`Ymj`Cy#kV&!zUhnE$)XCxnJ48^bpb%|cmF zhbR(7GFRv_uRro=li)%xEf2#YFE39y3(w@~0yY6Q0xUnP$ie;LFp$bkGA~2;5SFJV z{EPXg^%*`-xJ<{E_lbxL(QM9^6UgCR_BM^Ohjq7#sQ5cAzFA({f|ps83g?%JockBH zc3?lfuay+0&kTVVk12X9!g6U4~+J!P&uZCxg*N`UWIKBcZ0grPXD@Q5gO=YhtMpaj6k;s1Y$WZFY$?J4BkBtiet7 zZ4dAtw(62Dg^~`1lJL09ottji+2|3ly-*8Vk!XEGN3&d8UCC^9B(rrxW?vXBv_N6o zZOStJpp9^XOOq2Enw&5qGou>{V03&QIyOERMPj>(?riv){7Sy26-F-?n1Thys59c> zyf2Njqi3dWjP5X}Qy50_FsQH!Vax<%3HTSoKiu6M{b4%(OHKULY0%!Nb;{9%rb70+ z($;uKcKMW@BMO$WMu`j=VyIG?i8wMhSOwe9EcW7_G;Erv0W}5cR6(2#pbEUe~o$C?NVd6Lyg^LZC>RPxym7O z6`Ln+TGb=W=KW!-?i!au*Ekfq#$ldHZ1aSJR@*$4nB}^`mCOx}WNuJKp~UF3)<{5) zv4#n-+bHm9u4xqb#WV^f?r~dEu>IyV&TY;ib7xxcJ@!Cnt&HlnG_&8G1D!NX8R#Xc z1DzSpfnJh6q@nTsp4^9GWXG|rB-5i-z4n}H%&71p|7~6 z#-VA_6|cbRtY(3UW45)D>E*KDM!fA$d9(MjnKXvQ-n5qfcQ&-y#`|2Awa-ymv>iZ` zF&*WDnx=d&+a$*z`M2rW`f&QP$a3>ubm{q`L(l)$-h03`b$x;3FJXu*84gs`I8aoC zFh%PC0hNl1f*X}UB1A)iNkFg;63}Yvu2$MQ&}!YIZmoOID%D!tIO=G%rPa37s{NmP z-?}e(K#SV%@Av!sZMk`Oo^#JV>yCFH+R*aIJ4O4!^pB|>j+p`pbydQvD>!+;tE&=P z7nLxb=S{i>alC5)2WSY_APx%}Grla!Z+MA-Syf}XO(sBD zMxZQXbQ0PYfU`KPPKv`iN&Y5vlGVx|s|E^M2(W8GVAn#7RIe@HR+tbvslZo&j4y$V zFH227K@mTqh#y--E+`@=ipa5JDCF9=?-&+@2oMS(5DH;&4i^*&CyImKePHTPN*C41~->S zuBgNbRUH6`Aa!H3Rd!FSlsIujyYe&K(j#F7MqokR>a+OM%XwD8$5pN)~HkrIs!)PN1p9HbQvdOp<%S93^sY^H#h`5we<#aUR%w z0kP&2#F{^v#)D>$vj1f03I*5{64=1DJC-4IN)--~vNBZmc96897wIQ15+J#VKyneQ zABzM+~Y&efDI$}d_PVKYMvx&o@BdvR#4JHUTb4ly1T#Y;mNv)S!oA>wdW4z_!k;qW_>GxWg7m|(@VfLL)YD8nk$9K!U2pe!7+WoHxS5P=Fc zhme%T5tgzcLaK$h7d*2{DW^%d7lSmVzg5!F2hZ|~;caf$Mm8)tUI+;Jf*>S1*oY>c z=&V14tZ`2lpsabTC^JY-p-3dBP&|@T;1C{0QiGAiN4H_LO&Z!7rZYX@htibJ52Yzx zFqEcrVkqedGnA%u!N5UuiY*O5!$2nhXb1orApi{t07qB=8X*9U`xFP-k{v|=Xw4G+ zpOD&FKx$`#)Xsz@i{>p^G-=7Ad7T+eV9t?;=?O<7CT^`Wqb+qNPN2!fHbN*aCdqw@ z8%?&eJaBeJ_pL5dPN^**TWx}DwF$B@YtV3v$_%SuyaN!&lP!+G+=6Uz7Gy)~YQpIa zyf0!|#?sWpSsRr&_bFau(B^*LB?KH^0H@dOUO0~CuX5IwNycz!jy@dkkusVDj zt)Ll0vyCGU6ydrJ&jO({ZzF_`j<5<^crwGh&3%fD)@^u->0zE=MTTnbdRI0Fm?Bth zpF*s*Pl3b3csS6DB7hA`1^O79c>k;M&?o)heDm=sh zOyvv}-s+CX6h8qk_z}DS2d1%xNAJSGDu{n+H?E@j0G6OgOAIxe?}x_g2KclVFHD5kuUG zSCOW2&a$A_d^i;e15f*JQz8V-L=eqH&^Ec8;TK*oOy#^_n92o$LBC7Hc+GT#waMi| zn_TWb#bN^jQYw%y?Mob$H2%>j6{7La#$3mgdj| z*d&Uk4$j2do|&T42Z5|~-CN;-B*EY%5rdbcMF+Icp>#!HZ*z>dcSBa*~fd z4M@iAW0}Fvj4b2}ckSREG>!wI4vH{xk}uq~gXok@hqLc_{(Y|9jeZV+2f_z#2L%Mu?be^j5v_*%y)~@s8_O9#Q12;Nd3_kW#a?`YS3%z~_T)lCh zOHqvgpOT4tbf;>)95U1LgDglcA3ideN;5?+Qa1uIQVtW8e>c z(N#-%BtVns^W*4qy6CP%CFOxGnM5B=)WM~R=&H#y$_?Gt$$oefm2oD&y!wbSFxPpQkD7bA8@3FuO!}O2T#@<7TlIO!i68t5@pAr5v z@RtsM@$i=je}myK6BS&9f&vuGKtUd)=fK|t6e&c(G!zu!_sif+sjJjpT9ba)4860+ zJmq_FPlMSf({=8NPm5sF^5fYj(?jkliF@kAJvnnvUNvZFu7HrKHVWLN_71l8@RA{l zBtnoM0fG4fTLs=-#>8K@`_PeZ!V1+b~7e?IF})p+IvgwUATBp23USH3$=xSY%REw{K%IgSn&YWJQyM8 z2Z70l?vx|S%Hir5Q6V6UyLko5SWk?V16K%h%wCkg3zbA>-KbeKCQOqj?HAVu)!u0YtpJAl|8L#4cxD3}ZF=B+_g zM$1Hq`gt>xc~c;D+GJSWIOo=52|EjKl(!#aPG$SfDbvVFXuZ1sA8V z*G|xG6#&N!mUj$loJ9PBmUHMl)HEth$2`bh&`B&bMBWl;iR(d$CGsUC@+D|+&apix z5%d5RIBCQ4>79 z;@Bn-ZgB{=I2JD)ixdce&T3YsZolNSk+ z7m;lgLF*B0J4L7qMP&90HVZvq5JiHvirC~8g5(vJ15yfLdP2jTP?fS!5Z{(sQNI*1 z%nG&)B5xUsNf|;C2hS{_l#vin1&nc-05wzwl4-FlvjSXZ(WV(xl}FxsqG8yqU|ImQ zV1o&F3Lc;w9r&{O&^6e-fWnMpiecg!2ro0z)od2T*jlL75Cn7^+cYv8xJHPeMhH;@ z7Q>+odW-!as=Ak{3Twu=Dxy0qK|@wP$4VNeRZ}|ID%}ubNsS;`V@a221m`F;&km_M znuUe>9c|U`Xv-Fmh~%9mTj2N}wGe030+)?Qv<(>vq{GZ^s2yabQ72((jv>}I5`S1` z;|XD&fNGSoH72k%CJ1UwAZnP(QH_TXz^tDJgp*7!EIMT>XVHS0J5L*23o~Om2?Lkm zn6ccl!!%TmVWD^Vm}V>rIA%s;jhfCE=#cz4`jrp3FBfiUz1~=cU(%-e0N&Hb@0_yc z(_PU}X3Oo&(Xa9Id3EVLdXb1vwr&xc;IkXiZ=G}8f!=ZDa~sQSSa^(m1Vhee*Q2pT zAO-2plr13c5s&frfO~vkH<3?pSJb3zm}o5ucZi9>Tkn*O1l4nb7T^VXcyd>et=U?( zW(yt$#b^nD=uY96=ow@o4z(c#DKCVN2gUSkE@z=RFKadoEb7?1!{Ks9(@5xvt# zbX+hF_;p5}DArZI$*NWa7c^`|aG5n>WgdwbA&wMm0z+6F+y0hyg}LY$5Z|(;?tpV*WHu=>^bs<$Dlal94_sujDk+R~wlA42XgNg4 z8Kjm*hl2zt`N?Xst_d75L7B*{&MRgf%m+y*0>S}Tt5UTxAgs3vf6Chj}P72L%&wyby=ey_2%$S|)A=}=`^+Nu8DYwxzCb~sIOn^< zsk0Y7qzn2ym3kbVYnWECKnAk6o*%=cv!WDchw;faA3;sIwH zShWu)+92kxKpqkO%y~pi6jVP27w5onsXP%8ZAxJot}q|r36zJkPC8yCgN}~4m0V>i|C&M`ez3HlZQ*>;BW$+R7n3! zqkoF%TUf6&f?HT!;07*y3oE{pmCm@0G8}QnZ4bD-l`aF1xC~bV7ju)r#0lNv%4R#j z6=-HSJTl*v_B7}S@`=G;hP`ueFyI$m>x!p?TngeJ7-c%{#*Q%^wW$5Vs`d+HxKT%- zb>zdMTi4*xT~Qk$f&6aN5UW5M(5Brw157o_V#{-?gqvnq<+v;Aq8iMkB5x4`;-srL z%Y)Wgh!^>(N!}vhS7-vAwB^cTIg`R70qi<~oZ)OH=B}s(_vq0Z6WEwY>Dvy`z7*UN z$L1u<+~N8)NP|wGd-l)|x(atQ{fn>nggCz26Qy5g@&_}&5llI7d~rQE?ty=knBPw5 zGe1)PUfs>ab-SCnuJ!Xd_Y*&n(S@GaPcABpjR79s;M@PxX}?eN4OUe`!}W*aM7SE?D;_oli*ql1QFC@ z1Z)Cg&jHs=q-%oapdbrJ@*|qdoDgfk9wCnn!ye|dbaOtag82fjV7|ch(|nfir}-?t ze-OMalMm)QKAw zU&=KMqlcgAyJV44P_jduSIiAD_|^nSs8fpsikX3>PBKA;WS%-oB3bDL{bYCqUtvr4 z5jDdxdnV27nUI3|1>4Brt+A4jLucl2nK?ve0i9XEWfr(PGqQ}jx0=UkwG-P5NTxXh zOfm>fQcZe504k!pDHGG(lu48?+ zfxTu)icL48Q9KdbAdaL1tVWy>Ihi>|Av=0zz>uCszz#9$m8l&L195ne=8S{AWL{to zz^%b7iu(X;g8#on)BP;w8^k;C$CRUs(D^>h54yY+Nasw`(HTRzL_@j6;$%9@;RKJ| zaGs?{45hFzy^x&KmQD!90cRjYq07 z5EIS^Kto*T5zgk57-#dzhO7khWx0Y)WzIhVv@m_!8r%$0ti8V2o!)A!UBFcPRkGBnK3^Ew~QIX8-b&rJUEQK>9))ouDV&n zS2t_IuruNSSKSuF|8RJMCl#)VqL`6sRqn-54`GIe6EH(>oxq6DWHfv8a0my(>=h() zk+>3IXhfM&6Nh2l3Eq`3M-ZKeU=)FeIUJ)Bj>pX$P85;zXvsa$U@@Y^bjKah3n{R? zV&=z7<^Zhi?TwT>3^=|M8QHR)aBDKU7+K;C4=(7zg>Ra$Ip&_>z{jXDuu4cKQR^_W z=*I->FO0=tpFPZ-Xj(u~mTSClmvh2b(%L-+~DmPZKmAIWkzK0iBQxII_yYJQynn^I%B9T{I5{Cje0p zO2Ppd6z2QE0V8Z7p)|mSWW+`JemIivha#pN95LlI0l7v-56A^y#Igz;abX|2un(g` z99b3ONM8eOhItk+CTh)7B=dT{ffaNEE4T($xHiTb5Yw9D1=!eQxWa*S9UKI%gM%xhTA?sv ztp>t3MPPcvC1v(7JnBWi-!VR(@LR0M-isWNm3qL##&uAQ; zaX37~WQP+_aQ+FmolLh4Q*#*R$8_W|*8nsL>`6C?c`~2Eop5mAi@4E6ko!&-adSn8 zGD;6jvNMj+{c}a;4m7+AZ_nsTEl>|kc&3kz&oPpk&r2#ivXYWd&kt}4Q=9jSKo&5{ zejGl2uAV&G(k`cmIi2TTHz$5%-T35mA~_v)V;CP6_X9!YT~_QBf^DDK5vPzsiA3Y|aAQ=Tl6lhS8j)Hg;B%)w23Nmq(MK~K`VUEnE<`3o`VJ^(3!u*$ejNl$&p39{^mCGymx2z*NH|gV`qFZF0k5A`0^(PzV!1wsn~F!6P;=KDgL=E(>O64#4}Ud>NMr zb1l?NC!AcwCBs~aZP64Bd1xNPBw)rt#lb`|pg@#~OvFoE{fK$B3zrc6G$ zkb4BDn{C2OagQcEK&W%zB_j;l;V=+~2T_>sjGr&Dn3>MPKsqq2mC3K?P_xfJ-!MP$}?zP|MzYGS4MudW6FHJUO7`4Sz0tQco5( zSa<+}hp&Z@rY-o=1gn%{!0`wPu%ifJKNOmBaOlHy+!116`uG-%bXSmpLj}z%aDnyY z5IgXtX|CIg%k0A8B^+Ld5cD?+^Dzz0$vFKnN&yYX^aPX~H&7eT7}Is&2f-W z4sd*&q8g)@1QMln2k8}=eRSHGoK#h&QLWP^rt5X%3=$}Zj_p%an1rhD-zO$9!KlzG z6?&!LK$YGA#Nn|%0@v-mO&*Or#7a`jOi+w zRegPy)~L=<`OEs~j54*>sM0D`N?b2ZrB&$_8ktg+tP;EH${BiUCJbL~Ndj1T06g6H#Wm%T*tLs3K9PEmT5!l>%2ACRep-$BsPoS$)HrkQ_KM3F1J5#JqLT0@2|h2Lk70NvO=XG@e4C;h_Q-O_osOs|__^u~Y9sV^;Qj+kG!=ZMyf@!tF=?t$B_n(ER`C#s zR)uIFtCTCDjBlD6q?QqSUc9_flvYBi-zH=W8!=WwY2GF{YeVt2AzE9Dx1qtv!4zY1 zZb*Tt{~P!M=H|d7yOAlO#=Pzr3zRqNaE0OnzQCJM*;WAisB$U>3R8yB5=!+3duchq zJVoD(j1v8`1ciFafddO%eY=m$ZvQNeDps4SR-(BsIs2>31i~QZnIzPN>JhY3u(Y&b zj{u=oAs@kzR)5x62?iv!No5FvQvJEeKZIw|cXE((B$VOxs4W;=p@FH8$S}^;*A8r_ z1%RvYabQ$4Bvkqv>}h3e3{!(Wj z{WTO3ULplm$j+SHfXr53?NwKh$l^hA1Fp`5?~SKlG53<;r( zR0tn5aP_HQ8T=|VKj`A>`-PRkt;_(xBJ11fY!!9@O=aIEtC0*|;YcHmoc94t>l>|Bq-k{qqdJwf?NP8Dnx@m|{)_2ywYlJ*K}QOuLPh^NCjFm) zCshk6Zs1T=d)oSM;UWTXeE&L&BG!Qa#VA*Q$F_2?LWNz~K)*qPll`vRdCQhiW2+_M zmG`_-#s>GT+G{|Sfvtq0tG&PXPvHrNnq=u}&z}D&XlvtK?bVTg3Q{1pV4e*UN?R>1 ziphrcOGYoNRaUdF3PlDCL$w#2DuhY$kD!O35v%Qhz&>fbUN=gu5%#VM$$T9Ts{)9X zO{l=sRC{l%0&qfssBj=($G58haut)f*U>%|K&({TfiF2mLXE1Hc!X zRO;J-MfwO}s;e#YRd!0qI-D*AnRt7Iw3q+@TUPr-PnG=>=$6-+YV=ka_3BjXV;Bg4 z@Vr=s@&`n%_PSN&;Q!g;HfWw|`vMiguT0ayz*gHAs0f~rUn?XvD4uHj0u_O-Le~Lv zRa;Ce0$GLSLd#Rt_GZOlk_yk7wK@F&%CFi+?4JS_Ff|7mv|+WiMb(f=y$j-6?d8_0 zAqg3o>mJBVwa)=o4b(#O0?St0v#T1IrM(26srC$rga(J=jamQ7eVrho##PHsR}Hos zK6ziE9s-qH?Fm93(*DHxo2!t%{sdS7uyZ-sU{%&5rGy$;Ehztn6-P*@A+HIfvOZM*lvqM)x=INLz?A*6RQg53@X##ud@tN1=uPab#Sq&?YmY1xe9+BW+kt2Ji7|m*4}!BwhR2eylJqL zY_1kt|06sE&U=N3pb1R1j|^6d2PttCxZ0rgtL>ZpW7wn_f1QP#e+Zt zqS`AiRfDbcOvvlZbSeW)3Nq?DPvh5c+Wrkd!7e$7aJ4td2lkGIcN^i2Yr%Meg6OMF z(ZNgJa3qeN+E%D8L71z37E25|Nm~&-NK(7wH`iV51}ZdJDqDDWT~(V*sSycpioz?; z9%Q0jln&nS7MAM`lYxw^42wiX4oVbOPShC{8jEsx4b~vU1(tvfo+McNn6X(3jiD}? zRuf(@r<1+NWTzhZ{cU|>x9K7O2DoGyRl;HG32!$G@rhRC z3X2ReL5Mm0`B?Y{nZ;=YGbin8vRKl{+DmqojCs8oe zX)4UmLOzLC!8_Wpt;*-uBWdawlcPvA;(Ef)#_7fh>DF7NRA*%fd(soMg)k*fVK53w z(k<7hG6+YD9s)x{5)oI717J&M3iEIqT%NEorh`IG>8;ji)C?FQp-@wz83VKimbdco zDaJmkaYk4afSW4(-!TP@nO7;RPtm*^+6DDNi&w#Rp31j_yK ze}1y4ER7LvsOYR!Wf|e}2tQeTR*FWQ+Dnz2s2iiwb`F*+lp&*3VJSh1FojB`1V3RR zxWRLIH+Ya*tAv|4=$j<0Z-xM@{OK(qxGO@b(ir^ts*#zQtbX?gn~`PkM~ny^08~zQO-lKS5h3>geSQwySXxst1pm73nRz%2NR!F0klml!WSH)fjy{iGOck z4|OKG*?_)UfsNDXAoZ-$s}&R#DWN)5)J6h~QPnLpl2BgAma9{_0b!a)cd>MpP#vw> z=Wijg>@ezKOol?OVF}h-LiPNY^(}~oI5PoXFF{e!5~}OJZ4KLDvJp{|RoJ!D%&=oKV={mg;t-e)NT7`y^PcwTzNl{@?J!F zwb78l6%G+8EF%glkh%eV7N2EE=PGp&spLaeg2TqNf6_k-99rENu4YwK%GRkV>FpaDQBV`17m3gjB2OQX!?#4%>idkqhwq~K^=P)c7sK+BB*0X1wk?R zieOcnD3!{ZlB&dr?uns|NPBgO_LM5_dL71t7U1q+fNP&XALlj}X~$79UTdJ$Mstzu zT1L1`%V>nXq_kK#D5qsy9YOmwz`;mMQ|U$P6KHBd#;YQY+Q4|n{vyaUAR5zv??$iA zC==n*D^X2_0E!N#9(XZU2^V*v+rI>T@l zN};V|tWuOZYC{i=E=8eXgj{rh3@Uv#i1YxxT9jq6Rumm}1_cAyPpf{`L<$`{Iigil z6|nsR93u)*kJiRT8y%(2Q7OTasYE-XSEXj@^(t+uN|f@%;KCz5cUYAk*6NHfzoMPB zDpj3Pp-)p8S$74Oly$Pvf(NsfAdn}iS}7{R#@x&*xdmN%2it|(s<;YWiKhn)s#2$lv^2dc z4GV|pxDbqrK^qkrnTD!>r!YJ6Rh7$NX4j$;#Df!+S{8t>C3`I zB^zCih__^`a=Snn@vAC{FmP3Q1t2JBnTu1jRhFkUVYe&;@>64#9Yt8ZB{4c+_O!;H zSt*fOM({D!)*!0j32eaCs?w5kWR4a0La_W8Lo`hj##Cr)ZrEoF+@k46*W=dNaObhr&VPzifUpFw5<{KT)-ajcO@d= zqGpaQ6|dK2!(A?VR8Um0umxkqtst9?^o3|gI7g)dDsuT1V!+FwD3J|WDfCW(s8Pd1 zfILiK+l)+6?F|iNs10cKj4LPF6qMuq^jM|nkQ(uBRRzvsD!w0<8PrP4#AY&ng($a! zzDn0AnUz(66}HLJt3~lbE?Jz>=UwJzk~6TQ;JMJ`S&TCO{!k zBu2sFg-XdTEs~4hf+2813MWO8ItKhSQSpQc8NDdk7kltJy(m+2r9|7HEf(VtBFPh_ zD_tr|r^(9Dis}Gfu>28y@UgV2JSIkIp+zDQqeIT{^l(8gTxhJ*#_M3&Ik&2n3_vDZ zjf4=Usz{#2r)31nw3ZVcE3y=`yevvbq8vSM5VcLrVwk9ZV9`lY;e)Gl@mi{=a1hR_ zsKv~JihW5~7Eo2`y0Xg$K_Uazm>_`)c_)|)y6chU(Wd5B#SOg71d24?h-h3m zdqX@c>gZHhqd%7Isz#e7bye;mS|#WWvn7}%sKn)uwHOuV_RuTTTG3pNCqy}hmP(|I zu|FdW z!s5$ibT=cjL2D{f)Ec051&nGz4@4MIS*6SMXPg_D{)^HcIj7(it5YkK8G5rvv@#+) zsGf{WQ8l1|ML2L#Me~p^4tw_EdGvn1s268M+xnt8cb3BKawb7W1(gE=oE%97AQP+_+|Dv3M z7Mn!}4{sKTB9DbvpBn|UUD5o^bYS^DSs5uRy=co|eD%4a{bA?ADkZB4#b@z6`&2MB z#UPNb7iC=-AAClHUat@(3xXgzw){dQsC?1xfs)o6MdvTD%u$ug!E%1Ava01KoyAGA zs#?Z0!;2fDMwxI;P|2!Vqt{VX`dBzvK`m_;^R(xUqfT}M7B&6(g8TG(-F7!xcf5Y- zd-LvX`{>$lp)byEJ{Fmp_NvF&C(X{C|Ko*QNZKD|6ZW0?esNUdp*sghl|63QXm!%X zl%02O|DuU{@$^c|jI?t$qmP_-dU^SDSKUC@1GjHC^sHaEtj-=4U?XZM2DR0hbmUZwI^YBWswzkQ$;OEM5`{onK`!5#5} z!!SauksD7@a1z}r9hK_|e}g0Jsbo78qyHt_g}}o=DuEgaVGPwDo?@xKR3C`PLf9Ri z(Z7ARKfi)+3sW{2LI>`*E6$}TTll3v_`@W?Pc-~Vpj8E>hj!GIhEhSBT51%f!-ZPl zT8WUWfK&tID<~tB(?N{>x7qd}G%Nv}j8IAq>1iS@Ey88w&~N&`5Gn=HfC`b!g1S-A zUIzT9g4#xaLQ%b;rBrB72QeLBV+6*Cq{dTOkfws?ct{-wPkMlx4!;`sPX_I1pdQdBZlx#;On6_>VX>f z1-0J?AS2unU5pqrC4@>yK@>*t(r_y3i30Zl8^&dfskrjqm;2z|$Yb3-K5FmrgYU z_;CO`4MRqB%>@2IoSz1{Mkr&QCZpECNL%BEI97aIrs96~W!gpDgZjyi6N({e5gY5* z9~ZK}*_c1#0S_HeAq#lJNKpIjz(;fr!h9iwYsnp!yb%tcJ%eLiz&}WWGeE=8k}XzG z4m?HwA!u*tpWL2uhNhxBzoGX2|7QNLqQD&F*h!_7+}x_bzGj=LJ*WQRBB>!QGPlZt zq_I+oB(Rp;#lB|p)SeQRjjdE-N6C}y9oyPVY$fLQQi*L*A936vH*MQQbvLd&cU#BH$-O%N(*9xnZ{y$D(zR}p*~KI`+x;y! z+dL?;fe+3~J>iWKY5xy{*Oo7M+Tj|auCzaDmO)nH1Sm}kbduM!w;5n-?)Q)a+vt-!`|Zk?k%WS=voT9*!B|TirDlnQx^VCO?5)53WqWPYy(Z6^uUlQq;aSK>t1qqnw%g}l znQaG+J>_$%fO*mpfY3+gLU-G-BOHU)*_rf4djoI6uBScK;V!d&}%+ zx<;RfZ-S9Zy zwWQCD-|h|%Sn=+JQ)ST$%ZLB6=-`1_M;xWOvy<*$yQ%rM&Jgdb=RzPLK5w-gvv^0`?u2`DmN z-UP#uFh>=GHwwAX-%;V%qd^(ce-GS{41Dv~uv$r}~e|4%Zu&%r|Dr)EH z5)>?#2L`nb32PtPp*@XJbA(Y|?VeiY_wjZY&1>tmZ{KWt#_H2q(gpHF1hR>3Z+S0y zY*CM*n5j`{hqz-vz_@Ya{4?0kT>7W#G6FKksCAi!fKJ0rwBC6d2wrQll&h1td|l~8qK z+wb;M#ziPDU5i+_Ic2ZOPm-2Aa_A@JJ%$8Mz0i7{*TZT3+Zp4I4v)NkXK{~j4$M8# zdfwBd1|w~r%qZ+NeOb*YNssS)ZFIR+_FMB?2Rje?czLSs)bc);l?i#D1{a4EuR8Vc zorSRp)5Bv{_uY~HW5?(9mY9ngjqg_!GHvd^x`Q5vV|6bM7>B<-T zze+i&efHbT;&IuHT6SJ~J!SNhS*No`Z;PBZbld94@vcpdhbLcbyWy(qr@=$MoN@6- z&)LBbv&I=)WgO@hUsu$?^dm zZ;Uy1dHj*%Kc==?YJ4HRbL-rlm|ga_Iy7}ZvBggLb9VgmdY;1yX6)C@8?Ns?XI#+z z(r{P1vbFAE4e!*Jc=UaA{Fn3o&5mEm-PbAhzFW}hZ#~pbhoXWxve`3G+WQT7hwFA3dobHmVe1FpX`tIW)r;{7lJsOq$FsOe^kAMg39OBP!jovxDGsK<&Xqi_4h zE*?4Uj?eImO?!3ee{}nxt}SfJipLKN__q1o%;B~Absx92oVvYtz0^GN+QB+o_cgpU zpx1*A%W6Gp9=q3TSM-FKdxwtb$Cv6Kw77Mk`zObKKI}c{TK>$(y<_F8*3G*0c-YcS zFK%oeb?4AR(|b=YKk4-#w)HAc-!E28Ov}6fK}ycZEdd4J4O*0RV4Sb-FHbU#_|Ep5 z9nrq;q1#iUrys2uckI&2r~u=FKeXjJvcZ0y!;=?$+NE!B!PU*v>fKz@=h?@b_jWJR z6n;~BdD;vo)*L^6E%z!4abf`zLCQ>T?xpOKqJSJHjeQ7R+a&s7SdJ zQunoNQ8QEJwK&~xC$|9;ATV?Kb{(aGbE0Rn%IIRlJ_m@ zUDRu8EMtYhT3MSpY~x^ER+$Cwlp#w5atl%m!pa%Dk@Db?K|$EqjbM!%7`y)RczGW- z4#uuqWyUTbm9=!0v~QG~mLlY3wx)%0(|oyUE=MGP8@VZ8-jxL>mDCNc3>-4vN?ocU zAXASwXHzo`{^`aHc?8#hR36eeNY;p$=#RvUCun&o6{h2F|FBWP9MA9PM!Bjw~r@&lj}U^kZPpAUzhSD`r?fISNpp@ zbUgjefgWo2T*gbwgiSxV(-!$mu{j^iJ5Bp!({Bq3QE;amH ze|Eof!l##7f#pZG2; z?Csjw=~sv8mzx|3^14%YtlihcmTZgd;CS5e@bL{Bzu$7@TAgYAVg`o?jcwIn@|VwA zmEZL1C{q`188SUxt6R0xcqGEk{tHPP-!A5^p1nso9o*Xcx7)KPd+X{1--ig48Rlwtgzb{MrxP-dAtoyzpPZzGN*{i49CwWaSP_2)B`Ps^@ zG2Z*88Q zb$`?I7a#uUl=p-BolP&~Pi*66-MW>Pkvg|?@#2Af`X0y|)NEOfdr;HyKSw%#+4Zm0 zXIBhAv~1dEgT@Z*(=+B^w^N^G4|B}xIp$^V(nI?)GDe^3Z}4;(AAc^;Tt8cGuCIsb zpWL+Ie{HxboB(3x}MVUh~-JbudR6zB^6Cm*jP58x}>1~#*m z751<5@Z#XfepA05boh^Nnsi^ce(CkG>zd>=`t)(TlzWdh%exWPodZMUK}EImJgnEs zmNm%psz|0uv4e@3tyw~yaQU-*#Shu%RQ0xYnAxe`gXxhA?;Pw~`Y8Y1E#&2}XKL&ho^x7x8+nsiv-GA@B)rUNK5lR}lhpZk3q2UoWqp9X~WI5novgI8@sqINiH z&#x{no6Brpiw8JO# zvb%rdukUkWE*0+GnA>a9Z}Tp`I@~&~YhstEd&?4f>>YSzM|a;=@sCGrxZ=@nKo93x zW(~mAQa3=cy)cAk{U%6wyG$YbEZAY(nx(;3Dwxq@Wrc=7cmwg<0 zt?q*PN4o9IE}L@n!^7_sC`?fFH{B(Aj{crCc)()n2p12io>*ge$@yR z?c8@(6_vF7vbe_IYYq-R{>P;{l}E#@Z=^d-w*Ah9#LnuSNHD? zUw521FzUphV}=7kXP!uR%=>Oh(w4tdr|V|yUv|Fv7oJagC3gPaeMi&JlMe5^{a!}j zDPMFlO_cBY@I{R+pAEY<(rdwPx1EEx*I1(}TvVqX_2I}}fl;&FWU2<4XZOxqJn7uo zl0W@aE0@W_lr1Kn8@yut=V^)?weQa#Ic|ymchr^HFackDx=f|;!ubCD&HEz|X zM@;$pNs>_)uh{?eM-Pvg=Q4WDkh`bM{kmb%t;9(g&H6Vu(DLen3+vk+xUlKQ`h3&H zO!xE;uWa1iY;4_k=O-xsl1BBuxw>br&G@oGzb=g*)NE(zk6nKrkl8VHNJHuJ?z%fA zt?n1q3pvwc%#oBetYaSrS}=%k`m?Et`XpniQ)IRytgh{#=Yw8KS@ujQk45vn< z49|b|{Wq#r4HH7^Khn!b(%$%B`9OJMQU9X&seLN4aTbeCdL6pT!Y4@13oJxHWFZ9C zT<#m#8oT5g)};lPJXt;h)|;6%IB?11tAxdR<^K$tYR_Qv)qvdYU5y`*|3LP zx;5-(lU5JE-siOT!iQDzmk(A?AJCH63a+ z(cD?J@T;5cw|1J4{rqy_>bbj*F1q3T?v=}iX2-m)Ha>TH<(ZbM55L@8Fw!o6`d&%* z)5_!BU-kXU$>odl(fURaqfhTGom}$w+1}Tc%}ZaNoz~&ShoKVZwhNp7Qu5K{VQaJV z3I|@A*7DasRcpR#ue_6Y`utyY5AS}w%=PzOkqg{zzWT_obGdQ#{Q#d|3PV%UUvBSd zvvPp_j2haaz3)eD|6!i~i(Xf1_VieBXS%Jci^I6(H+{Fsn+)2e9`wu0r z-5Sqp*BScc^rPn?UDS$?QZM+r?^%+(Azr$!Os2c->a{ulufTR*S6kot?)3iS4S$@u z`|&puM{KQOp0ixH|Kq-s+`A;3YWVf)ANfn;jRvQdE?;%COLEGR3|@3(g!7+g&m>QY zdwg-rz`4US8$~`lIsJn^k8*vN7aNPSM@$~{>-w=_X4|Acz#fi;^{FAeJ*4U!doX5+ z^t0Gc@IqA`3$FP;XQ7HQj`9w{^1$$*prBANjEqroWpKQ`S}S+je$zleLVP2bch zclnv`TIB9?{nmW(uC1LE_Bbr=_qN*A9{nC3u(SER*ziT~_Qv_%A?8|TZolsA z;q_$I!%rr3jk~sK#NnskmKZum^*I#WA#Rp*Z?|-Rw;u}nb-z=*Z?xA?g~V_=ZTX1r ze6yu@g1z+Lt&)`;e(vG;U8>IcRG9L^VMSl$Hyu7wZk#)Re#!3mKb@v4o`%_ndKL7z zcD-To%Pp6@kB#{~seixW9@l*KY>KxVuQ}%4NdNQ9Kl>k@QtzXKo$6d`(Efx&9j~rA z>tc5N*7*GqS7$G&t5+Z2_}RU1(=^F|iXzWsgRnb{AQC#9qpcb-3I*mqxl>UC5;kT%(U<*-v!1Up6C zHqO6XKtnr4@^P!lLWRHc6*7w*NZi}AChYC=+dW$GUrSCj}~?g4Bp=1yTfC{x?WXkCS1tsknvTm zzfc2x2-RnmwZ@%`hzm3(Wb+u`rYdH&-x(j zaHAs%gTLRH_q1L8YUb2_Gc%6njLm^Pu!oM{q6WDq`XCFTH8{W zUH4~va`|?%AIe&F>+CcCzR@^rbn%idPbL)w22b33=Fxix!ZV|b=lpVVUB?ePI;2d# zl9`&&d*)B(jFon7hsN5EcH7oyK=9zL%Q8p(y38#78YVk%>;RUf%9s7WH`89;+!4A~ z!``l~tBtgQO&zLuw)y1FtqtsY3{Dv3JG0lWzPD4?6~VHxDR0H3|FM}SHf`4=NBwRF|St8r*swTG){mIm#VSHJcjCWXsrR$t2*Q| zt6B1{yaBfu2kWdZg5@@=rPMYHVsgh{k1_QtxfphLd+ldG-y7=m@m!DE zC34eqq5)|@py>y>>4DsIPj1?0D@(fH>-Nk!PVcFgHSc<1-0sGSkMdp~+&(VolfE-P z^NW?9kedqs4-f@$!ofOnnB4~{zwdVNPf2XmTfXzq@!$s^HJ`ceFOMT9CPdBk3OqzI zBrKWPnx$0S9J{X_<|#h^_{X*LM(!-m9$mcmTtfcxwB^g@f3(7O-11@TSM|+bKI_{x zf4E!;$=TU-*7N<({~SBH_ifia^Q|3IKG^c(9_sh~bH0A|u=%~8wv4|%V%PM%rKdVK zPCWWd66UggR8&K^VcUyh0w3QC);}5Nm^iP_wSMtGeb%ViUs0id9vF1oCgH?giFQ-w zXT3U4n`l^kqOjgj$}ju&@!q>{%@6(Tqlmcr_s8E)2;Am4uv^_?_so--Pxf|ipZMFZ z#9{mEs!!dD>@eW7)rswP-u~|R^WyJia|fmreX?;!w@+j-tJ|q^Q+|ot{qj{UkNpMf zm#=mVzcBgTRz3WVj1ReRyy>!(Gv2U6bN+mjpCvK86RJqLZ7P|74o6Za}Tw%~ubYR8w!fv;F-cg+_4+y}Io7>GWA&MTK_GN!QD-x7e(let(E-S=Y2lzU^8ZO?C8|+k1Dn z=CzlN8yU7H%eT14?PqIKE@m&WX&Tui!Y?z=!9wBIn*xz*>-PmkN)!*Sxp{||?k2^9bU literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll new file mode 100644 index 0000000000000000000000000000000000000000..6f489252bcac43180ea2c00f1d34e9f0e867c91e GIT binary patch literal 1688488 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�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ϟ^>iS>c2e@A+9ZL!8mIagS8Qb{(*n9stsi*h< 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%0A1D-2}tFk)?~LbXF#t;tOVz6RTxJPG-OH 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ΜA|%BA$CBSaR-=j2{64;zxjRwRk>Z@la8p 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�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

ehf1Trulvrn=vrW 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Websites.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Websites.dll new file mode 100644 index 0000000000000000000000000000000000000000..4bf3ee9bd78d5020dd05c14ca19f72ff85f421ae GIT binary patch literal 3272080 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

s7=jzf#LUAG++HRg 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

Yp6{ZT^377T~>Z4u#V`m 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�R{M~k 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 z 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⁡t$Fe3a$p9*ZI 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∓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%0DitnquS$_Wp@;&5I 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 z z{4@q5_dn7t8|%~m5l1rCr~e}}P*2H!1uOH$$gkdRU+mmC4XS1_XXs#k`y1E)(H7U zi4*Iqx@df_r{omo5+RU3l-M}thLZWX(hfw-KT5uYOn~Uj@_xD(vq5U1LCIR&WfmgF z$2`707yZ_EE*;JD+vV1GE}hJa+vV1GE}hIpB1R{(BYe$GEHXQyt2wcOwtq<{vm?5h z%UEP~guhw4AYx>8M1Xk;i_DG)GVg1bwc7a%j5@SA#N5nMI1n=sNT@jp?^Y?Jp1v~P z4GA~ru+UdOhaeH=eJm!-N2s1ib2H28bC_8{qRmN|l~O%9Wg;floWl}6UTn)_u4SRG zht8o?FLNskeLd6!x!s(Cc_Gy^YQ3l@&YZ`RIY!je*L2t}a{w&ABW;;7a0xJZ>&yiMk8#Y9YDi7M92F#9I-_e6tPb zIn}fJJl=yq^31s`pC{mnAM&KRjAa`}@g&I8W)rR#RBAb5av_E0c$PVcSpr#Nu3*VS zOgUtw`4meUVzxq7o8vIsrh4Axn6>69EUP$Xop~S2S;Xu{srBX-mRiIdg={isVfIh; zWb5$NA>>_iG0S)Os^wS6Hgg*bebv$i*=crN5vAy>mX0yFwweoAu3=5EdOHkQayXk&$r91(fgVC&33spdOtV6+b*|8@8{-f5z{_;DI;jV z*%!|_G&W>L&_Q!Hi_8c*Y(B*zGlGtp6EORyQZggxgt?MMW(1uv+pdZjnGy7@IiE#l z1f4h6v&f8~3+9AYQA%b6HJVG?MT|^4_Weh5EenlIH>AmI#XEjFI`sY5V93wrBo_Mq zD+SVQE@fGRBRBlnMFU z+`#hs-I$$0be3d1sZu@Oh&c!`T5?&65OWgJ(NfPsqlMbs)ndXMM=C|5h1%TBGKGb{ zZ=x7~%W{?^j24QqSQ=UG#Au<<^LDTC5_beMC{dR-`3|Fu#pM}2ZGsNOq&r-oc-}H5X46tZ; z+NXLfnA_MPgDf7FUWr(tfef(}v(T|fgWO};$3n+q8YJ0b#ms~1>5e{}4;g7mVz~!> zSO^(qS=TPN`Y_e8I~!UuDz7ZOq*&s%OW$=W>}JSB1UGWWm|T!$jr1yExj>+qOHr!v;~$j z7MYorZ!vj^7@3(?V98^VnQ6~knpn2te5DnkrIvKO=cbxvX4*EcB+3L}sQPwzROw%(P>cDIGbd^B~Gh zJ8MboBw}P{TD_%$MP{ZoSgcqrqHW2{v>z-5EHX3gCrcBH%uM^ml8!eSR7z&1{chRE zA~VyjS$cO7F)}mlrlpKUW~ONYrmiAJW~Lbe@>pbMT8Drp7MYpWB_P#Ll#-cg-2-;9 z$jmfLfTNp;k(p^h0jpSKW?E@9T!vpeIWM51nU)%mZ4sqpX4<%b zdKQ_PmJu)|K*Y$*w1)#~S!8C~jDUEo%hM5*nQ7SpWh^o?EhoSfC}L!0T5doNi_A>R z3us`GnQ2c2q~nb~)hsj9o(rgDk(p^l0r7b6PBAhw?WKS+7MYp$a)2M!C@Dr}rmYPq zVv(6?r2*GjWM(qZpZ)Rvpm7A~VzW1kn34ijkRV zp9a*i$jr0@0r3tIBQw(u2UM`k$IOT_(~bu?@b;JLk(p_y0#>oe%(QO;OjseM7@3*& zT|f?t%uM?}pn*kZrZokm<823(l9_402Gp|1%(SZk@px9G7@3)NJ)nw3W~TiU;EEJ6 zGBeF!En|_HX&tTBC=nww)BLQZEHX1K!0I0@Vq|7oh_!@8W~Mo<8de*rJu)-RWzAxd znQ0zt9gECN>upWOswI_@nQ48k`&eXVT7tEAtca1BX+x|fEHX3gZmS8;(o~PkOuN^* zoJD4)Jz#BRk(p^@tQlD6rBX68ZM^j;i_A=$WR1i6EXByov}x8-7MYng-Rg^{bc&Ig zX|t_`EHX3gQEMxU%uJha&FCdc$;`Ax)}t&kGwo?>0#@ayW|^5*Xsu+CnQ2R`HmvSZ zjLb}1VJ&8nnQ6sV1J(p7MrNk1v*xqN%(RWxMi!Zww#k}?RZA)*Gt(-pM_FWM+BR!K zoQRQ`X*;czEHX1~m(_Nsh>@9TA6pAqWMMvqsX4)^-Y8IK9_J=iffQXTq zY5!VlS!8CKcVG%uI%r!mGtD<}Ka0#v>mC@FAYx=@T0meWi_A<533Lt;F)}kPBCwQ2 zW~RjiItGgvnVHr*u$)C^ru7T-$MZI|M`ora1eUPK%(P*FrbH1VGt-g-3s_`k+I@j7 zEHX1~bYRvHQA%c}jSoD_A~Vw_1tt#_F)}ml;lQITGBa&fV8SpFBQw+H1y-`i%(UD< zXOf7KnQ4mxD_CS^+B1RHyG4x5OnV`ao}g&oWoFv4K>X2}c9EHBF9+tZ$jr30fekD& zGwt=j^x>kE%uIVDu#QD$roA1Qm@HysW?E(7E*6=Ywj;3j2oWPQ({=@xvB=D{j|2Vg z6)`e1?X$oF7MYoLDDXOq%uG8Lm@`t8l9_2=1vatB%(QO;r=*A&nVI%oU>%FhOlu5G z9wlOAX4=nzM_FWM+HZkL_lX#pnf7O34U5c7`#aEczlf2UY5JgY7MYo53hJFIVq|8T zUr+^$%uKTc#XTTmWM-N@sGLP+rbPtV9uzS$Gc6`)Ig89p>lxI>A~VzO2+AHUO3BQ$ z_@G7>nVB{?C@W3G$jr36gBn<5X4=T0^f4kvW~Mz5RLdeW)5ZoRjukO7Gc6-%Ka0#v zdpIazoQRQ`X)}ZNvB=D{oS>9+5hF9x@`CDEWMMS7MYp0IVdhe#K_FFEkV0jWM?nQ3)FB`h*C?du@h6cHmc)6NH#vB=D{ zAA+1yMU2c$YYwVnk(p_&L2=VWjLb~C8MKc@W~O-s_kLK!$jmfTa2botOzRx%mnmXo zW?J{)ViuX178q=JM8wFzjEHX2#Z}5~E zB1UGWB?Q;8$jr1M!HHQSMrNkn6TFK>W~QYCC(INvGBa&-a5am}OdB8UoF!spX4<6S zQWlw+mKp3nTg1rBv{}K+S!8BfPOu?c#K_FF`N2gjGBfR|U~P_wk(p`F1sAf&%(SJ! ztt>J#ZDnxwTv1A9ro9r}!Xh)%N`tfJi5Qug_GWMci_A=`2u{xtF)}l4TW~Fl%uL%E zobsrMk(p_`gKJo1X4>B1xW`0{%uG8FT*)Fc(~bl?9~Ut)Gwnoh1&ho~I~(lD6)`e1 z?YrPo7MYpW80`Cmh>@9TKLr=E$jr1W!L2MZGp#i^d%h?oGt>SGu4j>%Y5xYNED$j= zGtFSDVUd|>9c-RF5hF9xy4XrtWMA{LpM z=CNr{iWr%h*2k8|A~VzCZA~mPGi{Jy1Gt-9I8d+p!+P$`nr$mg*OiQ&ju*l4` zakk9GB1UGWO|rGH$jr3qw*03>jLb}%YinkanQ4#PG7ChE%uHKot7nm!X;0hIo)IxJ zGwpd>4U5c7TViuQD`I43+Do=#7MYp0+SbM*Gt<`EvY!*BWM@9TO(9t>GbDMlC?zw~{tBsJk(p_KhnU_HF)}kvvuCl$%rq~1EsM-d zGumBmi&8Q(t%JRYMP{b?+M8HpW?EN!a)l@*Gt;`;D_CS^n%Qo8N5sg?G^;&}MP{Z2 z+iO{5W}4mZdRLT^nQ3A6A{LpM=Cn7l$jr28d-4`hN@k|T+AG>cyfG}n`?wzVQ!Mnx za5JQ*-C0Sc#GB$>klyxG7J5^B1agPHiiO@PHbVN@>sjcn;uXjMd%{*x5B*Z8=Ehr9 zdln1*QfL>*Pp-V>#M zxQt(}fK0UaW_jm~rY(X@wwJI>zC*7qhh*AoSsp#FX|Fp0hWz99f90 zd=I_}wOev{7vjFn0J*`^Q^W}7G8B%30kdlC}03bW<4J`YRwO9rD(C+uX zDE0RM{H7YD#$Ld34l(tR&+L^fwt@KT#*hPc-w#BoClPZUa@ZcvQipnsJ&;LgFJq}f zOc3Ox{U}QlVj>}@?Vb-sJwNxvyKcxg_H>qzdi=#<$p7s7SPZ@JP8f30-prDKn5mE- z>?ylMJ$A&*h5TgCW0{DUg^*_ZS(cLV_`BPX7Q5*qQED36vk~%#J&&adF}oo*?d2>_ zBjy0)AG=|d$TOSwk|-tLszk^HzDT&(jl~l<)yPYIkC5$L!Em>JwuSk zNXMdkXc|l5Dg0GONI>X*mKP91$08)Og{1^BbSxa9sWqaWu@5180yR5B^I6^)sMA6r z(V_J$Lvbv6L)@XJk43512H^WINUzWwmhp&r5E2(!%JKnX9)k1>ZDR?00R0RZ80z{& z)U&QX^8Fx#LyK4ph*=658d}Y=05K(ydqQn{MXA@(hn0|#p~+IvhaW=j3$0)|j{mB~ zzXwB4v9x`Q-&BE&4Ncf5>Y@Lln2DiTEC$p=IytnC<-7jKnt^17wz1UUx^V+CBQ)bv zQBQUe&SkV|c4!gHqMJMxidqLC2K~{vi_KSKFzQQkr zKvsvQvA9p;7n~q#Lu*+45JPQ#J+z7C4~!pb^TyEB1EQW(jwuh#XGuam6jKq}$P&#l zTSNU0ic;M;W_xHJOUis4cWnKG&~lbxiTJt-@=>VakSMjI5ZPpqk3)O23_&06hI|@Y z!tyL)jzSKG*0Pup^DX2^Xnd`xXANR#zfOc^vbYgLZ9W}(l;xc+Vq51zud~E`qqT4A zeCU+JqMlQ8a6LfH--j+|X~ezYU&y7i6LsHmrU5wd1b zv&FHBMUQ*;WJsW+h2=F|dvYKl4%;zN>N}h}iy>i-LKgaMo7IpgM-|Hq^v`-ojKlA^ zD77>TeF*8{NMOkrq|-iz^mdf8Y_{VX4~cWsvP5EA-$MF1TwjWM%(!>|3>oN1W3gh) zUxVD`sA2iDk6ts~j(ee_nWg1_`0K`y5sr*HQI8SzP#@m!C}J_79_quDwbqi>&8Pe9eyW8sq-Cit%GDa5?DH-e-=Tq z9px&r`byMOix_Hiz9Wa_3Sy|u1&*^U^ta)v@b7tt>69o% ze;e*&$Wlih%QN_|I{aJZs9@QSmkCZ=x@x0Kz2J!UyB&}+i<-h`y6pB^ta&#LOypC zvlJsH1#-x-k0l&2;~-x+9A`y6Zv0mk{vCIuuq?!J&xM?HRI~hq_Pzl5+R@0;12L~a z>K$p{h`H?HTh!+K7Xx|8c^aTKxC;F|C*>bmBrW;ujw z!bgxB4*zdOse?ENk3;@;B(emef6hU4VHGS-;2dm*7{ku8ypQwZCZtnXa=oZ$56(e9 zjOlJ+xhx|w#%vICSUrnBzNF|02?{g)Pn0@|`{`haJuHXi$YZ!BKqA7*SYE)Gp9*n> z`JES~-bW0Ljh$-a+y@}{3y$LoP)Hjfbi=q8xTX= z3J#z0i>N09=U@^_Il`B-^u;-t3UP+Fviys4a2g~g-0`a@H5u)B4ALXKh-DPc!6HbX z@LeofIPR}N`h~l$h*EFh9ISv03QuEs6ytdpWJq`oi+eV{XolPq-psO`#s*|$ct(q; zr_)&UI^==yA{NU4eB}p83vXh1^>6%5*M7J!hx`8~N)5(3fE|(%p3gEFF})#E!z)?Z z(B``!)5C4Qi&9S`hWao&Jeeg7^-v$?gjcb=m@E45iST-sI`lL3;ll8wtD>F}NoXBv zUL2mo(&GZMRUyxYpJjOxdEYeVUko?2ic(uKR%y&H4bNmTtP^V>E5eIe-cG|e&R8p0 z6K?oJl)8*B=5kQ;y71mC(=eW&hLnb{V%h4zH3L!>Uc<5wM7xvcfwOy zCUeZz@LeoVBZm5CM|dO45X4abd=Q@Ur>JMkeEk1W^PccLmf5(rdWe=fksE@(}X? zg_xHh*TQR9?nTTFh!)YzvN;J~fI_?@GH!}e|Gb1*1Ef>L za+dBR@J%SBTZExa#PnE&u?n$9#IZ~tiLnX^i701TT#U08&y5igbu4RAab1N(N5o_N z(K_1`v|kWUL>9|Av}ZWv_K34AM)Y9@q+f*TA5m&H`fw&BAtH|@8ttL`^3aG1mMLft z-Is?)SpOBJ-hBo0N0b^Bk<4=Q0elAx86B~Y&ko3xh%62LhBjYV zgDW~@Mno~o+57S97LeHyZ7f|8^D86=KWi*Xoxe|~>G9M$Kcbwa2V!iHry}ZDbg0J# zc_t!WFG@A8#%dzug@`PccTmp=$g+sDEH@D|3G#A;!Aq1nfS6g3S0b`m(r`@kA+JT0 zvfP`DU%7;AjPNyxQjZ~q#{A}pc$PVcp)vnX1pOT@+V@q6DMP7k5l5vUrV_FvBFK(PPC-77sApM=m=?(X2$NBiNf^qMkU!RH0OeGn*w6 zF?%85PWoM6YEJ^kxSYPeLV9pa4=4RXFU2fci7O3C-QlcY`SM=0)a%Q(c)IXK+ez>Aw7+GoK|KeMt9| zvCc-86KD^`OmzBn6{W7BJrpz9naA=k&i5c}J=0mvLYZ!{kSwRKpD5LDiC#;D%yA~L zOdN(Uh#`+TD_Oh{Lv7A;*0Y2lhT8m;Go_oT=YEcP&Y91W$1z3DW)?fgtZ>@8i&BF) zW{q<>%RyX!reN#qoV!>ki!BGT-s!kalro?XUx2*nOl65gAFhGC?cB$5ZY|d5AzPjF zOHvxKD+AB(+ClUc;PhjWLvb-)?VGUgt!tuLGvEQfFn zKZ=+-=P8!UxQ5q5PB{}SqMo8vI7=YkII~&maP9pUa^6|b5|5bfgYdq@=@%eM%|}ca zSq{xd+lSGC7#Hz8v>2$Q_ZnEaQgbHv}O4BI{YEVa(5mBt-h!M5!GZ^UpzsMCP-2 z5VICCJhGDIF~qzD85QXa5v7JBhWaoqGL2<5VrV>%kK8Zi6}+iHsmYP8Ea!0_JPgT< z%)~krji{-s@oWK^6}gI~Gp0Iug? zWEsnS7-QQ|>Ud-w%V!v4HIP%0$xcz~`Wl=!kZ&V%Sz2+etA~6SSI58Y4~k zJp}5F+c17;-KHrrhvg%*=U0^aC9;g=GTL(!@_VFTlqfY1FSyn$CYA$;p?>Zdl^!kXS-|!9MHR7ZbZjRViDx_s7#hKI4_n$`bE{V9KhHpgA9)HjTNOR zcY7;jSX4fX_i8-DLPkVYvaBD4UnPay7iDvcQhhMyn;>aX^cI!+c^1a}HOPdh{VZ0* z(Abz7)ygswF*G)2L}hzKsTQ1H9TRaDM3u4x;re5R%$g5H1EbrhRw;ZxQ%GOK7EWmxI z98w;Y%JMGmJ3Ap;qE4}xu&r9i&M2+7D3yk7oq~KAmBq3G$CTE4Yodx-C@-7Vd-p}P zv1B6V5=tG2a=~f8auIV4ayV)gOU%po+XX{#UPSF|wgEZq=8*Is?}E|zx?L-Ssr=th=H=tG+Kc8X59Q`GZwG2XSIX20lsmfJ8k zK8Bd1n_0q_VJ{)U(bm4A)O)zrH9$h63s|agO`!D_XLKdY8@MLWdW$RCzn>_Tvm9qO zO7)0NVi}C{;$KLg=xUa`5z~Dro}Ho_Svnvl95OgM15aVpKjRTY=lk8!%UQw^L+AUw z(QPcDtHru#YP1VaD^#k6#wz+VEqWEp#8>cNknz#`Sk`0Tr$Q!0_Z}chjX(@-D>Hfu z%L|C1ZOx3XW9hU?tc%Wz)-aQ#Z4JP=^9<_Ajm}{?gX2!?qKl%-STfNbS{Hpf+7B}d zDs?BuGp&n0A5F76l4Uriv@W_VdKXJN>Y;Vf)zM8X$1o0QUG&xHbR2yuRgB|K>!RzU zi&&20xYN4mrf3akJ;mIE{)tDgz8mdf`33DshHQ&2W;u-ZOoHr;-p?`!$9*Sq%9kI+Nup+Png?Kf0b}D`Kb*k3{?8oT5@T)I)t(7oE>C3;mpny*LwH$+8{& zOnvxmv<)MKN^L_wm!swj(J3r9(a+l*mftb|p)ubQor*}R=lxf) zZh`;(M|1(pHq0T<;D6tYzRvQ+8r+-kzx6KXFj1-o9Oi0cS-|5t%9VY$sAnFIdmL)^xJp@m!g0R` z(#Pe0kBHfT{i5}a{;njJm#|;7zHyhUhUFakc@j$9<7#5L6W6G@kb7OJ!$m#4(Vjxc z{jPkLE4VkUf{b=GvRubC;Y~=o%RgC^+KQO%kcV7_ELPM**Pn-7RV*hFL&su<%Q`}o z(hx)SWV@1C-sgHAb?su=g8ia;7PuN&He$c1o+n)?_lkP#7#kE*;L2lp5MzU43SA8> z&Jq!`#N|6ul)4>jaTN2CE0<+8u7_05YF8OcCGG_jv({xw5v49+TL;nR*IjWeLvbw5 zKsLHcS(=M54~LYyje+)BIxpUHWwRW_vpJm?)vkJ$F=(?dM#XNI z?|q_FHrgBl+3U(@>4%s&$N^U+%Lv2_g&c7??-!*`^R`a9(pY}rZGG+9&+;P1*jSYM zpR1L{h-<BtcSR;>Ld&XX%L;%6ZF)@lO|}7S6}{g;Mil5?Ru*mb)FYFs6)U zj1}V<@>I-GmeF{}aRO2h;~6jN(IMs{q%bC(B@i(!kfNApBRievIv!nmH2m1C8D17F}@Q;sZxw*s;4X_o8@ub{b*a|F(oYb;ynn( zyd86$S4so^eH4?x zl667TZiCdsl(L*VscA0AzL;8;{~?zq4zfR{_asrzcEr%N<#0>}%e$O!b1Y^*i?$Wl zW|TS^)57u%+B_C=CMJEdsOJ*)D;x4{OcBdLm~#9U`N#M`kQ=In6oUW z@ZS6)#49#&ny9A)F|80&Y>pJfc;Rl+Ikti2eZ)}z+!pKmuqd^g-_Zxe=CYJ=J+|0# zDO^ujtbe8`<^2v;6H#+?Y!b_0^iL$j6I;!4p#t+CNT1k77Bga!A@Q*pkBEAH;+VT) zm$QU$%-yku=^~~JN=(APl-S-Z>oGRwK<A`94)1^{|L4irJeJ?l&y;Ud5L>}=8U0N8HqXaeXNgid zsE2YGmc=HsRG}VPYg!e%i)GkZ@xFU)Y!izEZKn6#ug9j(7WF)eYXZIRej~P!WhSl( z^uBv@Y%@zz66WgtFkg+eW{XlT^fSGW+ZJ2Evc@6ak?oAFWSPM4zdnrhpCd|LTq@p4 z)x@T-OvGH2-bo#ZZD7en481G)GS+XdD77DRT6$Mygs&?Wg+H=v}WEA zYnvxZ-S(2`pC4jVSpLPlj{4{4*cz5-+$(AAt0lIXWe)CNwDxr^HZw=m^Ye1Cp73{U zG0O?mL+c4%Zr?{m%sZ>Z+_sg9{FL+5*Hq zWte*ki$C8BhP!K7=$EO=hU5Hlx3bVLQ*DFX=T3P-)I+}#Mllb#^H}It!YF36yN>0d zH!LBUvG~6TUxuEYGcrJ%bbQiFgC*UutK^}6SW!bSFPXNg{E8T_# zqSVlvr-#k&zqzq(GK(gJLEahl( zHe{ZA70Z6Kc@gAMcN5DDw0Q+2*X_Sh)I;AxmqO;dvsuQK;e85Zp}T~|Fdly$2=b)6 zg{27FItf|qwk;C%Y{Ir0AO-GRmP;FP?m(V%m$58L$NQ!cxF)!-vs59*0x5DkpA_{B zK#UWz)Sb`bgP3^8OYRDmx#RFG16k?T@UUvuNla+OId~NQ|v?AsrRpDf1wr*79XqMjX_ z#hBmkPGiYJ42}7N?n;*R*cOfX!|t;zt=JZg`6KS$&x(4kBZkKOad!sGq=&?quX9(k zyoUDBnE%S%z>jroNI`8uRDeH7v)_W*YPVb2qURq0Kbr zzjG%Rih33yhQ|CwcQ#8DVra}ay7#k$U|Tfie{{F7{D>GD^FO(hpBMFXK|M4!n%%i9 zZ%qX{55wz%TDwUjrr^DQ!JOUEgJJT z-P((y)E2ad#{A#zbe34uLt|d^6tcXAdT7k+J@qV^*e@FM-X2qts3#tMNMqi|Glj*2 zZP9*p^eksN%=_i*X=J&|`_H}oBDO_i zKF~v}!xW>(e$ki@_T;dUgTYP9Jm8fJvXtf?vO}N z9?K5wdlbawDQ9^F`yL00^|Y~ky9w`HAU!-T+!3js1k^JY(#uo8Qj2njIi#PbH;WDZ^BSbTr-;RZm~D^*Pc_Rk*j5c>u*Y|WsAu_lv0pp_nVa|o(u&PK6cV?4<$O}LKHevR{#vCPG`Xul?SjlUtG`fe8w@ggK-T*OqS;e$H?DcpXvFEV|=IlKeFyRz-r@r8~EZES#)uCC^s&+ zYjG&9ixqd5QWkCT7I)|uFIHR^hee80To(7Dg#xATnap$UroZ>U_QR8jP0l2_NtVtr zDbqQ49hq7r!)ckj1n(i!hU6t>x&*~<67)A8lk#`ky9VDOle{cF6+)S=!7s@0m)pAq z6aOrxiVA#eNcD*_-GZq+Ig*sW<=#D*5t)45=v=i1J+TnXg$#e)y+^PRGCEbGq?G9q zG?3x%z4r_jN2VXGdn(HG3|2sfzX0DWSRI+4+EX>AOt0WK$nZDedk32%)0N(w%1)Wy z!S=}TSK|8wyCGAlC;gg1nLfe($nbaL`v$*5CK0XISCr`+9E%KpNxoljGBVxheAA#z zzu+un_}lXRgNu;4+?uKgW%>tKdNMlGh064-$XNPoxWR2csYx<0c+@AQX{y1&r#`7h zGBlWan%FyIy>=Rr3=dZDNgI+8!9hOhNir&U#wXvAj12~-dwV%7cM^Jfomw0p{4hfZ zeHrgB`91vc!MZc0@b~a11~)+Xd-zj=fmt%c-^2eY*a^bl!=D~J1L5!C&kmNGEvMq| z;V%fzhVb|B7X`!S$P9lE|9`QFRd8hrfp(9UKJV@8RzcUWV}Z@DByWSB&XB!K7vA zjK-w@IvOnJ$;_~173pk;_Qla)H%J<~@|{Hz6Wk4XSAm|KAvqp=1bKg({z4GR$zVCE z)S{{%Xhrv;NKOa4K@yjuUz17B1b0Kkoxpn}=Yo$Q;!fZTk_*9dG%AR8#2vgZB$tBS zAmR>Q@|tvp7CZ?#zK%w6lAFN~kQ{C4uU?Ye2}UlK?bM~?v=Yg~;6%s}TAo@YkAl}B zo2W*$AbAoDERj>yrc6(g=fO^p+)wC9W|CLI>5$=chhZkko8U7@6RNALN&X6E`bD-g zsZ6}EZ6xo5oggdd%IrAF-@)mSL*?RyohSJi6ju>q-6woUYe4cjn3~38Ps-EZjv@IH z>;y@dnEs^}9WBaqNJn}qI3-CUmM#0nyGU z>W^X@=2PlIQqUQQ*oFm^m5}bV4Mx*cg_R4CQFKN2Gf5Gp@Cwn6tTv)bsEXl}<&;sC zMp6R%UeVv&Br%m%kW(aQJn0CD_grQyr6(kuL}V;w5TpfNkzXURl@XARB=nQ}^7$Y_$(v<=HCT_JPV(qD6!8WvVw z=?nQEiO7^!hCzlPQ$ZOG8H-E>WfJ7mMfta5Dk?J|$^MXkJEo$t5EAjP%v4gALvoOa zc~w$2cyc73=)GbuS5}-=|J@pumC`;5($=V~w3QOr*;lT`*Gd=2X%f-$*GgZ=J7lUW zLm|oOu8+u6S4KmM(fLLhYPp6o5mJ|=iYGH5fu?l-m87P!0FsHMsVB>&cq5}&i(1M$ zpR}h;E#(@f`t!Wp8ugXCkdGu{dFm_AAYUwc{)MLcMtKWKZ__&gp8NyJQk7~rNdqO( zYHy1L3Xsh9Bqb#54E>#Sl7>nKNK%sDJjn^^NV1Qlkx~#cjO2(Xx|Gm*HCBrGLH(c3&EZIw-sz9f%5*$qi_nXU&(+9`)1SxNr#C~ssYw8c6opL~*xrs|*+`c>|)_Sa=k=%VP5?j&MO zyC}sWYw7q9TcfK|9rl;}?rmEdpu2&yrHKZkpSe`!0CP=SG zGSgSt1sO*oGJTapkTz5$8d1yrl#`xB1qPBtdU8=_Ld(-%x$Tp#lO?d@LO7Ecj>B&b(Um8hT z(Nxow_*9o^tPDhvh`+ZrT}ciR+wd=%YKD@|6S)n;>I%t*Op-zLya~xnB_A?rNz!|w zAQSx$on4U3QXFJ1kQDHw3^Mbo$n7&*sRH>QiP%1~l{%2M;w*)xnxiyEJJBSfojFP* zGJ|K+9U79kN+)DSl8DS)r8hFg%E)=mQwAgRHHnzlJY^&@xiR9;SH>e#9wYvIWg0S3 zFXUOl0%aaD(@Dfx!2)F|GDXtM?YvM~gG?n7v7HwxTaf9{MUEhgls(A&Od>{*MamIm z+Lxp|pta~8t8xmNC=xNR#mZ$*j)d_zxI}5V&fBM<9==40^oc@SV~LV_{eOG-b|n*p zd-!%GH-vlm4y7=Jd-x8;gm4evsg&>}u7~ebDk8%@e3w!K!aaPK(g4Cee7Dj9!aaPq z(gDIfe2>x{!aaPCG62FoJX#qJ;T|5XjDv6w->XdVB(8_=Rc0f@J$#?C7#Z&2`;=A4 za1Y&S2qKcw74hI{xSy)M>;c6r#1)bNm^Q1GRGL6gP z%qpeYo7*7~%ac+a0{L#N9L-ayBOy~s#Au#Mod6lziq5L2<<#ml$V`$!p3H~z7$@6F zqb`MrUt>f&Y1Fllp_W{pwCWa5q5@M$#PXz7qmkL3NM_QhN07NlA~NaJ)5v6^dm!R& zbA);cnIa@&UJ>eTWcbc@di4=9d}lko`U)9wbt|?{2K8^qeiAXS3~Kz%vTx)zWG17U z%#)~qP9icH)pW=tA1O1L)U3$lA`zKPYCdFgG?AIiY7iNlL}W6n4l*r}$)c7nxwKXz)t(Q&hgiHq-w@1+)%&zuA=6jM!o(x82 z6Wz%ZPbcP3qabHUe(_{HB$Ccs#aUcV^=Gs*m_(di>9>P_$ky;(XRkX2MpQl0zkl`xYK`n<2SJ4jY*T`@c{Z_4q3|G-_)n>?W744|DMTVS$!Rigs2fA;VR)i#h|sRkVw`5W-cotGXQRa24&Uu1AKeXg75mGF(Nw zsr!)OD%xF*L58bncl9hXTt$1RS0G$Pd#HCHTt$1TPtXom(VprXWVnjI7DTt)k-Wg%Qe`>EAD ziL0Xh)h#j;s-peXeLne`#?=1m=bdsbW}}KOQWNfy5{)XlNDYS!M-^SHriZM=x#(gw z2ZXEW619LQaaDAQsv*Nw^cS@#GF(M}QOhC2RrG&qH3(PH|EcvLTt%0vO(9%Gm#S?c zTt%0uU3e-~(Pe612v^bN>QD$*(dFuB2v^Y+>O=@v(G}_p2v^aS>H=;DRdl7g9Kuy} zmAVeXRdkiQ4Z>A)wYnF=Rdlr)1K}$At9k~)RrFW&3WTfZ8a39FxGK6veS!>E(Y5Mp zWVnj1RX-uaRdk)2V7KTSQ30-^>(msUj16!VU9UzU!&P*>njIOgq8rrw5U!#dR29Ni z^f%Q-JA5wsn_3nbuA&>&s>pB^-Kf?@hO6i%wFxp@MK`H!kl`x2S?!DrSJBOCA7r?S zZc&FI!&P*PItm%CqFdDo$Z!?is!m6StLQd$J~CWIx2emJ;VQaaT?^qVx?SB0;VQaA zjYd0MMR%x2k>M)3Q$39gSJ9p7Wn{RD?ow|f!&P*b`WP9mqPx{s5U!%T)sGOaqI=Z% zdt~3>D!NBa?#b8ySJ7xS9fYfBw3-dVRdlbK55iS+uc|<}itbY#2v^a4Y8jrYxjYx$ zuU3I@72U7afp8T)pf-kZ6+NIvdJ=a?o*A~M(2)euo3gWu4zj_O8FpKdEHY@WKPYN?c7&OK(3I8cJ8YcA+7(E_l+N@H6Q~>#J$`HY6A!#1rOC0 zoD4ENr|+8GG<-o)A!2>0G3S}cTnZxZbZgnMs5d+kYF?+s|5km25& zR79yUS#65G8K|AD={gla|#Yzcu{XoY%NoMUaWC+PsPhLa5)~RNYWYIoCnvp#9B*8&> zT&$Od(7h&Yjcg}$ROZw+ z`=rdou&|ukaVdeEbPg%zo?ANyDTuSm+}brrqnMTXkK}>w?0Wl z%ad12c1W&i&+fFfNb+lGA;U;=dXg1#=Uck>LsCG?3wc2j^du-HG_Qi1?GuYK1+}J_ zDs}*U=#u&MS$j9fu^yK)(QcavoACi`*BM zb`4U8MC=Poy9Y6b$}!H?o7rHz1ect>AsBPp%z zlkJ4oqKp>fljD>rqurDe;H_FtdjR3BT2A{D!fRSydk^6?Ew6Xjr-wWOXz1-gMw{!2?9UBp zE!t|EeG*C1PSaz=cAge?n6`XJlJ?pk$Gj~c>dzgtn?C77nGRak<8tq;dn}i*rg6rIm(ouj{Qj^u&TBC{1Gyji)2Dl8|g9e^F+HRtfTOh@4lHRudABs== zUTcyT4bkzu)+FsHqL!wATubZr0hIByBoTA-^^hM8{qCJL~Pi60&s=b0# zBoXaQ)jmQpQk@s)BtL2Kf0z5K5Q)hAq$T%69$x{va{F1!=aY0K)3o-Gs4`URNTzGI zWjmp*F++Rgll+vKp(Q#c=f%I9&(^{r{JZ&VEd!(!^-QsZbF>_gDkNeF=V%2XtBcCa zTup;)ArYCmS}`f1<(a3I^GT4FXP)*MQ}Gttq9r^nmM|*7TWpIK?#bA|GhFp=)zTyL z8CU&VwH(NlqTjW|Gp^gT0+8w?;y1Ewng%&cUlr&q$Atd|dVK(5iV7 z6FEqMJ6+eSofV;TV(E5l$l*x7i3JI_GlB4DUHk?Z3Z$`&&eJYtu25wAQAJ5)|Nw}#>nN_tF1#jQ%OW- zueJ@DZn#?Cr|m^%0It^eX)(x*#5UZook3-Eqg91mArb2pqt*2!?(V@ct(VM% zj)G&_AfF7TUUy78gLXz2kmt1Lw9B4E1*VdS^Qd!LEHeDW)OqbOGW^8UdF?eayq7O% zAGsau4}QGuQ$Vl6Ie5y;g1Bzxu`S~g^wk%*r8hn63i!qlHd z@4cic$hagTb4hcNnUqb=>#|k`nWZFRUYE71$ncSJMXQ4hA1PO~CdeeAx6j0uzp6zd zla55Rb5-jsGokH#P3!HGnY5j+X_L{;O6sh8*++83lLwGXG**gj_(XdFxlbat;S=q>Cvq$} zOH)17QlArhP|9_ZXWC}SEo%8L$#X6H#kkB1k{4PrpZrbor?we#jgE^jI=6eNHMr#U zjnI0%(pvZ=Ib~jH5tqG8fGc)VJ)0+S6+5Y(9~rLL$#ex7uGqr+*cUGBQAL)razA96n&#uq&NnMg0`esOGI>T>Fl2d={%d{oQrH5Y? zTTHgoog}wj6Y{JjT_up@(PMm>?@99Nu|643l21=@O|~<0Bt2hGl3$PXBzyHk zZ_7*xy*FeQiO7`Dhd?%0k@G64kAxg15%VgkPw*tJkCoDwc_RD9J6h&adbCf%n$Z0p z{SjnTXZrpGNg2J=4R1S#>T_AWl26i7rmWsnN?-_`^X4U~q_=_mNTPYt#S=OAQY4l2 z(LSk4QbiBkl)Y}`U-VuiNmc#&t^dxwntsnGO(|1Nk9S-41irqgp(lm#^+gRmEhKTc z+{-ofERd`uVyo8F^Fltpp?e_IaxJ|GB*9yH2h$Tlc_XSef=fcS)H8TkRWNU ze}L>ES>{Q+Sh>ZzWRP2mBU#;{a zkY7kdrj>3(-1)Md)_N&OB@&TotyhMunIkiidM(Hf5|N428$tG6mGf$&w}PA|5t%l6 zM@T|lw$oPc2}w^PGHvxikQ=XMJMHulkcT89(@vl0N!*riucx^4-+tI$kMPMF+N$mK z(NY59PT)n7zWPLnxD$BGlNpd9Bw~y8(-%M{k%+nX)0aaYW|Eoy`Z~yK5|QbzZ-czV zn{EU2y`Dq`lHQPOF+h(&X7gFOrUUgekb@+moq_rl$YjiGkRA(}iFpmupFmb+mdi6( ze+}75BH9_Oe}WXI-ut8peF05Ra98#*hvcm%DIhm1$##b75s*hDqMf07cF4eVva$`+ z^Fv0Hh{`rhS0RO((N_$qDhcDuIQumB2ogwBjr{9NZo?`L?SXH^-{j6#M_jk^h!Q4XkMfAW|(SdX}LAV z=xrg>NW|6{qj!ab(B)RjlIA{6*Q5lv zW=_zHLbzs5(91!@o03&&s)>3vh62kJ_eJ_av{QD3ocmJ!1f&{?nEO)w0;KgTc^_bzejU=AL|mUP)9*u4CX&CW zEZ3hya*~MOQ$OVH z<&$41vr3N}B%Ci&pWL1gOD78B>jyYv&tbR!WJa+iJqnc0ra?AEU%vy((*cI)?%Nq}?FJ^FKG za^YNbkNy`j^S+k#CtCjk5#J{h^(R_S@BCrPY)V6N zSl=z%3GL-0`XQf)x^YB*EF};@XQ!gp9oJt$@{@?(dtCnr;ktT4kN;S1AFit>^yH8p zcVs&!^>mPNB%+;@dNv53ul}y*gYfz4@4Dhi+%b4cuPQU4wK%2M@kusX(^Gl}v@^St z++Sz(?vPa^Vt<{{2SARckx%8F)rUi_k%%`$&g$c&gywZlpW>4s&Fh@L5L1Z}-y%7$ zFZU!WAVz$VIj^txO(m+<1$~=Oic{u-eh=-;!Z$Il=+Ds3ViK{%uITTOX?a<0)vNkH z$aE$VnX7u@Cvsn$MHRiKr}QK$a2-|jnw}AvjIHR}g64i*&k4y(Qs0w8kP?+;9lN3H zXy3u!Q+}Bq_vXE4w%zb?m9>6%dcqU^kxvFt%TM&|Pvssw z*jE1f|5DEnIZh((TEEm)$c>V6@4V7oPoe^^NyOY=>1C1O=hTgH z-snw`;inDX=xvbU!aXXnkpsd#DzQ-z zvY(DqQR|Wz8btgZ46)2fjAD@H$OMdXkWR=1jISZ{=(s`jHu0s})-0|c- zWN=rygHDppc+MG;_n!PECA2&dM%Z(2FMATdIX!V_)RhwYUQ;%s352&{Hlq!Mw_$dp zGlaKccB2o3`$i692!#7a4r3IAzqgaqm;mAL?c_A3L&~hD`*5^`xs3S`@oj@ro-Bi; zJtM!RliOGe$w?xqa zw|&x#+R0~xzmUhysV8y-2^#4=i3;2#5q%?QGJHO-7#cEj>55gXyJ{3g z=6@t&-BqI;GE;lXCvY^Q8Zrw>L|@g6dNLDQX5DD&lOEKLZcIiyeC!lAW_fK$^Sgr4=F|GwChMp8OI>iNVa=&4l=qo9Ty~} zjjNDFB)@xdS4wET${0_5BEEf8#t8cpb3?pSs2{2ydUd#ux~1pL)h52ydTy#!N`}zH)!nHx@#^ClULrzOe!l`o@&89+KY1 zH>Qm3kkB`#jD3&-RcTFW-5VIkAYxyLZ>BXg&O*e#xbMkT2!DsFk#PsY-=S(`JcR`5 zXcFI{YHYlLlqWgj$!95{ZP>&}_%g1xq-{aZvl+#u1ooGdzZkYM%0o_*h%2&IMs>)9 z^YYkfZPbU%ClSX^Yoj@&PkMP=L>lcN!$`z&5ovUTRLL$gZH#`9`XnOL#`q4B9+|er z7)Wkp+8UD~;n-j8jG2%e*kA38MN&fR-riW@6O-1xy>T5=@%Y}wxCi0!y^HZ2!dJCj zjdu{fs_klgfp9AGQEtRn2OiEpD_@^>)y{80pXh2-}nK-HM76* z6C}@F**69lb08Lp=oR6zV~0n?L<$nZ1&3yd4ch%bPJ)upd984r-D z&`Vw+E;L>sQ=dd!AucrDBU5&j++T}~e<3wU#Qs`j1m4Q+v*4M$le5@J?MYN%Es3Zb zi;c|4@V9i97`c(*Z|N*CzCz|0+WEyWk-33(elbcS!{0UfpHUGKwL&h>|BRZDC8Ojr zFEtvVo&6+YnU@+Zk!ezo#xB}o%Zv`lbSJ6mNe^TKW2owrEH?%~B1oEe@;yZS9Tjos zc7-tx?Ifo2IqtTqlpF5?RNSK|caKCYmDH759HO3~N^rIzQW1Nu^x|6)# zxD4ScvEGP<==4jCIJ!3&k0E79#FpP+yoP+Fdnse6<=>2tkfih^>J(2B{Po}E*=Qv9 ziMXcTXcUqX;9oSh7`i7>0sci}i%}ez$E)Sp#a5#{GG9nUMcQgqM`m9_nb~I4N9GcV z$ZRv3%S>qdY&Y8ZM4ZWNHwK}daQp_n#~1<0j^Cj77(e=^5?8*_#&n;|rFD-sYQFz( zwfVzn0O4x$htU$k)#j4X0m9YhlF0K(Pgvhh8HtIZW-9E7XQ6=N!dtIbto zwkL7b=Blv-8Ll?hj8({RwYg?&M24%)bz>(oTy3r!2a(}wbHg|R;c9ckxB%g5bJMtv zcDUNyH0~qA)#jG*92u@Qw~W7#;c9c+_<{^qo7+Z`4{~2{wTU%SLAct)8krzmZSEMk zJc$Z$wYg&yMuw}+UBf_ztIb`b1TtK0?im#zTy5?dH6UDV?i=5r9j-R_jTXpowRvE) zhj6udV04FYwRvdthj6udXbgvNwRvQWg>bcbWK4l@wRvpJf^fBYY%KO9?(XFiqxawc zJ-VM5gME^auFszsGo=JZ4wZHFxv>y3okY~t=f(<1XF78b*Z41t^^gH1;>dkrY=>;7 zsl-!oe;WHB`$@#u^rvx5O6cf*X`J;*dRm^B#zRaMRb9^OwecrpGKrYiYvTiC8QmEW z_hjA}VIO7xIY1)r$-FU=dLqwKa#G80jeI`&isYS<;**$aTG+Kg^kfamUq;LqDdKtl zQY7z$!HGY_Z>bN?R`^; zs`c6E=98v0ug}I3OtlK*PJD9}WGBX*_~u5)b^2bV*k1|EosgF#VjCtf4?@Hnb7DMA zXr6$GH|E5CPiS6%)ay-OW2Lz#GOt70kPP(XK7{YMCN`f#_>OC0^DhYB14&|jf$%+$ zBxaJZ1hian=Z66^l~2T*fB`eVlmO2wnW;c{Udc=s!t+XQmVxlRlABc_eCIZWSqH** zZc~^|AbjUG+>C_qo!fA;Geq3E9Z6dwrP&)I?%e+1$q*@_KA*}Q=@YRpQkfHdBJSL# zHfQ=o^n|qLLZ3{bmeZPRr34n&q4QaibmkVw1`?4;XGZ&`6758oM|>jQ*NZSOVk&<7 zEWLRH!f&6YHy`+>676I#U-)Dx%`1bMJf61)17FkMUKB@VW-}e6If*zbGn?5U{4QP= zGarQC#mizU5I$0}nhu1Il&oesPvUA_HglIJ@_64y%ahH#;1lun|Lo>7$N~CY?-)rA zGZ_EBy)LI|`{V*;a+>p{1j^!V0>xbFNmQT--X>7Ywa6^SIf-g+L1rV)NmMf$nWaf& zWz)kMyGA&gH)nkC!XbV%pjyTiFlUJF&)UgGxFJQ z*DMWrMIzSSHLFMo9Vtc4+CCBAmM>~{#Z(vR_!5<^wAmMOgG97b+8hS?kXdHRn4=*{ zvdBysbCQ(Myvmw0eDaRgtE{;bQw_Q&t7sMTfG1Ib@g!niRm>B}@ZHO*=6PiJ?qyZ; zIx>7kU(LLS3}4Y#GoQ;$XnDRi-}xl0HN7EhnhE9p;=2cR%@Pp4E~sl(gybwQ*S(%u z15$`YEOR}x0mMoyGxg0DkWwTfQ{U_W+4-x?d}DTp93~N&Z_EJ@@ulI6w1f@J;gB69 z**zHt5qI^)DAUlK0uguh#VFIzoDC^K|Cf)ZYGf{k)F4qkStTX3eHxp;`9xf&G&WCR zs&={LGB-2-fb=F2%iPSo#hJ=7)7*Rr8Au{B&CQpP0s~~Gh4}$ulZZ?UGhU+q){T~C zQlE&?s->AzO6WSSwOJ6t`>VC7bLJ~KuSl~Pq&JC}SEN~9N@(5Nm|y!u%&U#rn%kkL zEW~lq&g=-`d9^cpLDtWg^J;Gnf*c|d^J;HKNeRuXgZZOR#CGmrF2_{j7eg_xPUbp@ z_{C7P)5+Wh;lA40-0MkHfS0GU8H0@YB|@~*#XN(I_$5NL)5W~viLC0ysV8(bU;CsI zNjI}lVzDo#g^eCUe-(kGyE)a9xO0gf=4_udqD&9-cPXL0)6cvJ;U(;6-h|YoyEvlv z_BS6unvsa!+u!^X(jVUp8DPGLOu#oo2AE+<ptGR4dHd4U_OHIx=%1) zL3rIKntwxh-6xvy19CfGq&sgnX-y}Y$sl(~9(j@u!f#|uHnT#ej*&;fWHTS+IDKP5 z^vo${&=dN`IEm<)Q%px@Lfd(&S=uLWXkJszK4^!Jf|=$J2=}p><|qg+^DJ`$gqL}i zIUT~wGuxaG;pLfaE`#uT%`w+Pc)jMBTOmE^DnQ&dnrlWwhLMQtl)2_n$dr%q!onlz zE~t4LGM^-)Czm~uM`a$8`Q|I1C?pHa6iMY#d6#;oO|sCe2@%&;Wl0v99eh%qWU)B{ zvWn(ak7S9t&y%=g`4=QtzZ%LM#4#$Ym0d*<$X7WSb+ej<=eJ zAo)qedH7cIcSvHiv(3B+$$)mYnKvP&6UpV-Za#q2CK2=6ZvF|mvO;EdnC~GkNJM6b z8J65TDnm!gPBY*WabCC6%r7Ot%d^i^Jc$bM^6WERWO#Y@n`MyU<=Jmmm6_1I4w!X( zGM)C<0ka$0c{EyXpBS?r+IdSNwoi=t9WvrqGjT0*%p8M^_|;5gj+v8XCN!_(=1iZ6 zdzHt{U(wDxTo;@+H$f8Pz4g=PZcpUVw49dkjCs)~zmc3Z!&1nj=_~51+eyxu4LphK zndi+GJ`raH=gmG+0t@@fy>rnV0$D>M_Rd9f6r_KI%=}?afQ%*)nLo_wp2Qs&m&|pZ z$YnlA%X7($@yRKY%cdSKm$@(9f4)d^#T=Sail_j$Nv@jHee#s#nwcq;%oL{4{58pS z^Koh+acg?ReB~3drZ>zaX}nB;-w?TFrh@PrBDc&;koGipah%>Zb3q1@h&8=!7WPE0 z*FQA(ShIpp0&VCi6LSP4JOh0A(13vUN6l+ zy8rIeS7vIThIdO7khIo!5S~{$YYc?vmCl+Bnc~Xr9AV9bEGH4`6=5xc@b*b>t$^_MNpEd{ zRLAzoU~PxA!uH8v?T73N%3l>TTE`%_NyJ%7M(Z5p;W(MeWLAWq z2c!UrSmtb2K}h`cGLzlXAZbWMCc9M(a)4^jWZHu{ta6aEB(pvF8q#KsT%Md(JxC7{ zv0gc?W{_y=QU9Zc5u~tnQf5MPFKk`#$yu7Ju=O|Ei9eX?C5dju%OLheR3InG zOHYz{GB&V=u1dsSHmtPB?8bG9VP!?8KAsITt-Q!|!n0wf6_lCK@>rJblTS1+%NmV# z3Z|7?zKk^y;*y9hU&fjN;Vo9yS^(iKR@Pb$NkLb3VwuZX>mV6%j`8%y{{)Sm8{p0 zXcCdBWPOqn+CG)71R3LMc&4`W{;8EoN}w|Jv4SMktz4c&1?rI)o)q>?CGI5GuneD+ zqD&2|Hri3}d_rxj5!!L_d_rxjH8NsktV2`Pu{t6nM#iR|^g@Pz3#e-iLWX|}sB1-e zB1io8G*vxou1|WB)VB^n_R&?z0FrO4Oqs;G%c-JB8d!!;CXzI?dO?=bwdXXFM%FV= z;zs<&)?1$}q)cP0aAsL;_!;0x%kU&Bz|R0jS|yMXzXI>4soGc-kP*KEpYWsxGW>j0 zTk9KS_&L3{RtseK`KWeQdt~_esCHI&WTu75s@2}=kIZ5c(Kp&#!#$B(;}4p92Wys3 zVoAQWHb5#NVp`O{r%HTm6XoF)<5 zu)lRoN@$q}SZ95bg_dW4^#xPK-jNk)xRp4o*z!?<4cHe_NcBTBdz8> z89*}1nhMEE=i%RxjJ7^_64#@~SYg?`{^PCt50n{W)s+(9yO)!!CJ?@RImv1R;a)e{ z>I~stH`(d~5$^?vv1y7m1R~xG5M$F6YZT;EFZuiFRBHm{3W@mrbgDHS!cSTJWX*^0 zQx-p2%OGV@4}Z4SLh7O({%mc9@RJzRtY`>7i80MO3OPw5qxhP{bn7(aK8g66#B}Sj zCvwYgr!6+adgYUYBr`2NyV$DJ!k*Kb9w(V)t?}eR(i^yUG27bgNmSqk?p@5b_CSWx zy|Fiw=^ae#Fk}qLMQUe`bxO7q??`3(o*o^!bFCMi#Kv1eQjF$0*ZRwoxV=2r`ttut z;v8}N{T8)6*UBp;^xN?Qs|bXDJ6>Sf5FRfUTBRU7UM#dKL&S5!kErEERxOBlPWXi< zjiiK*xW!g0pS+{YVrvwp;xTTiH37n7+)`^g8#I~ijRx6R>GX# zb`IUuUu%U!c-&cMrHAmiv(Cx^;c;iZRRF@{&U#CO@YUZ2t0;u8{x(?UAmX{)0Kpx@Q-GkO=$g(1`okLc_Tyi@{lZbW> zS>cdPP2{=XVJkf(hD4nE9ky~n&Xtqx9I*;Oo|1@mj#wJxZyHm?x*xTQLQ*1g)GFsm z+;faERyCOkZPgg7u1}iMR*kXtp&j0;m#i2FZ`DiISqN{{%hnYLZ`I4z9SCpLE7lVT zZ`CW-8^~7tRlcj%C&(H6RlciM!rXEjmh2y9^~uSO38H(x8FlF60z># zc357yJP|46nP*Bn04Yo&_E$`!=)7mv5wMfLTfobiAkRH_XR~_gH9J?iCh?u)4-$GK* z(-GoV#R$6xBo~QjC&C^GIZ0BMrb=&r54lY8wI@G7TI0J$8SJT$ZuqWI273-92VKXB zqdTL$1fr6N^~z|khP1+$IWyTCAzkrh&P?_$NIi@oneBs+HW)!N+b1C#k;!6TfE++3 zi+uy~W{ez(vfB3{36RNZzku)vlFj}L!XrpF`(May`mU^4uk3b`e6qK^ClTwF-A)b3 zP49z0edmzUt|i{t02{|%mwY=Ag!>>1?`=Xe#jKE4?rd( zQ^-C6;qNgPw$DTOdyIwc>yX2A1c>K|zOwH@Zjy)*?JN5^ns& z#Qp+#PEVbQOwdl8U+%$=B%*Ev?NkuH{!;9W5WfCW>|9bpHB+?<`J_PydN#$Ljj8(J z7naiYV#rAR!cy8^1>xhgjQtygkJB>tP6*e`vi1Q8*UYl^2}rusvPPA&&qH#Ni2hv8 zz7BbiSRP;H?R$_R>`^iiTJ0qkviO96Db3w+fm;0-wT?jIdMC`AYwgEBe zI#<-OR(5enB@)q2E4u=u3EF9GSBG>)JFV?+AY4}??dA}!tC4nl2-np%b~gyu)i!p2 z2-nrN_ID7jt8MMEkkY8D?d-{rW~i&}>{*Zqx@RTUtG&Gll7mF7S9^OUWM5Ia?j7t6 zkkce0)4|^1iM(Q+NqhNQ`F2IJe#gY1%!5A=-LVVY{N zT@jLjt}jk|QWL_@lMJyNctT$@9wWE>5WA%(a?4+(sfOAEd~%;;n7tTcQ_IgtzO&zY z61U}t+n;^%o-)Jj!e7awXi1`o=iB2Dg(& z_Mac@Zy*au#FqcTZUHHZc7C+mLu#O%AMNg*#QlCT-tH+gp?xvl9^{h*-^LFcZ^xjW zXY_4((ZheX&p`eq5p)09z5>}q-&7IT@6+s9$T1Reb~?>|0_jY@C5g;*`!!?`iO5X1 zKS9KIg2k1~3_C#)xeb#wmX&0NodR+T^O|W#Kt5nzGwtk<0#sMUyk^zVo=r z&IM^lBHk<6WEX~%#eJ>KwgG8?`&ygr5|I0C<-XWrSAe`F5zD;At^xT6XUkjdZy>4Y zR|b*UYPW!####3^yFKJO&bqhR-68yo>UO(7gnv=pZV!j>y`~-ZSP0*1+F?(Dh$r($ z($?5%&w_|2^Cx<;7;>&9?HQ6?_DaYtk|mz}23bOP2E-M|ZhHr0HHo<5*lizxT&HK7 zMPJ=xABQ|85$nFkJ`dp$B-*|P;SnU-z6arZJA3VC5Wcsw*M0{{j(xh%{s)o|`*fe3 zSdsfZ@t<4E#A2ke}X?{Q!BfL#b;(l^gVe?DmIkWwU~KOeM< zLke7wXN-sJ@(`OuoPiv&t3y^}`y96GLv~~P9JZT7(xGo0vD-m%qi-CsyFq@#ozkOr zKgfREDLra`Cna=T#MnRhWDV`p7(1ZK?eiG(x?-n>B*a?@SM1CX?uS?H+z{@ESM9GL z+z+qWCWQOpHM=B)kFV=?MF<~X*X^1RKBK;2H-PXN^$oivg!|Y{y90##*iE|!g!}w0 zdjN#{{4M)?2>1Eh_BaUl`P=qX2>1C|dp3moe5}0$!u$P>y$Ztn{f@nnr^0@}Ywv{c ze!puUgz$d9XP)~>FzSw6W z?@7e+e6g=W_^+<~Yu|zJUtRgvehSgiPMGrsQVZ>bIiDf?6lFXop)R*7KSdeO35W1g zl<}SP5Ppg>zLNtIAIEY6rvM}kj^zZ7CMC3e5;{eFl9=uxCUjb0D&D8bo%Rskr^%h} z5Z+%Yoc<8rUn!j75Z+(m&R7WVuW)CIl+f~|bY}S^Gc8X_XDz0>HAeQI)Xo;jV-nGS zQajO*iPRIsc#+0A0$D&J_E#F`w3N`i(mI!Xl9%R{)=6Q=EziHlWpW}si95&6i$nNy`;eA@oi9&|=X*Fj&GW;Cl z*Urz#@Nm;(} zcIIb1>N+Vs85`i|gzGsOkm2Wq>p3}PCN!`5PC=iDdDVAHqaA)%v4K+=!tW|JaB4$% zc^W#6AiO*coz_x9^J?UD^vPM;&W)UW+Bt;`e+jC!a|s##qEw`F3mN{RRHX9=8U8X=8|Ni5{AH>( z&fmz0QAV7Zw{_wy}yGXj=^?LT4eYbZ0BT^nb7uW@8tE#Uo=&F zrySa;c~$=Q*U_m4X+KUKdg&08&mO!*4dWu z+(^{R`A23#OW4avz~wogEPV%b_Ek0}%07PQ>3a9OWE`h`(|o?g))? z&O`XUw$aWt2*1}h+PMeezXdtQc?RLX1v$of2RT(wZq>2QKal4nVyljI5*PKhSm0a( znHlG#gghV-nQ=}=$gS-1sQkgn33*K-j>;dLLXgw+{ImGGlRr8-B$h<{-N_%F;*cYB zS5lmZk9W#L?vRLijd!X;Ec}8w!Kn}7zq&HPY2is+PnhVOl$lUZnCM*aiFk))qVpK- z@DsK_Ij=m43h)!QKRF+LQ;DANvlG8qT#u?mJ>h33jg-JDdj6#j$uuW3r4L8q$a)w zH1{J;I>;yz)01qF9`)tAA9eDfo$(}M-H$p7GShp@<%w||$gd=#hsQW&AoHilqv@Da z1?{XS5l7Q8rw%gw_pOdQjUoK^t&Tg9kSe|8yiPcsAdw_uUMHO1kN`3#oxzYC$eeUW zLS`fLyE7iL4w>JbX^>)c9E)-Jlrzths6bs3vCOBOrO0$b=Crd0nIDij?QB72I$h(7 zEBZ6e9>{VMaYc5Q4_DOe|>bkSCl-!0~N!~jfAY4h_J3An`3d$b!!PyV7NJNkN;2ei6)#=Qf zTK?NP2RTG?#FJ}~^xfrA@X@&oDMBLF^rQ0(a*>`?6;!~isv?iJR}k870+!4F@eE-TloBc1ydBgx>VgbX98;7LYEUSu-5IUyyH$> z?5Qf-$>i#gDa6ZYK!evCroAg76*t zZ0=wwp?PI@NBcy44LrO1xtv`06g}j4QQb{gUP>+!F+^ZMPca1KO$W)`P?pknPlQ zn?f#=h<56@Z6VDH%S>Ij3#2=V$kcWFLcT#2t>+Hq460~7cQj-Le(kF7PK3nZ*RJ~R z3`mI{vKoKmE`T&75!Lt`cR35ztAV=?(hKX=z}*H}faPiE?uBf|@-%c~ATe}&iF1iY z?it8k60yG;xmO@J(N1GG7V-t{G7m`>W!Ii7zlVck_D^6?jXM!V?u4o2E)f z(!zBi)kv~?QWi38w%n&J-KvnKBx0Yobn8N{(tGRToUN7H1oD7HWLmjxAkS$05?5rc z-OiB2edT#VYqt;NINmypbcaB0&}O) zL0@g_E`!vfGa|9f?cBAH)+Az?+qqjI<#Ft^ccUTAaO|{qk3!1e7w``5X-GXhFWSMq z45>hGvKOMQ`mKAL+aWPMc?@|;S9YaII=ZhQ0eaTBswW>IpOVr$b|jtL_!VW}2v0_P z&y(bk{8TqOl5}>{K^&6qo@9eu>PK%xk#uqMLGF+Y@kD`S!M^C~IuI56qN`g5(y9)< zlSET>bE`mlk&N@C4&+p4xt+VajUlllVmo(tBO#d{$^O&B?F7kBA~HSP-jG?n;)hM9 zmV3H`A&W_-domL8ITd|{g`}4|9+D_E{j%@LG{{Md-p?TE?aqVTBw6RlQpi`25Pn0puX_Yix>NkHE!1*9_Y|ZF$zD$`K`M5Wb*#U83(}B8 z^ymKWBgh)`!vXF~NHqH40Qa*ead#>Px}7R{eIqmy4Rm|?42>_0pbt#m&? zcqCfs#;YPTJQA&PlR|hTTIHsN@JO`U%>v<(XtkRc!XweIZV?ENM8CQ=gh!$^ZYcK@c8^Hn<}oJQ8hi ze}wQz^qcz=gh!&^+_@|mi8i{wKzJnD=>7`fk!X{<3Bn`MCU-Z4N21N{AqbB|o88|b zJQ8hjFG6@E+Tz}X@JO`PeE{K+Xsi1tgh!%n?t2K2MBCi3s`B~6w8PDV439)R-LD`#676&?2#-X&+>#I;iFUb_AUqQ7c56a-B--sZgz!kT z$88DWk!X+mErds+XtxK1N1|wVAcRMvz3%rA9*Oq4KR|dS+UHJ%@JO`Jode;KXurDz z!XwdscQu4Zq66+m2#-Vu++7eJi4M94Av_WtbWcKfBs%0?;C3()9dd6#cqBUP-iPo= zbl80X;gRTw`xk^qq9g9V5FUw+x=E_Z-ohi%Q8zV&N1_-v6NE>i7&kYBN1|hHVF-^z z$6OP_BhhiU1cXPT<8DO=k3=Wj8W0|dPPh#qJQAIBTR?auI_Y+R@JRH#+a1Cq(eLg6 z2#-Xk+~E)&iB7rWAUqPCcBepiBs%TRhVV#q#$62Ik?4%O3c@4NS@$;xk3?tPoe&<0 z&bbHvA6NGupVj!saeQUfu(GtWYB5?$R*lxqxqjW2hNa19G8tBeRl_hD4NHq*)nwl+ zhSAch$uJqFCc|Q7YB3rXlVLOrON;M0JMT~S>EGAmd0*$;=l*rhx$bk{DD+9RJNhFO z`Xt&Dy$6LpiS|S{qtGW&V{|JDeG)ZBcl4D1K8f~5Cr|Hr+>d?|?Tt?DRc=pr&U8gD z@k#()-MKIN;hwT2fUfS`7rhE*o%79ecR##2`bn4__%3>L^jgmxUDlV;<-N*-&a%FY zPQBQB9!_#@|P;#+P`*-v^CM?0KYQoi`&!dc);YyJPuthJ9ObkJz2ms!tT`y>IK@4V zJI=ZuWyo3H@rA#&5GBGX?*5p+m5FkLvsdXpfBIS3D0eu;U7vo|GL)TIpZ?Zzly9*< z{jJp~?ypj~;|#E#L2-YT!X0OTwI1cjQg2xS)=MbI<2t(ltE#7XXL9yB&${ESPkNOW zr<`E5qfB<@$i8>ViB?2Be^mxrQN4;glND%9_e#Kt_^r;t)@40qNkABWt8=h5r`N6A z8K{%3dA-VS&azIn?#DQj*L&wPhguJz#5u)1pE=YjKw0cubL3t%Hq0tQS?(0~O0Hqn zb0~vhPO&zijDb1DdZnj$Tch92&iNnfqh2M*DZ{OROWgbZxL>+++;oalMp(H$<-hNW zjI{E5l`|YO(t5)y0SBG+jdsdt>m8KioadqLDIcPYb;>lSgj>5&qMS0lr|d&1KEAJC zf>Xv=-=b`B%Iu!fj&e!7XU?=bQEqaIYtFQe^pyYJX~$Y)X7a~$tTmxmaj(%BYhCV@ zfQ1p>GwN(>4$3`Fai4W(Ti2sRZuCrqwGicer?@7<%0y|7_RIt;8|5dbxMqU23}q3< znP@FX$-_7kt<_#R`i?!xD(O|Oaqj6PtLjqky@h5lXIV8p<-ZxsS=J61n!!x8K7pYb z%tY%87@EPn!uke=W-za?euAMH%-PoOFf@ZX+vPDr*u9&0x;4EEJl-oMXkH&|a{%xkPWU}y&OT5B;1&0t<@<)Y9G=5#YC5 z&;Qd4u&E3e8~NU>!!G8O$54<1TZb8~@E<-e?8(lm`Q72J z7=~srZ?Z=j*;{NbXa@5(Yby-RVBThZ07EmFw_6{h&Wnfiu(?^*t!a3_-&raw&tQt zaEfcPtpzCiu)lGybvuoN{f&FA#VBVF_Qtu-T8a|q6nC8atbDH=eW$(OD(qEUbHB9~ zx4O`o-FDYG$J&H)sZ(5&V^#K)|F*^wYgeyv+lY*0_#4MTFgW| zW<7}V4Q3)9vsR*f9PEv=%6bCjYp1y5tg=eHa`b*ZZk6>aL!FtS$E}^XmHTZ&_Xy|- zYcGoXZ9{ht_6h4N6#6CJBI^JO{St4Hbr9u-3U8b>)?X-hJH;JmjpdioQ{ilX9Yc~r0Q^N-93l#dNh7H!YDD+Pa8?B#E=${%kTAf}wx(zp3 z-Mz{M&Nkd+4Zp&BEa*Cp&DQBCbREZLYdp$n&K~tlXO{OR>s%D~*JBcUibA1(ps28> zq0m22R9Nv|Il4YCTZz3&g0ns^TMKY2TAx>~+fitJUbPmZ%(=^%n{aMbX)Q&$-YGZs zlzguoUDj(>VXtzVV_vgf#;qPm@Qx7Qvfe-`c8Yt1_?ERDr5>i*`VgfBrrO%$m7~jg z+iLDrmO9IN+lrX&ZRby&Uqp1D^L18KPgxT1vs2vXe4S-rik-PF*X*z^fGKy1Yj#*O zVYcGz!H3ptn2&Jw;6v*=nAg7X#`(y)3FbYgxZ`|eWxx!3!h4UZx3XX+IK?&f))JV< zR(ocr^)SqOr?_UPwF-vLFzm9PgrPGGyR5aIIl6s5wl?)DtDNogu~mn03h@oM-Bts} zS%+`9?Y2ILc^R`gd#wF1wV2J>WBmwo0H)FU4dx%1M(eO=j;_yM>$od>9-W@@tg}9Q ztuU_y=u^G>-eiqKx!5W0eQ&bPL7{7NKDPu4U7Pc{bv_DRoAZTrF$!Iq^My6bD@WI7 zpLKPw;vO&Wvodfi_bitC+-R|~dWv@z%Uz!qYe}zLxu2E$t%rM+jn4hrZ*9dmkNxV6 z^P}}X%JWWf$NACv80GtH=bMktt$wmTL;2e&AM}(K6#5QuyVZt5-vMs7enpuw$@^^j z**b(W(<$y})6Z7lB=2=W-|zj!Ist{g-}{R-q^JD1S8&i8>Y1Zk?4UKOS8>00anPEK zaZ<;7kKnJCLZK^+ezjsz==zl3taucV_}}NfmQS)n zP!?gFAUh1@A&e7bpM^rd>p0jx2Zesuaj-3WinldloO^MyJ*!ul;glhEHj1C~-KWc) z5^Ohk;~d=@L+z$sEfwU2luV5M`m(0vCOZuh&|yI;>c#eL-tw+ErnHxftK!%*lO zi6iXOP%4~nOu2i@Bki#$Tb<&*Do5IpDASzp4BYB0J=C^Qu5ilTJ!Ps_j;`}4dwTEU z%tMc|Z^W%=ox|)~P-vaQ?7L8Colm##N1=5--OfXybw0x`K%sR$!(QW+qw6!;F6~uv zopl~<`zL!_jP@8O*nudt$2h?rit@g*&*q*joM?|iX?BWxws4|-CW`-N&rGr>q6~A2 zYbMzi3SHY3X`hEe*LFqPaVXoJIkH!rH9W^oK-uk->Yj2H%EJE6d#_W@wdbPTHVQk3D&**W)dkFxVoUYOyTDRv>s4yU+g ziv2Xov(6g2&%ulNI;#Tgjwz_-E+WrZ}{nb`? zowePGk_cn$Zj^a2#_o5G_n7W;_Wj&(eD*+;pPb^3dZyy^3Fk^SwYj8zo{vU%vrPnPxY5;~d=@v366ha_IjxUpF12G&q*GjTsXe`?{P&rgU@!K}(R-0#FYQ&_y_5vI2;|daQ?9T#^tzS1monRaxmP*U*&4I$_c0D#V|cZ_3x%#RyxRV(*R9-flI^d1759vE zvh9DJw^hS8d0REb4n&#a6nCqp*h5ihK5ni(3Wet5=GteX_?CI&%(Ew=Ty%-PkZL*R!z0n^(yX_$f@>rjB_b|_h5njVNY2SaII6^ zr7y7ez|g-)FSPfe%-G;PrVH&>uN+-gy4~KZOmVh+y4^R$+hSKbw{kxnZm~~5S%7hF zv4@~s7~`2+?U5+6o#H-!ZneX`a&%c4c0{i-%~@84Jr%d|Ep$EyopPr=9c7kNl6%VK zy>8_`%8TseUgajoEVAoys~2(A>N2|#K^t?nuRqR`dTdG>(0-WH>)r}OL}6uNr)VLJqcuAY9_J{=|7 zc~!dW^N4*G%EL}^*XI%YT$CvzJ@cq7QKmV?HILfUP)^6JYrZ`LWg=!>^X)_wdS))S zlTqlIx!k@1WfA_haD{y{$^%Yum$kxPgtEkWl-+e+Y2Syk+$pYEX+PwZqmO%mUC^sM z=WN3Q+i#w?#bRye3J9k>YX_iQ?v(nTG8knw?t6(n9AzEudx?Dp%3R#{=j`z)i*Vnc zvnQjJ<9)S@)Pg5vDS`9dDkiK{aR~ZfkNA`)V>CVwqdD#BgzJx z8(e4Kg7PNL4X(5ALOILX5C1XA`9)~^ev~Or>Fg}4>O&Ud!mJ;v?!a+s}7 zam{vnHOzI+QMP*p-@EoRFt<6y{T9Ky_IeoF8?3cof}y>^TDuB{_P*Y;YhY;a>pgo% zPw^hpbDgdFzWq(FVx01U-Hmdg^L>C=r_|Z{hMp~d^p(5Aj_p+rJNIITeYaNv==W)N z+e=XB_i1mkV?y;XjnY-IFjrLl)l~Y{PXqThRKFNC(?6oUV zZgYxj_S$cw{G8*NPwn?m0-a+S*L-U4>M8$y=6+_kdFJRn{mky@RW5b5#%Ffijo$N+ zjucw#1Qa?_XtA$Cp{v68+jCLqs_^~x0vZQrA-=J1N1?M2-`I;$XpZ$;dnpRdv3_gk zqvYXr(P|f>6ymD7R{Lp`-M4t}3E$c4P`-DH`=0Qfy%}X!k!KFrTTniCifazo+fe8{ z_V@M&D0CkCd%FRJu5oU&n^5Q)=Qg{wr~J3&f3R=4i9g4Fuov|zY0j4a!Or(efcq)z ze#-o07oxbI!tP`Gll?S``wp4m+^XGPhvL3NF6t?py>j$X{@LErtGMTgezxmzEBY7v zgLWed{S(1K`%4u1oq-PfI~4kzfe!l@uN+<0ulAq4%Dv9|{A!O(^PW+U26^}E4|_Dq zQ%-U3*B^ESN;J%$b`;7*Fn`(xWx4Y$Zg&suFZ%+N5~sM2;9vGk6o2P^Wu>$9E_*i0 zNT;mnDc5=B=sF*=Z|YUt?Q_V!7q_ByK5Q>Tp>;lNuRx)7?zUH>&^mY9&wAzPvX0p6 zdzDgWeU8}mxE1}gY9G;vLjSDVM|_DgagBGZ*H?UpGR-OOv0h*C3(9<$dp}!a~-+Oe9IK|zD{vyaLN7uQZ2k`u*EF!WAxqR4Uzq5ukNAZ8_yhF`cUy> zuTtea%0tE21>Sa^eZBY2f0~$tGT$lg$fpS#<=JK4(!)edPgxT1ic?$@CZ@wYkKa~3 zU0jCp5`J6tbTJ3TccpWl#98_oVjjks?v#B!Wg$%e+r4MPXmJP3aHqJ>gwY}!=9Ua^ zeZoa9%Dql;*C$*o_sY@xK1TenS8=b=9V6bvt+p9&oCvWUWv^4*aU#S=DD>z|5PMMQ z(U~BcQO?C2$3)SJaslQzCW@cEa&&zri9dQ3_ge&$#2E{{$KqVf6Io(BN-XAyEHN2{ zemU6|3Wa_-*%q-V)9>)^mk{wNNltO^mk?K=O#9P&+@-h% z`pgiC>E2_p0>>#=isYWMB;aWrr(7v+fT81*Bylqe9j7FTMKn%`w?0>i`%vgO>%uxazh3?ng z;(8RiU-yWGJ>|dqb&tq|p>G;27TGBDO@qZ^Sx@nv2@gB>G+UJPDuqtDS9GJiKHvGC zh*Rzp!5Q9jW36-S@PbqB7x6u1f1lW=ojEJ#(a90XS+3dNXVq_g{6_bbbQCg6gnte< zOGGdVnFmBm9ybq&4iqv=h2JV}mWm)0GPxq>ac*)&0ScLAqUb4ZmWeVHG7pNB7r1#) zWT23FNaVc4%|oI9g-o7kt>Pw6bfS=XSfszn&BG!ah0G(Oemgghh-MTrkBX+9+&n7U zP{`zqj8D1A7da?omWzO|xmhkkP{^zh!QXSULWHA`St&{nac zaI;Pnp^$k&WX$B|1(Ab7X1z$fl$-S;6@^Th&iFgz;8$|qN+-wlZC}cK@$jiCe zC}L2^Y!XqkxY;CPQOJ}FJCU1m5r;zNMG zqmZc(aY@`%h$Iv;FN@f#xOrJ5qL6t-q|W8$6_JTT=2hp2jGI?Q0t%T*k#Yw&l_CR$ z%xj`0lbhE>2MU=jB4rUbTSNv5nb$?q5^i1>X((i>MAjqRREazkGH-~Y$GLe!l%bG$ zQ&bgm^QNdnA@i09eSw>|L<9<%YN21^rdq_Kka^qrgyrUK;s1tL$ZQqC+qu~)!coX< z6Hy;=vrWXJkf{-s_1x5mS`;$xi1N?4c}G;Ekl8MR_H(mcgrSgmS2X{~&AXx`Ut|sF$3Ao47kMaTJ`hDg+TA zJ4D;*-0TotC}chqsiV31P-LQz`AFnOaPyHUL?Kfznx}A6FWOPa>=a2BH#a?3Yp!a^Ez&J3;z_akl7=O z=X0}1l%tSo6wP;V(bP` zrbz^&kojB$t>fl%5r#tM3sLzZH(!Wa6f*lnc@;PNL^TSTX3@5tn`Y64Lgq^mzLT3T zMHC8|uS7}{H(!Yi6f$3n;1+Ja7U3vlT14IV+_Z=$6f*lo_Cap;i+mI^--yV+xcNrJ zppf}iwEn}*x1tk;OsgpB-=Dp2w2CqmGT({#LEL;Nl2OPU5PrkBIUs^i$b2suCep@m((P{{l(@*m^oZ&8dw=CCMS#m!++ibAGa zWIxVLx5!5!b4278a&tr!qLBGVQOFFHK`(MM zRED9D874zEb2ChiLm_jD9QP78r$`%xOo+5AxCxPQC}f7qxR<#ZE|XBmjF73Xa5F+? zqL3LW(_iIgq|8Pk6Do5mxe1j8C}c*-yw|uHC5uqVoGJ^paC53GK_PRREP9=r(_|S6 znJ}4C#Z8zjKp}Iw%zJ~I(`69~nKNYmo7|isi&4momIZHdGg_9QkO`M1)!c;33KTM9 zWbxbFjFIIiWX_aDTe&$?mZ6XtD+{-AGgg+OkQpZnYPcCEOHjz1CG+3m<}6u^LT0?o z+s@5+S%gC7Y?=EmH)qR26fzMqrh0H{m^*%QfWgZHdNiy>T zZYIfG6f%)AqmG+MnS(;+9GSj@n{#9~3Yl|d+K1enE3;6@OqQu1aWh$FqL7J_DfQe$ z$qW=SQ)Kc^Zl=g|6f)5=X%{!qG7W`{B@;j9#*(QhWNewxz>O_aP{;@w{|PrjCZmv% zGHy3FQYN90Q8IQ9H%ca=kkK-xksB=&P{;t48MSzi)9oFnHe&6CO0!=A_|#!*?lE9@iH*UD`YN_87bUcB6Cp4%#@J}xS1(q zP{>>=6Yk*VQkjB6CP9{FbCVz|QOH~-YnO3znQTNMbGeLK$<5_57KO|#*<8fUEZL4i zCQ*j1>nq3YqI!l9o=6V^ALMBz(W4K9`aVTVNkWpuHbAyaUA# zK5p)nEhuE}lQrjYbDwNLA#=ZMjN#^f*@{9YM^;beCP&tzkXa&Y&*x@|Y(ydRfUKFu z%>%Llh0Ib}9m~y9S&u>{S5{rXO|Gm%A+tBZbUEGtpSJR-X<=jIU^ILj+!9+eeyxOr68ppeOzC}dX1{8VmM$YK;SD`iYNH!EcV3Yh|F-^@*cj6)&wn2frGo5y4< z3Yk?haS=DGWGV`o$7SUG+&nI0P{Mo!^OTHujhm;WMj=xy zBe!rLyu(LZ)0M1#wd@(@@B~C?iL5^P-GFA+uQ)hI6x7mZFe(N$QE*yd>jM$W+Ky zi<=7Bi9+UO*)Wxxmt_kInO9_cJU6e%ZWJ=F%EH;)yedmk$W%H%0u(Z@$>N3F zye7+0$ZTh$!~MhAk$IEd?J&!a`TByLm{(UCT`aI;6Ippa>l z@$YccD3ejh?3Hobx!Eg|P{@2LBR=HjQ>jtNd?s5y;pQ{hfkLK9Htpu7Nw%So`CK;c z;pTJMibCcKnc2+E7cv)x%syGz%FRAmibAGYRj;O0x2gF@yj8UGJA zU&&+?GGEK|0VlA})30SV3Yiw!9>7hD>_#E8U#1V{X1~lvA@hw)4dvz=nTbN?TbVnC zn{QY2N`}XH$TWI6f!@`rW?5VQMRFw`AO#A%*{`-7==u`jJcDWcA0=e=4aWN&CSo! z|6Z?<`9*f1(0=AG((gWQ4$3wZG6!YXF{VSd+|QTQAv;iLS-;BG9BzJ+_FnS}B-GRLXL5^j!Dtte#tRm28v{FO!_(@(WjaMMq9ppfaW3ahy3 zuS!wK3{Y`3+ze1jC}aXu>^s~9s6-Sp$1A;^o8whH3Yim>{Vq2rs5lfdC#tAgZcbFO zC}aXvKk(+?=9vP{@R+@H4mxQBf#lhO4HtxEZe6P{@o>&EvTlq1sW% zj8v6pb2C!aqL2wy1rgkYsuC13qg2rZZbqpx6f&o(vWeWBs;W@PoTl<8adVm~Mj;cX zG9tMNQ#mMPPFK0-aC5pUL?LsANng1HVPSAg%@yRt0)vQLWMoXjZl#&WTc8& z!;Mr4C}fl>eU2NYDpAO2Rko2Et*TJS7?u1AH%6tSknyRYH@WetFcdQ9sere*IZuV4 zkcm@W z8qehBQq_t=CP76_;wC}GqL8^vMG0;$Q?V#yE?3o(o6A)_3Yl4|c^WsfR67cpL{)eR zH;Jkgh0GPIayBi{Ah0N6|cLg_Bt3nhq$*S}TZjx0c3YlwEZ3#EmI7cpCA#<(D*~rbc zssM$|b;_>f<~kLJLMBBez0FOEN<$$tS2b?sX0B>QAu~@E)NwOUm7tKhUR8X;&Go7V zg-ohy_=1~M)q+Ci29@2)%?&Cah0Kkr_-AfzROKjSZc<5qadVSOLm`u<{QC@K?+Ixt z7=_Gy6@CIY^HmfInFT6u2saB<5ek`ws(BIq$tvc6mbGPz;(ko={Q5|c!xkvexa-$ULM< zPvqtyRf$3-PZbR1CQp^1ka<{jjN;~D<#(!A$ULHo#&YwBDnlXjsH!`Mn@3d>3YmPB zF1g89*(hX|tKwL0maB3UGAmTp{m1;#H^SFx2=H_t~i$bPQg+0hkp^8Ky^FI}{lAHgj1Qar>RcR47 zt5qcmnI}}lliWO^Gzys_RlJs)B2|t;W{nDbk()It6ot%_s%8r}PpSqKGEb@0ZQMMi zGEvABtJ*qlid7>DnWt6OZf>4dc_?I_Q5ntLJfm_@$ULjU4{-CWib5e%qCz{kDNzw9 zWS&#{5I4`McoZ_vtK_~XvDf?aDjkK)T9thwH)~Zs3Yk(BHI$oD6^lY;aGZr)I>C}iGL zoekW)sr*0j3YoW5(ihykrP5HyRIAulZmLxx3YoW6X*)M>t4b6yTUEy&+-y~Te|m+? zHkI)gH``PW3Yi*}{Vz8)Dj$W+J1Qx_{Uyu)ek1W6m4-rQyUHER&309YLgro7If9#a zmH$Yukf~Lfq1@D}Tof|zsm5?_-czk8WZqYu6S#R_`A_7_`aq>x+7=_FZRdPNzJ5&VI~=R8|6R7D`dV^ofEnFR{2ljrd1``+_b7R6dLC{RXvrP?^HbsnFFeN1~&&( zJqnrcRoNBXe6Old$h4`z>$quCp(td2P?c%i{Ge)4$o#0{Z{y}im5f5>CzW;&H$SN? z6f*59cPTgRst|?D&#En-o1aw|3YlM2@oH{JDGHfRRlAd$PSuD)<`0$jDK~$pEEF<- zs-PBb{#0QoWd2f_KXCJx%0(g5r9yw_rb|VjkU6B1j&O5GrJ<1dTXpw4nZ4fsR)PJ! zLguitgSa`Y;!wzRtK#9@bgOa{GDlSSNN$d(C=@dPsKRh={!yhUWd3zN@wxd|1*4Gh z(`gnremV<m|>ghFPt?#|+7v<|%6 zD`diT$^+bl>kJe!V{~vnH)C`-3Yjx?)@p9f)Ojdm#_Hy0xf!e5QOJzbx{RA~Iv$10 zS-SCMZqCxJC}hTK`z>z9>o^oLXY1lxZqC-_C}bjZ>@IF1bRr6w2|BNdn+duIh0H`9 zwx64cIueDk1SymiD)}v2-vB8C#df zaAWIg6f#0LU(Air?I>iV&Y8uH)CDMHln%Ov8>Pcg$Y@=3EjP{+9EFV0?Kg5`bTW(6AVzu8IuaLPwCqB>31v(Xl%!RsY6E_#?IutS&>6jO}xkx9Vkcrdf zuW=Knt5L{I*Hty#OxJZNWG>c$JGi-6hoX>~p;JELW`@o{Arr4FKj$W1*P@WQLE++3<7QOG3d+9TW~=tdMWm+7nlL)m-FWjYUq%;h>` zFgKU$927FMbnpmnX6bMgGKso;G&hO58imXiI%onnSLiSlGP8A6G&i$#9SWH%bz2NK zSL!YlGD$jrIyXtW7=_GLx_TBjSLu2bGIMn0HQdb6wJ2n+);f)wt93jInPgpYJ2%O? z28GNuIyjq~YjijYnQL|RGH$Nb^(bVn)440TxlR|NkV(;jk8zWtLs7`g)e%o}GgoUA zGV^r&T5jg)WE3*j>-th|uGh^dWKwlUIX9`=??tbWxj|RG&dm+F4u#B(x^^2kH|jjJ+q^q67PTh0Luwc@Q_Z>U0z`8M@*WZZdQY z3YptJ$<#TTn@nARLgr4Lejzt^>TDD; zi*#55H;Z&63Yoif>KtzF(wQh^vUFi8H(9zAh0NW$@@8)C*0m^P?$IH4adVFzheBqt z?p(snV(tHcSIA`R&PTb)*8ch2+^d8C$IZPu9EHZYPuD-g&3(EVh0OiBs*IcabsY+s z99{7WH#xcnh0GFNUCqrBU5`TM0iE?eHxKAM6f#S7BI^lF~9@Qx*Wb*a62yXJVjY4L*j+nyDa;;Iwtk8B0H!E};3YnF< zD~_9$I$*k2$Q0CCISc}(Y`kXfb2UC+%bZKIHRTsJS^=5gJQLZ(m` z+|Es*E8)&UQAh0GJW{9$gM(A6kpige0j+!W~y6f$dc z*cxuu=tvYYPwK`JZl2VwC}f_}d1c%@rHfF=6zjMOZi;mh3Yn*MKovJn>kt$&&*-{s z+&rV3P{=&1vp?YGS)GqUro?$q;HJcRPw)zv=XC3*+&rf{QOG>6OTXggd0mM@X01*= zz|C5ni9)7ShyTJ&sg6P+vraet!Oc3|hC=2AU37$-7jzj4ne{rpUkH0|S+A2($dqZn zf!vhoAQUnibY(C%8+0uSnT{xY?`|QOLZcyUyq4B^@x$D`YBk`NiB+=xP))FYENnxp`SFOtsEf&rP+? zK_TnXS5M3pZPJ8w#0ix@apm+jJQUnHnAcJ~uTw8HLO{+HV&(@8}>D zGTU|KUT(JQS`;$x>a;Jpc~@tlkg3(7-*Ho`BT&e^r<>ckc~7^aka=GhbaL~)Eb35}O}&msA+uA*_T^@$PDCNIOUEC_%`TmcLgr(w{ki#A$D@#G(6RlvY0!x%WIl1u zEpzjUb8guyWOnO>0o?4?DJW$2=%fH{_UJSeGL1Uscy1bX0t%VEI^hIv_UaTAGN0;{ z6S?_RXP}VzOs58N^O?>>A=9KY2XfP-b5Y2AuCoSl^SRDLA@haKIf>ZuaY96f)oF!c(~UMwg-RSB~W7fUZR$^S!PL<>q@`heD=JSC8VRP1mE4`9as7%FPeD5rxc;y6!Y?e$-7U zWPWnalW_BsbDqR2WZHGp>D;vIHWV^H>*h1K`B}H4koiToj^^eU-HAfxpso++=Adpy zA=9C&$8gi3>ru%3s>{#h=2u;fLgqJJF_xR(bPWob-*weEZhqHwC}cWy$ywZV>IxJx zf9SmN-29=7P{{nLGtTDbPo0B8<}aNY!OdSf7lllh&Yr+cm(E8ab4ce;NGb4OcM&308?SO2{1J%WR5pgK5mXTbtq&` zFxBUAbAqWyA# zn{E^`!6xuxZiX8F8GKnoO)v^AYnTa+=Vq7*MA1DC}d7G zaf#fVYLZaMoM!ARxH-+lp^ynPQM0)TGqEUSPB*bva&x*#L?LsANlN1843maJX0%DW ziks0U3x!O$$)3YaxXDK$Gsfgx&CM87fI{X>lbg)VnWhkh%vh6m4L4&=5ek`crs!I3 z#+fn{GH02x>$o|~RH2X=Zz@u_8ERY(6O+5-3VJdIsMwnU@GSXCMa3f7U3K?bUZ{tRpW)w2oG~UjQHmxXRjA^}t8)G_A z$oNcKCO1CQg+k^$({U#^=NZ36ULg}>{O;l=#sr~|nQGdOF;h*~G3I>JlEue4-*lkR zIMYns-P}wwO(bU0LT0)tx}TfrrVNG5#ilrin~P033Yi(EbO|>zOeG4LcvJrXH}R$!h0GH#3djGOv)i)c8Hf&7~#?g-n9!JjNs#|A+WEml^*&KF(z(7=^~U z+yp+%&E+N(h0H7y`Up3(Oauyi*6h0N6^YZW(Fn>-XU$tLG< zZjwy_3Ylw6K_NHSm=Y8+*P5*VadWN7Lm_jW$yv?Kb*2D?Oo}Odf}0dmib7_tDK6q> zt|><$GtZQ+;bxwxL?Ls%seF=~>rE{RnN(Bv6gR1+35CoJrlFXd8%zrdnHx>h)7;!> z+EB>cWZItL<|fmHLMF|0Jj+d*@hkBPnfay*h4%U9n}FxISzrR5=i@9eAt*G?LKCu< zn}uc^3Yl~hR?1Dfi9{iDvx!{C&CMnTh0HA`>;-OaF_9=_ZZ#q6xw+MhLm`u4g37qb zFkvWUZZjbpxVg=YLm_j!8Ml#}+l`Gv<_;6GiJLpjI21COCZL>~OcR1a=1$XfjJeYU zyy)GE%p&8rnUAx`1fh_*%LKi|&0Qu8g-n(Suiz%jM4^zm+XTPN&D|y(h0HxB{1tBQ zF;OUF7MqAyxmj#93Yl!9E4j%w@hD{OHA$~=bFWE5A#dKEW0CL4v!5|jM~H%m-D3YiB??wi~^UOo0jB!N(~u;V5JtGvhww<}qWVkXdCSKjLPUi9sRrxUuWGdECUIkSR2A zJGm(|NhoCgXOeeu^FNc0LT0sz|CpQACK-jy6DFmBnL3Yj94_6avdCJTkk8k4n~ zn>8j6h0K#Ce-AfLnqm|(PnqIIZk{sbC}fIF`Ce{{O*IOcr%lbL+&pa>P{=%EDnH}q z8B>cw=2=tK#Lcs&4uwpKssEgt64Q)A<~h^$1vk%`E)+7)o9=zwJZ}P6*r|O5{1kl3<{a`CU!qJ>rEmGnKBdq4L4;b z8HLOSll(0=8%#P1nT;l^m79$w4~5Jolk*)nn@j-;nR1hMfSYoYg+k^6@}LM zebaf2`M`Ab@oq)t0~64fk5gybQOMMp?qkdj(|H^pXNU3k=i_{6x>0DH4^3b{Zay-B z{rNZ_nNSqEU-hQ*7*lWj2k>!r8vg)3&Q24ILgVZ*?Z=p1ru!K4v1vS>kMprQTrvn({&1G@5D@GJ8$+ zN!;u;^(bUMH4Q=Bd}>-y$b4pM26OY7X+R;S`O1W&konp~ zj^O5N6N5sg#l(-~ro|+qklAk%L%G>+Qc=i!V^T+P^Nq+_rGj^O4u6F7k{>vz+N zLd*KybRJ_mP5VSXPN(Tcp=JGHIwo=Rhw+Q#%lgxFq0qAaGy&&u^Op%Ymyh$82|=M{ zb(xN1OqcPS%*Q!o{G#|chfEL(jq|q&n!?TBCJcqlVG|zB&0!OTLZ;i;7B}4{4u#AS zqit@En0OR2|Cm_8%|9j)h0MPuUUKuVNk$>#=Sx=H`1#UN$n^20Xm0xWGEm6$^`#kZ z`ueg^$QC}d)MNsGCO@ui`Vnd(c-=4Ptz|Lk1}d|gHP zohC1P+NN!~2WTPeVUvKM;mH#Ape$hzdw>FAj|v)A!=_OIs{+=&Do7QVy4MXO%HJx2 zRRpWJR7EWcQWvnm|D2gQym_zhy*n>`DMjC}zteki@A8@+DH3z19{2FNvO7HQOY|TOGgZvt44o-ItXKM~lcl$Nc9FpGox@^rM z>An3LX%0-eW^Ov$UN2J^Q8flJ9KlzPp&5>#I zO}9pxqtXN4%hnu~9`b9X=}j+xAY0R$Ug_6Jb9DMM4`*wRPJhd;56!pE{T$D|kg zHPRfLUi-&v&9Uj`$K4ufj!WP6WVYtG^qqciZ{7kmy`1G&+8fi{Q4^+*~dN=Td z^pIa8&57wJ8?rSgrcI+;BTZj=a7wnOFFownNOMy9-?OqcC#CCWXZtxhJv1*{b8>pb zuaTcq(u4D}HK(M9{TgXbO<%Nmw&v9I)qagMr==Hck*zr`eVJb)&FSg>_H51R=|R6n znlsW1w#?R?k-p5Yk)}U=(N@`-{`A#;jWlPb7i^uaIWv8kUn9*~>49ysHD{%V{2FP_ zPA}LtTXS~$GQUQe1?f|_%hoJNU*y+Fb58oW?XxxKq!;)#(wv*_?a0=go9_2(q&Y9$ zwL`Y%ymXIWBh5g1?;W!>1L?#48fnf?Z?jXj=KS;?evLF2q}zAS)?AS8^lPNKFgj;IM{pr*>Sv`jERAK2|-+E)J%!lpvYVR+VWvA`NRGTHgq@R@6)#TN+v}`y( zFZ?CBJS;bL#-z-V&r@IH%U_$f{L&}YQ@T?8&UqjAPx1Dn-(w=>SxXjhF-tKtK9H-g-WtXz;Sje7v>)JVU9Ow6wsh2DN%O}1&?(>(Q z^>_K0RDY*4rpERk#oE)wbGnw6O#hO;~r^0yQF z)BML-CQpmy0qtY*fI8Pt))@Aah3b>5OU{GR>s6>et{#QkW2|y zC-k$v=Y7`efj`F8E2$jko$Ts;{(f8*9?z+rlKd6h&T=n^*dL|nzW0;lcA!7$Tz%KS zo-3bnac4ilWsSKT*A48Soc}uG+Oyv0Q^Sk>YB}>@ee(`EBjhC|Hzhd=uSf9>v(Vv}DHF z8^>`vw)QI44&$+Z#u|_Nh2#HX_U`&1>G&C2J25`Tuf^iK@$LA;XaB(QbfNg#o_yYs zpBj5TlH`x`r|!C?@Vuzb)2@8u=QpXpQhe7R#g|ul*Dty2>6muOXV=n_xo*neFR12%8=V#01=NEW>hUd@GKfCjan{UjFFT#0tUdL}t`lNZra%^|w2{%6GdAC^m zFrK+RZvXCV?{j4Q4tCM5`22B9ecU*G{qyVW$C(es{V*S>WBxoFnLnYP*aeErtTWj)7DEI<2Yjj#1L zkB9u@$L#TDVV&k#v-NDxxcSPIZFiN6=Yib$Ten}v@4A`(U&{FId{AT0AH~WM>XPR# zQ~o^jzwURedAVWj*e|>DWKH5cQm9MH1N!Cpv`}7Yd(8E)JKwtUF)q)y#r)>eC(kF0 zt=(CVV)Gl?o>b3b^~v8)s{c#*^LYO9^E~Iq14;du{M6X-K%w%;AJ4aL+>jY>>N+{M zA9d$x`K`6%hFJf`IDPW|Q~Ar+4sKjg+#lP)jU(dQ!TGJVsTE(FZZ~)*W>TrzO?bH#*4Jm{^xkn z`B`_onABdm<#E@4nfF@?jicTEaK}C4=k~wr8@F8Z5eM4quj1EvN!OhmFBkGtsC^2p zPii-JUdZlG$8&todMS_cjqhE(llqbD@|JRaG1mA=`4!t=Yz+C&_ILZe%4}<|>kH4b zaXZ`h-AmYS6wd3h=y?8m%wCTdo(Bs3hI)73z1H8iuk-iq3qRKy`iZRvW3HuX?|~8vOiUo z{OWjg{bQ}~AG7;|V(k=TAJb0k$BM;K{}`8-u74@!kM#}vlb71B>(4P?lh6(-cc?FR zovZy^$j;?;z3=}UZ2uqAZn^RE`Dtm%oImpSW0~VLw%#re;*WoqpYiP)>SNk9%zs|D zyYkif<0!seOYxJhUCT8N)_(e5@wYLI`}sWycONGEethnCCi4CLzC+x+!DIbg=D%Lx zb-BBq&&&&GJa_&ojvMmZ@j8&(Io`X`-^X=+GS`8*e$I%{mEzCE%ZzKnc=V(DSH;Q| z>efE!?w9VcfXl+;X4QK<{jX2EkN5bM{Q&cZ_1F18f3G_a;l?BD&i~|JPo2x#YQww@ z{fFxdk7u*TKkJq!bAQt9$80_G!R37>uhj2pyzJ~!Ht$uwa9$+bUTplPI6N*2`C&cX zag#Z&#r22;Wkgq-5@seB*>D=*HYj`{sDi^Oy^6876pI@Hk-SBz3F`nmh z&vVR+%J-FA|Dp4rzSrZ9$IADW)Nh6D!}CJr`${fv@{Jer9cOGmo}UYi7hOMGc)aNH zG5)(3vF~fU_W=sebH|jc*mx_(p5unfcQoAffO~JI`2JvfNvG#wTwZ0a-*vpkv_JQs zn`cP*`HISSGzwk!#I|R-o}<-wB8ruV`QYB~s(eSowR_>~PwqdpSF!tIrRrk)(b#^u z@*NF#ot%5V%y+)!IJUCB@OWfnYafn}D(}fKzw@83**{g@lPTOj9IsT~lPTOj%pbj% z!slaoKd$ng4BIR7+-EpGW_$fFzbC`~xRmE4^IhNOJOAd>mFqgV(DQ=feoeYA<$f>Z zCtrOEok#Q4vyi>Y$NR^{%IEGcSDr&FbX}|VarbvC&!M^J5Zv>H;qw=Tp09E3nt6^O z%u5~@^5^cm$3JhU`|Wz3z{Od&-_5uG#!~J=$JxtaeQdu$ott;ao4qkkbN9+ec1o8{z>z9I)A(PnfLIEov)J4_etB?FS~vqWp=UOfv7R(oXPqZp6^mW zD?3-d%zfm1`*$q+!THU+r^5DJ-}@cK+C%em?mScY_)gN5qyB~3tCak6`=`oWahE&( z&f1&Hb?a41dGp2Be!1ZdE{@x8nddch9JumiA5YcYW?>m2&@L zV~mrOXGzO_{a(znin{-^U-Mi6W zGQRVh9Difg-+C#pe`2F8eIKTX70Ih z{oijQuYZ%qofmu}Zv1-xK~8rso+agV^a*pgEWSU>(T+*;VQjbcjl;ZqF7kJysN->Y z&nB)NT>BP&o+8F?Qu%dU#P%C6m5%Mg<2`1ch5c1*Iq8?jcaqi*(_9oa6mX6x;^tTRX1zw6C1+us%bZidcRitFYXYmA#`tToPW^6$2dS9#p{ICeQ6}DqiKd5#}x~?nLujUW6KaSN2ndC^kJQK~++9Oc$={| zU(T17vR`xcuHUIOZXP#zT$5{`bY9NYml`j&9jIeF#LnxK;x}eoAL~!^x=x>*pP`=l z>E?rz^E0%I$tvGt{n`z3bV8qOE9zAjF3eM^lK&g+&EC)bYiqT%<1-0_h4U9#|g zGW&sC``G&B+HI(~u6)VYg|WJ;{Cu+0C+ENPuDAmsT_hn=K za~`{t@s0etd2M`$(avkv`g!f-{U`f!UDwE;YnSByPWp1i*Sxm#n;c(y&V!e7UX)#I zoY;DX$5W~O)5fF^`;(;mE4lq;DfI~ZkC-^I`++(hhi*PRIgi45_EPew)Ho`?n}1I( z7w6x{(x1d0k8WNbzY}EV<>SuRG5t2@-AgI=cm=E2s5p9m+{H`oA5}it zm3rN~zV_O`N&QKwc~k291EuJb?yDwk=lFyDSWT2qA)dQqxnrK+p)U40nQ}iT67J7Zue)N7 zW1bI-?T6g?ZtZ7h7k~dkaom27pZ_fN`mWULB$cbw>z-1t3racPGv5lGuSL8TpDuI(^T!}Hn%Q*4><{r6K&=5+!I&&+oi z9=&kg`m!E8@6+GidvQB{|LoA>*N<1<;dIV__V)r}{EYW`E%*0k@_lzCUwh@#mGk_d z-}_)3`VIePyX*Vv?sq9N+r#y2-#B~xuE;cZT7r zyj(x7J~fH{LLK))cr{Ac}(Z4-0_O5Zzd1(ou9%yEw-K4WxQUDy{^uu8}IX6vGYXcxXS*$n|04K zx$iq>>+QUW9dG3J3+1wN@BQS-!fDTK5{93lj0}Ull6%G zo>lnXQ_?t~6u;qnLot3sJ?|g8=QRq?Ke_9s?Dv{BmN-fKCuzHFXMf%5uA2%Uk5~Ek znqr@Cp*|_U6rbbC7{4*~aqk5s_rpogTjcgfrTC4hx1RfVev`-18>?Q={kwW3A4g-Y zho1Y7iIbEk<=9^NP8N^vb?@he$4$)kay+M(6o>sx%=fIMV}DfnPL{iGtMi|Z+sb#c z3XfZvhn4SSW#>)IbAmC)Z|r@BazAgVxRvi@G4Bh{YpR`+#*yy3QknY|PG8us<`13! zwNbUj+?_p79@d?zda{tWw-nES!fhy6*h_a1WR-Q9jp zzFt!t-7j-?$>W*WJfe>0ugZ6_^5=!xvGScPo)6aj9ed@q@~G7J%+jv4mc1-Sf)!yYkzw0|IvE`7y)axYKZKyc<-i(Wve11~- zWLN6-_WIgu|0eZ2rRGhk-@zzFpLAa}X*;i<3VnAYoOjt!ev;yh_ja}i_ixPeUE`tS zxQqQ*%y=^%6GCjZ&~?Hmd2$qzfZ~bs(dHQ zT?ZEWURij4V0(@A{sqswnlCM7{ah2xDEBWy9 z%7>WmMR5P}J@@c^e4g*Lp5tKce|^Wmoewc?u$W-}v`;LS6X$XFk7*U&x=fhv%hyepo*DzF7WxYI~9&#tY{cirrk$HU4*ci{gHc~JHI{4$L-1O=yZkhAl^^@awOMdL))e7 z{CKhYx_Rm3{ZHM0pP#Yr4>#{$tUYvJpm@I`KkoVVB!3()={fi~zxnIOJTI+$>+2`K zee&^=GVVF`{PwJe`z}dx{z?}<=U%M6^XbFqCkl;gUtZxzHh4akC+E4S)#q)Hm z@i(+x%FmbQkIOuC-+4*SLpSg4-WMp=exWY;I-}g>Ti<%-w~xuIV)G1aXZL-Z)`S{aEdAJQSI~w8x8`H;g!5tRMINrDFY(i+nw(_6l*8FPmSOx- z@osPToP2!wLw$1j^XKvS_0MCA$MS^l?G)ONxw?GEi~F6rYX99!_Z@!rBXiHq9v2nU z<@1|;|14$roKB%~vcGZ9@g$vx#@1f+e*u1frdWJ#PnsWMd)|ML)7^{TEMdJ*m{Ztq zA^padhb$+bD=gGL+Md)t#q5ipkH)@V-Fr{@?YZCGcf^wN%ITQ*?)|Ca{-le^`|^}8 ze|flHinnXZzfYOpp6$c_I(fhTxBJm~v3NUizw>+;v)|o$u(-eYcCRt+JXYKv%ST;u z`SSaT$tS)?R_HiqKIuKPq`Y)~YRr=7lKrt>)Fs!;#b4j@u^sqbxI%ukJ!b#8=Nj|3 zH`~iSmzvZ+<+o4TU)&zP*H)}Pp)R?d$5tNJ*Zsa}etT_?Y1fU*PyYHO?H|_HJujQz zUfW~Z!#!t|d0%S5j_jxE%+}j+S#OTAe>a$A7{3(C1I8=GPfJT<;`ztDhg0L9U#c}v zwz+b#e8tL9%r5-SO`&=AQtDBx9Hsavr9G172~~gUl8;B_QH_6os@C*fk=(xQSKV_| zPMK`Ek#qCGUq&7t>y$zSw>Ub^nci z%eBA5?|c+%&rlcBo}r%4IqY_6 z-i^EK41Z6o*#0YK7c*ZF+Lsb1>3kacW&Jl)eaf|;ouB0A4?YChw_&{`#HYk^5@gXlt0(bJ(pOQIB!+VE~eklwNJ{YeELfL zH2+-qxGwEDTz@}$4l!wehPs%3O#1M9X2ts9eEOJtk=@I+{7L05EgzDf3v}@^--}Kf zmxX$sPm|tP$fu9lkJ)y`^P1-s_uOUj`_bd&SI_S`|MAb+h5DFwsl?&0$$;5oH~ z=UYQvOx|Tb=bGGK7I+N zHKT7Ve*Z}A6zb#mTjAqEev{6d?s?ec_6&6~?HTHe^~a&^rS$9efA({Y#mb#eAHUx= zRGjtC4_D9i_v3zlBRS7PT}(dwuavJ`_55%36FxUl?6?heG5HnhUrv7Aa|6la2GuXr z$Mj>eOUkEE7t`MKw=rL5y5BWO?#Du1OueO#y+4poAG6U%cSvSc)S-YZ>WpOukgFQ#r%f4m(Fkg z@lx`8U1PON+28Le)-LY%ea7c~L0-qXaa;cKYdib(;`x)`e*D_)l%@$0;$#wbSR{zsyH&Ps&H;U9tIYZBO!3s9wo=owC2TRLGw7V85RnUw)Fm!=&>F z&s#C=?DU1(dE+Qwjs5+nq;}+eRrfnl$@5TZr|j`T@ph1ZJ~!anH}kuhh2BTqFmdvi zJ0?HNahx%a-TSin%c1Qtd7k}VVPSuvE;-Nh`-y3vq~}B8zGtcLFqZ%Oj^+AJSh4T? zgvVVmUGjb?*Y|+j_Y=Z$<$iZ4?)wVm`z}E#?~4~JcPV~i-a8ME6ZTt4*9rObG1ps3 zeq*mcoS*VPcOE{sJf6={tNiY`9KYww!uun|@+s8C9G~HQelfqHF2=9gCH(F{G5`7W zF?kryKNs^K>SD?tUY8d08|q^Gj`g~WzgHEO!~K3$=J%{L9;xU!A6aRaN*+}5z?dpi z$%9HBRPw+b2bJ?e`TB!_8aEz!xh*GN=*qp%zFbxr{r%^u`Tush>KAo4os_N9-?=*Z zbK5iax$B)>%KC32( z`|X+UiN0XJ_g-cG@vPgv-KLC}@;W#FpBs;V?_|HDTV=j@;ktggoqlu6lh03XeILdC z$+hFS*Zq!XmAQK_Zm%}m9=dKhrDJ`szQgI9|4e;j{kZYAd63z!N%n5PXXe3Ne&pI$8Ksd6yCT%P9ot@3$V?ejEc^E9+` z`Io(Y-F9()`1^3o<6L{K&#gbpmCt{!J&zxE9J%u4i@!0B8`*!Xe9HAJv!8JN&L#N0 zU$(=E{yXMlJs-{77R`+I8~ileyV~6PDK1lH_Rrk=Td&79Ufz784cIDpYc(;Fx`J?^KKXvu)=ydj9IMCU@_d$bl;XcuiV?!KHmUYHN= zdle~vJlB{X@17|a_1~PE{r9!@`<_*17k^$^^RW9)LB4v>-W`Wk=8-#H`9F7;EB|h1 za9Lv}+w*E%yVBo){hoD|`GCEjR&BoXLgDz_Ux#dmglaM@t)xAz|#%^G`tY%%O@*H1U6*?gX1KJ+(kpJ`5-&h@j*H<8yZEwjxB zUY%+GQuA*^=v}*3`Mh$!r_JNiwQG&ft6JZlb-q38eS0?e_H6X++2q@^*|+CJ-=33v zdrtQ4+2Y%Cif_-UzCEY;_H6a-Io-GC4BwtJH|q9`IX+$f*ZTagi^_kVA6?!T-ajty z>-_Om@BKF<`giBuDu0|+o3mP(uPO6IjAM9w@%Uu_>5hv!e;>TwTyB4#y}=x3kK;yj zF#3^}mL_wWJ+7L~N3W;-M03XtTuw3{-IdG9=I^-v;PI6{mCGsS1830=$Co`0r^9=J=yPRpvQCvUEu>a-pb^Bpl&M{Be-v^&-ZoQj-x0#RF<9HJ@ z#U7`dnltQiyqP)3F6Ws~+TRwQYp&0)HlJUc`25<`=htRFzvlV;n(y;# zbDv*Z`21@3`L(6budRH3ZSC`Gn@WB~&O_+@zslxWwRs5NOK1P&`l%YV2Ly_&jU$^9|=G z+n>$y`8M0<+Z>;7bA7(G`Fz{N=i8<}-!}94HqYnVe4lTd`+VEN=Ucnaw=I3XZRPWA zYoBl1_oUgQ0?<7dAzyRAE|HfdDUp1-HqpwCi5uXS8Qo%Hv9g9 z%ZcXP3%Gug*=-(|lg+D}xNI>??Ra&HS!KtUQ_b7$cygNG->v3Y`#j!sbGSX9&M+@3l&2i%;AzKi_TN^6YiTKis|t-m|3rJ0IZnYqhz<&*yFL-@gp~<(7~3{WF|Bf0v8) z$G>^qII^SO>8h-b`kOB*z25XEKa4N`S~5=3bv2*2;W&7Uxh!{`>9^OF^=9;UT%S4a zmmSOPO{V5ju5UKKnZ&;*nnpWsFv(ncG1pHvuX{Dux0oio#5nj&uAge|g1ySMF)Sbb zlN;Z;dMEdX+&{ej-f|_E4Zhxu<_cWDm$N>9#C1031%7%pm(^xB%rA3XFclQcP zRBN_>vh=ty`OszOF>1}bw`aUMa}C;w_3pLv=MCl^|0q3fZu_ttnt$PO#r*%%D~soc z#!I6Qu{_E9OY=(em^m7l+;Hm?3D^Je@$74vYxf7oudW?e!{;l4(UxV2U^MK{5S4`f1 z%Z?jr&6m*cx|3KdgJo5!RKeA&(9{GpUu8~ zC;I%H)$f_D7-f_bK-L zhk09jo~kxqoxuD~nd5CgQDgozlYiHm)9@W{_J?QMaY4N~x{-f3m>-?NylFIF_%)YJ z=4Y6PDQEc#l{;J?li&Kinb0n`ob;o9d0TsaclXnBb?g4^?$@rneuDX)9hX#@BNwq< zs?B}3bD1(v{hjTFd3}4GP;2h8^JI1A9(z4eZ+`VCw>OxrFfPpJw^%(2>0{c-&DYeL z4_)T=_j9wjtT&t6aZ!VL=s~x?dH;d?`v$@*1r+coo>c!s|(|Rtc{~g9ljQ19MKd##BY}e!W6z%#N zo7cH<3jIxgN#o|f+47_<-e8v# z&8-LX?@8tKWmjlf$X_9SvGptux4UJP+1l>EOdiyAv7FWZ z`aR{Zzg=GO{NSD!kGo%}aw{+F z?nh5FpS8!qB>Npk#Vyy8<-fGw?f-{g@7m|P=VkVHZXD`!@0Yv!r2PHl8uQJ2=%?0v z1ow}5T)F$7_3M2LB%o7+FQ-nPd-uCHu= z(qO)NapCsM*PcoB3H#fzl<(vAdcWSd`}_^Y-RE!gzo+~CJ;U$snSOuI zdfDvnk7GW-jw}6hLO&`pKfwL>K0CgvGLPZB81ARB-xPlJVZO75!D2w_*Ixc>BJgu)nZ;?);aX=i&B8?7YLe+jH}U z9#Q|$az zopJH&eSC~3ZG4>HZF!K_hUIMb^Mw=5A8@}bsT{G}!}f4-s;z&H-`xChjk(D_Z-{x? zF|>DVIizEG^jv7Z=RsrI_W(N%MZaOM3+l|F{(9g){(i_OFrUTwzpd=wP39DPz13{0 z%P`)HDW8j5YvZckTE^HLJ1(rX<7?Sz8Dp>C$4ffD?P{Mht}^ek&*5bskBS$&WVzh+ zT$Ooik?~Y1{@itDmAS><|HAtRMefruzPnDSG8c5N+fRktzr17q?McV=M}P17Yj>Se zXYRx}ljo}$=x2GpD%OAJ)|=%~f3EA2uiNX}l%F@lb+`3jYijH~U7eYKBjePYpWWc% zRommB(af{+TutUxuj2Y z`-Qpw*&;i~`UbQ7LT+y~ zKd|#6P3DJ~KhG_9?B6lvISJ37${+R5`}Z8&af0_X{Cru`aUZiiraW$*tJYtS*7@u9 zdVk%H`Bt3QRNk>JSq>g2ve(}nm*lGlw=dX*`=!c{tE$b@cHTQ>evNre`6;xFsrO_% ze^6_#dIjUunQPDH67w-*c<)2y$QRe$_ehy5{B?x8zQ=tpdtG1WulwrF^B8By&v-9c z&hUDK<3i3i6^cu}^7H^Z4y*R(iIjO3&p8&d(|X#gpLFwd)jq#czQ3<2d0vR)Q|5>3 zPm-T=ckh|ioA(XT4&%3OE*lMhZ-e)n9^RgRH=AE#eu~#6DLX!&WVYBlxqhl=p=G|j z$Q^IG^40qC)%o((n?L`7o_`v4?SF!uFT`_t2l4O8 zrqf<0wwS5*dSHsV&)yfFYA&_+JExhi*ykx*&Be$^&W}B0mov;XyPWC!wOMA8?QdtB z!|Za7`TmnE=UnrilX$({X0EeKJZIa-zc)1t?Q%0SWS8^Ie7k+V+0-sKH{Upsx-HC| zcG+&9lW1w#()`PgC$=)v?S1d9O`UyiV4JM>tqQg8|N8oveCOeE=V4Mi zB*jaz=e)r0?QvFXje0xpVpzRe?U-v$3t(kv`JAT}I zv-S4<&7}Pj`JVBNDH0A;FwMQxA-+cDP`iq$QxcP`$GY{vXT>rG!cwhH}-Mmi9AOAJ}_^&mt zU#aus_AD(~m&BJlK zyKhnW`dRn;@3qebRr~wid?R~bb&1*iB-G0UT z!?2zI8+9@H=ibw)H3!)1sX9|*=jZCpKK4EM1~dH>wr`_3($3R0nK#+i)!b_DD^E8)cKr-C^T*2e_YN`>SemlwIO`E(a#pm-ad@htIF6 zow)s8dt6nS>2F~B;{9p6zf)%SZTNSMX|&5)^Y~W$yUtu~ucPsNuFr!%+3|d%xyW8W zHJP_r`)2b4yM3a0-si!lcKc-WWjju5F;|{Qe^bni6S$merrP~G&Ggy+x7B>%Hm=9} z)AqUA8D`$4{ClSPC+-h04}NB!Uz=@~*>cS>7u(~1uDR5fx6Sn1d7@3s+wh$q&g;zU zr~PK;Esb2xGyA`u%lT%qU2bmnwSKoS*S?PH+s&GDxZKje|GkyD>mvTWwV8x-bW6)N z=E+^T+}8Bk_qw*T_bpmlwl|k9;Q9`8_5kDVV1A79sJ$!8^}Ao0)P6Djn#=cEpYM2n z#pY|h&v%RyZ2mO*d~fpk-t6;zqH*~?$>;lIpYJU`->3L|pK4sbPxJZS>hpcN&-WQV z-)H)KpXKv?w$JxDKHum1d~fslzKPHGO?|#^=JS1?&-eL0-#7R9zJ<^CcAxKC`h4HY z=lj+^-?#DkzOB#q?R>s(@AJLG=lc#m-*@!+zLU@QoqfLVQptCWG{S7(NwVZVms#onLJ%u~4c9GlFd+3f$C&1!ppVxqak{yoX8 zoW=E%%@^&m#oTB6(-;JHtF7z0_&cebG3C?u`rP}Sb;e!C)cfn027evX=&xg%{B=yT zzmAz`-^=8<)Lq9+_SZ2j{yJugzmA#euVbe9>zG!59W&iu$IS58F*E&j%q)K$GuvOs z%<aSxq^Vc!+{B_KHe;u>AzmD0$U&plD>zJhW`)}VKlOK)t zzB}^QF6+#+DK3A{#4@IRj>Gk)bd0yTou95U&tYC(>$Qw2&y%+Qt2GBsW;yE2YWrLe z=DqBAv%&nWH4{&M3oRMXy|+>2-{ZhM$YgTqNyvJ&^P~YX7HQdEI+S_3QOq zs_Mh|{O$q!F?avF+CKlP?YYZP|Cu+g+fLk`G>`Jd!/vj)q2{*&xew!F1wnY|9F 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

g?3N_wNVEhphGkoxBD1F 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⪙n~(`@f;j&td!n`W34mdyLhej0dKS1 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

@jU|NNQmnsC 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json new file mode 100644 index 000000000000..54274e52ee76 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json @@ -0,0 +1,2413 @@ +{ + "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.22.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Authentication.ResourceManager": "1.0.0", + "Microsoft.Azure.PowerShell.Authenticators": "1.0.0", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.22.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory.Data": "1.0.2", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": { + "assemblyVersion": "1.22.0.0", + "fileVersion": "1.2200.22.6212" + } + } + }, + "Azure.Identity/1.5.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Microsoft.Identity.Client": "4.30.1", + "Microsoft.Identity.Client.Extensions.Msal": "2.18.4", + "System.Memory": "4.5.4", + "System.Security.Cryptography.ProtectedData": "4.5.0", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Azure.Identity.dll": { + "assemblyVersion": "1.5.0.0", + "fileVersion": "1.500.21.51401" + } + } + }, + "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.12.0": { + "dependencies": { + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Runtime.InteropServices": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": { + "assemblyVersion": "2.12.0.21496", + "fileVersion": "2.12.0.21496" + } + } + }, + "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.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.Share.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Storage.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.57.0" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.20.21406" + } + } + }, + "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.30.1": { + "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.30.1.0", + "fileVersion": "4.30.1.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/2.18.4": { + "dependencies": { + "Microsoft.Identity.Client": "4.30.1", + "System.Security.Cryptography.ProtectedData": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "2.18.4.0", + "fileVersion": "2.18.4.0" + } + } + }, + "Microsoft.NETCore.Platforms/1.1.1": {}, + "Microsoft.NETCore.Targets/1.1.3": {}, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "dependencies": { + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.23.0" + } + } + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.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.1": { + "runtime": { + "lib/netstandard2.0/System.Buffers.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.28619.1" + } + } + }, + "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.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.4" + }, + "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.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.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.4": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.7.1" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.dll": { + "assemblyVersion": "4.0.1.1", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Memory.Data/1.0.2": { + "dependencies": { + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.Data.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.221.20802" + } + } + }, + "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.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.7.1": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.6.0", + "fileVersion": "4.700.20.12001" + } + } + }, + "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.4" + }, + "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.7.2": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "4.0.5.1", + "fileVersion": "4.700.21.11602" + } + } + }, + "System.Text.Json/4.7.2": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.7.1", + "System.Text.Encodings.Web": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Json.dll": { + "assemblyVersion": "4.0.1.2", + "fileVersion": "4.700.20.21406" + } + } + }, + "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.4": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.7.1" + }, + "runtime": { + "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "4.2.0.1", + "fileVersion": "4.6.28619.1" + } + } + }, + "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.4" + }, + "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.22.0", + "Azure.Identity": "1.5.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.22.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "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.5.0", + "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.22.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ze/xRCHSSDe5TIk5vBDbVrauW1EN7UIbnBvIBfMH8KSt/I9+/7yPAjTBDgNBk0IwG6WBV+BBHp4IUtS/PGAQwQ==", + "path": "azure.core/1.22.0", + "hashPath": "azure.core.1.22.0.nupkg.sha512" + }, + "Azure.Identity/1.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VfF88dqrgKXZNOS/y4XrX/jmIfP3pkY+hBUzBNpoKml1nR+QshX6XlXWyToLtWV80TDQ1CmUVCJksktDg5+j1w==", + "path": "azure.identity/1.5.0", + "hashPath": "azure.identity.1.5.0.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.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4vZcVaxywAzfLm5mAc2/llaZQTzbCqu9KirxxI/t49AkZH5Qxf7JxuAMUuv2/6JEdOOkGDzpvdrrIlf6LkFGcg==", + "path": "microsoft.applicationinsights/2.12.0", + "hashPath": "microsoft.applicationinsights.2.12.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.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bKDPidNeqBpTDikPnIuoMoGd26pD2PNE41cut0ASwL5exJwLNggYO55U+f/cJkgjCUMR8i5nqnlfpGHSS1I0vw==", + "path": "microsoft.azure.powershell.authentication.abstractions/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.authentication.abstractions.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sUGkvOvpqlEK5zdZ7HWaou3GY5bnlNrE0LuZ137+TsNfgx2E3+0Ika3a02i/9+niDDf60xj4LaNOYDSuK5zdJA==", + "path": "microsoft.azure.powershell.clients.aks/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.aks.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Q760F40/qfas2Al+GQhhE4gJt768pQPxlCjqrjjkukgVsq+X/M8IqpCeBzbRTiiyerhcjJoyNxqlGuZpUhqGxw==", + "path": "microsoft.azure.powershell.clients.authorization/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.authorization.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1fcsBdYMmEJPMPN8EAgJkaJ2WxxTKH3VcLECYdL2cfg2bgN8CKbbjSvarrXEezhyduE+LdYnL0e8Pigsnaj55Q==", + "path": "microsoft.azure.powershell.clients.compute/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.compute.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BIMthJ1x2vQAN3iWChnNj8BfgrXvKXn+n06E0/h2MNurMXbAOn5eiPIfE8bnj2BO99uSh1ns09yEgOTPJIvZBQ==", + "path": "microsoft.azure.powershell.clients.graph.rbac/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.graph.rbac.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MfvwM8ABj/EswmYu0Bf/8kyAO6kUv2zYSihVn384SVmypomVKUu69GN0VXKbmGaovPI8v3H41Ldp7DqbPRun5A==", + "path": "microsoft.azure.powershell.clients.keyvault/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.keyvault.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UyCKG5BWVjYFRtH2JNx6f4KdccaSqww2y0OE2PYgib8VhLqkoPr/BQg6vKzaGsghLIerZ/egQ7ntPPw3PCtS3w==", + "path": "microsoft.azure.powershell.clients.monitor/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.monitor.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YAAHxw+zzvkGNWAi668NSoTR+V/7vf+gRhu1oFa1O1/f2NGpz5XuqPrQyAPrri64hKqB/k3OMrM7sjlIv16dAg==", + "path": "microsoft.azure.powershell.clients.network/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.network.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-urRIwRVzzOwpk8HhKq/b785DiL/arnmGUHbN4HvRN6ZsBkE1PU431YwgUlofb9pfB3buLcl0XJFRPLBJ0yZJUw==", + "path": "microsoft.azure.powershell.clients.policyinsights/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.policyinsights.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-juWnd63Z2Sp+6bvtOPOF0Gj1v2AfpxXcuyodd9+U7euBro2G7Yfo2UHmHo/uaYyQUbM3HaXJPvse7BLDKjhe6w==", + "path": "microsoft.azure.powershell.clients.resourcemanager/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.resourcemanager.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HPpTWIlN+5ALqJssL7+6BD/vYrWi3eWKQ3QpWYjCFk5c9HVLTNpP+M2dq9jbsxLsZj+5Pt6gC4FIS22Q13Uhag==", + "path": "microsoft.azure.powershell.clients.storage.management/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.storage.management.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b5yBD9FrY02r0kdNNgZ+uU0/QsW3AtmnCE/x1mUG5j8ka/V04AYUo+sDokQBzu+vnK6Y6OrVDtyWjmnKTDHpWA==", + "path": "microsoft.azure.powershell.clients.websites/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.websites.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9jZYZ9LKbx16r69y7cO9d7bDjpE0/HgeBU386Y/O6q05VRaq2wAsB2rbQ9AjxcPGHfwS0+2US/RImSSqjVABRQ==", + "path": "microsoft.azure.powershell.common/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4mJSjnwZVLQYWhP47eDzdt0yaLIf2I4pqaEIqcfAjkjdbKpnCXCnJUEFRId061yuKpq1LtfBZkHDRi68I5CJxg==", + "path": "microsoft.azure.powershell.common.share/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.share.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fObXEcuhk1JUoQ0fiCV4nK4NJWqvsfsKCzapF7SFEQ87X6AasL6m5KGT8JQSnHmc849xxxaixPTxyWaf9BBlpw==", + "path": "microsoft.azure.powershell.storage/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.storage.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HwyxUwDHCmY6Zdxg2xpFC9Gqmu92Xr0cAr4ElWYwz8Z7PE9uYVkTpKMIKd7oIJJgsIANTfqEU1HKoeI3FXPLqw==", + "path": "microsoft.azure.powershell.strategies/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.strategies.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w==", + "path": "microsoft.bcl.asyncinterfaces/1.1.1", + "hashPath": "microsoft.bcl.asyncinterfaces.1.1.1.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.30.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xk8tJeGfB2yD3+d7a0DXyV7/HYyEG10IofUHYHoPYKmDbroi/j9t1BqSHgbq1nARDjg7m8Ki6e21AyNU7e/R4Q==", + "path": "microsoft.identity.client/4.30.1", + "hashPath": "microsoft.identity.client.4.30.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/2.18.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HpG4oLwhQsy0ce7OWq9iDdLtJKOvKRStIKoSEOeBMKuohfuOWNDyhg8fMAJkpG/kFeoe4J329fiMHcJmmB+FPw==", + "path": "microsoft.identity.client.extensions.msal/2.18.4", + "hashPath": "microsoft.identity.client.extensions.msal.2.18.4.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.23": { + "type": "package", + "serviceable": true, + "sha512": "sha512-92kNTi1N7zI5wwI2ZXswBRnk61OUYnuYJXrlgOhes5IsAqGmgw9DPGmhUzeY8OaZ8TTrQdDzvgXFnbCHwLzSVA==", + "path": "microsoft.rest.clientruntime/2.3.23", + "hashPath": "microsoft.rest.clientruntime.2.3.23.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.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.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==", + "path": "system.buffers/4.5.1", + "hashPath": "system.buffers.4.5.1.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.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.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.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.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", + "path": "system.memory/4.5.4", + "hashPath": "system.memory.4.5.4.nupkg.sha512" + }, + "System.Memory.Data/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==", + "path": "system.memory.data/1.0.2", + "hashPath": "system.memory.data.1.0.2.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.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.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zOHkQmzPCn5zm/BH+cxC1XbUS3P4Yoi3xzW7eRgVpDR2tPGSzyMZ17Ig1iRkfJuY0nhxkQQde8pgePNiA7z7TQ==", + "path": "system.runtime.compilerservices.unsafe/4.7.1", + "hashPath": "system.runtime.compilerservices.unsafe.4.7.1.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.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==", + "path": "system.text.encodings.web/4.7.2", + "hashPath": "system.text.encodings.web.4.7.2.nupkg.sha512" + }, + "System.Text.Json/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg==", + "path": "system.text.json/4.7.2", + "hashPath": "system.text.json.4.7.2.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.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "path": "system.threading.tasks.extensions/4.5.4", + "hashPath": "system.threading.tasks.extensions.4.5.4.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/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll new file mode 100644 index 0000000000000000000000000000000000000000..2eff02a0138e8b7f4b1dd9ed2166bf818dffa7ce GIT binary patch literal 461744 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 + + + + 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 + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + 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 + + + + 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 + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + 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 ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +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/" + }, +…… +] +#> + +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/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 --------------- + Clear-AzContext -Scope CurrentUser + + Remove all account, subscription, and credential information for any powershell session. + + + + + + + + Online Version: + https://docs.microsoft.com/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 -------------------------- + Clear-AzDefault + + This command removes all the defaults set by the user in the current context. + + + + + + -------------------------- Example 2 -------------------------- + Clear-AzDefault -ResourceGroup + + This command removes the default resource group set by the user in the current context. + + + + + + + + Online Version: + https://docs.microsoft.com/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 / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; 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 + + + MicrosoftGraphAccessToken + + Access token to Microsoft Graph + + 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 + + + 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 / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; 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 + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + 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 + + + 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 + + + + Connect-AzAccount + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; 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 + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + 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 + + + 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 + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + 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 + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + + System.Management.Automation.SwitchParameter + + + False + + + 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 + + ApplicationId + + Application ID of the service principal. + + 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 + + + FederatedToken + + Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. + > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. + + 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 + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + CertificatePassword + + The password required to access the pkcs#12 certificate file. + + System.Security.SecureString + + System.Security.SecureString + + + None + + + CertificatePath + + The path of certficate file in pkcs#12 format. + + 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 + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + + System.Management.Automation.SwitchParameter + + + False + + + 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 + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + 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 + + + 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 + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + 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 + + + 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 + + + + + + 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 / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; 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 + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + CertificatePassword + + The password required to access the pkcs#12 certificate file. + + System.Security.SecureString + + System.Security.SecureString + + + None + + + CertificatePath + + The path of certficate file in pkcs#12 format. + + 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 + + + FederatedToken + + Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. + > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. + + 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 + + + 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 + + + MicrosoftGraphAccessToken + + Access token to Microsoft Graph + + 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 + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + 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: 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 = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPassword +Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential + +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 = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' +$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' +$ApplicationId = '00000000-0000-0000-0000-00000000' +Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxxxxxx-xxxx-xxxx-xxxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud + +Account : xxxxxxxx-xxxx-xxxx-xxxxxxxx +SubscriptionName : MyTestSubscription +SubscriptionId : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz +TenantId : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy +Environment : AzureCloud + + + + + + + + -------------- Example 8: Connect with AuthScope -------------- + Connect-AzAccount -AuthScope Storage + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ---------- Example 9: Connect using certificate file ---------- + $securePassword = $plainPassword | ConvertTo-SecureString -AsPlainText -Force +$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' +$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz' +Connect-AzAccount -ServicePrincipal -ApplicationId $ApplicationId -TenantId $TenantId -CertificatePath './certificatefortest.pfx' -CertificatePassword $securePassword + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxxxxxx-xxxx-xxxx-xxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud + + + + + + + + + + Online Version: + https://docs.microsoft.com/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 ---------- + Disable-AzContextAutosave + + Disable autosave for the current user. + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Disable-AzContextAutosave -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/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/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 -------------------------- + Disable-AzureRmAlias + + Disables all AzureRm prefixes for the current PowerShell session. + + + + + + -------------------------- Example 2 -------------------------- + 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/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 ----------- + Disconnect-AzAccount + + Logs out of the Azure account associated with the current context. + + + + + + Example 2: Logout of the account associated with a particular context + 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 ------------- + 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/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 + + + + + + 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/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/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 -------------------------- + Enable-AzureRmAlias + + Enables all AzureRm prefixes for the current PowerShell session. + + + + + + -------------------------- Example 2 -------------------------- + 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/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 resource type name, supported values: AadGraph, AnalysisServices, Arm, Attestation, Batch, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, 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. 'https://graph.microsoft.com/'. + + 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 resource type name, supported values: AadGraph, AnalysisServices, Arm, Attestation, Batch, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. + + System.String + + System.String + + + None + + + ResourceUrl + + Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + + + + + + + + + + + + + ------- Example 1 Get the access token for ARM endpoint ------- + Get-AzAccessToken + + Get access token of current account for ResourceManager endpoint + + + + + + - Example 2 Get the access token for Microsoft Graph endpoint - + Get-AzAccessToken -ResourceTypeName MSGraph + + Get access token of Microsoft Graph endpoint for current account + + + + + + - Example 3 Get the access token for Microsoft Graph endpoint - + Get-AzAccessToken -ResourceUrl "https://graph.microsoft.com/" + + Get access token of Microsoft Graph endpoint for current account + + + + + + + + Online Version: + https://docs.microsoft.com/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. When the available amount of subscription exceeds the default limit of 25, some subscriptions may not show up in the results of `Get-AzContext -ListAvailable`. Please run `Connect-AzAccount -MaxContextPopulation <int>` to get more contexts. + + + + 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 + + + RefreshContextFromTokenCache + + Refresh contexts from token cache + + + 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 + + + RefreshContextFromTokenCache + + Refresh contexts from token cache + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ------------ Example 1: Getting the current context ------------ + Connect-AzAccount +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 ---------- + 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/powershell/module/az.accounts/get-azcontext + + + Set-AzContext + + + + Connect-AzAccount + + + + + + + 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 ------ + 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 -------- + 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/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 -------------------------- + 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 -------------------------- + 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/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 all Azure environments ---------- + Get-AzEnvironment + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in +AzureGermanCloud https://management.microsoftazure.de/ https://login.microsoftonline.de/ Built-in +AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in +AzureChinaCloud https://management.chinacloudapi.cn/ https://login.chinacloudapi.cn/ Built-in + + This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. + + + + + + -------- Example 2: Getting the AzureCloud environment -------- + Get-AzEnvironment -Name AzureCloud + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in + + This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. + + + + + + ------ Example 3: Getting the AzureChinaCloud environment ------ + Get-AzEnvironment -Name AzureChinaCloud | Format-List + +Name : AzureChinaCloud +Type : Built-in +EnableAdfsAuthentication : False +OnPremise : False +ActiveDirectoryServiceEndpointResourceId : https://management.core.chinacloudapi.cn/ +AdTenant : Common +GalleryUrl : https://gallery.azure.com/ +ManagementPortalUrl : https://go.microsoft.com/fwlink/?LinkId=301902 +ServiceManagementUrl : https://management.core.chinacloudapi.cn/ +PublishSettingsFileUrl : https://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 +DataLakeEndpointResourceId : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : https://vault.azure.cn +ContainerRegistryEndpointSuffix : azurecr.cn +AzureOperationalInsightsEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureAnalysisServicesEndpointSuffix : asazure.chinacloudapi.cn +AnalysisServicesEndpointResourceId : https://region.asazure.chinacloudapi.cn +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : dev.azuresynapse.azure.cn +AzureSynapseAnalyticsEndpointResourceId : https://dev.azuresynapse.azure.cn + + This example shows how to get the endpoints and metadata for the AzureChinaCloud environment. + + + + + + ----- Example 4: Getting the AzureUSGovernment environment ----- + Get-AzEnvironment -Name AzureUSGovernment + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in + + This example shows how to get the endpoints and metadata for the AzureUSGovernment environment. + + + + + + + + Online Version: + https://docs.microsoft.com/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 ------- + 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 ---- + 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 ---- + 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 + 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/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 ---------------- + Connect-AzAccount +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 ------------- + Connect-AzAccount +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/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 ----- + 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 ------- + 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/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 + + System.String + + System.String + + + None + + + AsJob + + Run cmdlet in the background + + + 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 + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Name + + list of Target Resource Name + + System.String[] + + System.String[] + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceGroupName + + Target Resource Group Name + + System.String + + System.String + + + None + + + ResourceProviderName + + Target Resource Provider Name + + System.String + + System.String + + + None + + + ResourceType + + List of Target Resource Type + + System.String[] + + System.String[] + + + None + + + SubscriptionId + + Target Subscription 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 + + + + Invoke-AzRestMethod + + AsJob + + Run cmdlet in the background + + + 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 + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Path + + Path of target resource URL. Hostname of Resource Manager should not be added. + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + 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 + + + + Invoke-AzRestMethod + + Uri + + Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. + + System.Uri + + System.Uri + + + None + + + AsJob + + Run cmdlet in the background + + + 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 + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceId + + Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. + + 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 + + + + + + ApiVersion + + Api Version + + System.String + + System.String + + + None + + + AsJob + + Run cmdlet in the background + + System.Management.Automation.SwitchParameter + + 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 + + + Method + + Http Method + + System.String + + System.String + + + None + + + Name + + list of Target Resource Name + + System.String[] + + System.String[] + + + None + + + Path + + Path of target resource URL. Hostname of Resource Manager should not be added. + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceGroupName + + Target Resource Group Name + + System.String + + System.String + + + None + + + ResourceId + + Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. + + System.Uri + + System.Uri + + + None + + + ResourceProviderName + + Target Resource Provider Name + + System.String + + System.String + + + None + + + ResourceType + + List of Target Resource Type + + System.String[] + + System.String[] + + + None + + + SubscriptionId + + Target Subscription Id + + System.String + + System.String + + + None + + + Uri + + Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. + + 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 + + + + + + + + + + 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. It only supports management plane API and Hostname of Azure Resource Manager is added according to Azure environment setting. + + + + + + + -------------------------- Example 2 -------------------------- + Invoke-AzRestMethod https://graph.microsoft.com/v1.0/me + +Headers : {[Date, System.String[]], [Cache-Control, System.String[]], [Transfer-Encoding, System.String[]], [Strict-Transport-Security, System.String[]]…} +Version : 1.1 +StatusCode : 200 +Method : GET +Content : {"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity","businessPhones":["......} + + Get current signed in user via MicrosoftGraph API. This example is equivalent to `Get-AzADUser -SignedIn`. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/invoke-azrestmethod + + + + + + Open-AzSurveyLink + Open + AzSurveyLink + + Open survey link in default browser. + + + + Open survey link in default browser. + + + + Open-AzSurveyLink + + + + + + + None + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Open-AzSurveyLink + +Opening the default browser to https://aka.ms/azpssurvey?Q_CHL=INTERCEPT + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/open-azsurveylink + + + + + + 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 -------------------------- + Register-AzModule + + Used Internally by AutoRest-generated cmdlets + + + + + + + + Online Version: + https://docs.microsoft.com/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 -------------------------- + Remove-AzContext -Name Default + + Remove the context named default + + + + + + + + Online Version: + https://docs.microsoft.com/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 ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +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/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 ------ + 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 --- + 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/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 -------------- + 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 --------- + 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 ------------- + 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/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 ------- + Connect-AzAccount +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 -------------- + 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/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 -------------- + 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/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: -------------------------- + 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/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 domain 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 domain 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 domain 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 ----------- + 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/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 -------------------------- + 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/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 + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + 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-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 + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + 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 ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +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/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 -------------------------- + 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/powershell/module/az.accounts/uninstall-azurerm + + + + \ No newline at end of file diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll new file mode 100644 index 0000000000000000000000000000000000000000..e45ac91a1264184fd86bf3750d545a800176437c GIT binary patch literal 27048 zcmeIa2V9fM^Dw^8laPc^q!$$oDvH!6G(n{b2uc$W6;TW%LKG5A0tku+s3>ReU9tDx zJ+ar*^Tgg2?Ctbyr=H?FyGbA@SAPHB`}=&~&-;JlWuBSY-I?9l*`3+V!^NabK`ew2 z8@^w^BD5Qx_!CUv--8k;Hg2`o7;V@8#bGxU{fk3VmQ*RoRmd|Hq8venNG6l31nCli zB2Ole$^>C?iGm!tSmJJE#BZw+9UqQRG{r(LiLYL1wcSOn1qKv@kRNb(YVO`-cnaV< z5WWbR5S&)`8#8eK$)^$^@GB1>7+3HZTowP<@YIl)1s@5>jl;-5gvRM%MDqznXmxwQ zOAs=I$FN=qC25NO)k9FzA3h0Br0HBPF75c6F5kRlp6-q@0FiGDA z0>XiBC-~}of?>Mc6_RW@RK$J7ea1FG!SL1j1S15aYW$gt?Ft{hk= zZ2%u&@Ffl8Ut+E6%tul%9nS6OI`a~O+0(M9G^>~(z+h<^1OWzH%OD6aU@p{6 z2m%ZkxSBx_U~shzfs7g6yk3M z*U(MN>9JKLW+o&z;+MVf{_xe6gO1+i1(F?cTjzs-z#pZfDJ=O(xoigeWwgV}mnvg8eGA1uW0 zw5zF#&Aqy*D>f3*Fps#UYg_F+Vu=m&hBUhduH%;4NC0+`7G4qmEV@n8qAhepgGuq~ zd(TquU2?qL>MGOm1YLF`&w(xyALoICV;@&YVS{I@V}}2`Zw-S3oL=zlZ`s7}y*g@p ztlkUAD*Xqi?liS2QO&))n-EoR`oFMql7`H+%u zM||ir;3LpxR|>)(UY~3Pqa=Q%gj^5DOU;JUkdMjD)CG9)$-96eCzur%xdo7TjpKP5 z0#69OrWX8>P?_x%2(?_>65Q6>N*M&CG8h1#=Ey^^1R5kb!OU=OdpYI>KnGm8v^7ca z@}Mo{+Kl7M;mEr}RoV$=g=1xK+pwN>)7qJ<9v2>sr#I>#fHpMX{raoNi2DR`;8alG zCmS10Kf-W7U^feg=k1n_mDj6*1cR?uL+pq3w6sTNT0QQJS`Usp;BEM5V`_%zVlXw^ z3^{d!*2NI10k#5Fj8}zx&z(LnbSgO+&Hy{ zv>a9v$EgRDJHgW7xM^B&G`Y8;m6KC66e>pHGr?4x)5ic=g5AP7_PgfooPFt$v07p6 z@M#77QR7!Ev;_JIP7Ap@wj!S%jty+UaSi6yabOj4lyCs%JH-Q#_XJ>QMmxdK_-8t^ zyF;69y`o^hLD@iefswTd&6cMFjXyN_Nbj_z2KwOO=o96IVB^KwyTTW$A{aRef^RT< zS?~onB6l01@Wl0SGuRKn;}C+anOv{HnkHo+o3z1l5ZcdGkBWm9aeDGO$bgIC1ie6h zGc**$aL{?ZG%g3d=B(v$P&$EE2rMO#MWBGd{RCF(;hOV#r$J5x2SbHkyb%W#8ngxe zeioMBTdyadk2-L_0B1Y0qBuy8jZ1$y-$&{!AaE_f0@Q-^El=MN z+P)!mo)WwVk+TcrbI?S63?m4~ijDCLg!2qW$3g2!e};3hd?S4fM;a1cR4k15BGFYs zpdtSe)Su77rIQF}3QMZbK|2V(hlTs_l#5|^f`8&;d>9);10IHD&^JCRGQ{J(2)*T_ z<2;Q20sK{H3rr0M%_b6-k+H1gZopHBSY&dr=as@1GME+54hI}FO;BI`n}*@wDR}-( zP&A=<$P`LV&;dg6!EIR3?sup$6E%kmHca8xGm$;&LZ~!CwT6gjie^v`K%s!Hp(wPS zehTRIAw@D!j0fqX-ZA0p76KyQGiD46vDTGc@vQ?!az zL-j1NH^R`1k9EzU2OtM@p8gDVPO)CF98dwscR*a$0I*Ah-cuF_E!Wp$bI>wAmQ#rM zfdAL{@d6kqn#CJHHDgn#uZAk5%z?@v)F|FVRxV@;Lp0P&mI+u_rJ=HU1z_nB8mbr$ zE-W-gLv=JLfYmlpLq!-+K+V!nHSAnU4=vJA@7N}=TddMhKS3D>ZPHL@p^SreYp9bH zMRCzV4Rw*SVRO+LHD%L|Z^!1L_6`U>qk!VT+V@aXJX^h7N*{I9P_B9=P!_DAO89Nq zd=#mnCh%Q>>Pe__BEkQOj4OPMqVH+ZahMHwaQHE$Kp~`vs zpxqFy)lj<(eWB)dbxoqd5H)X&dp!$zvwA?8H=)Xrfl)lJ341O=rKpVCn{A99XsGp+ z404ta8fq(*&$dL}A(r5pNjw?b1`X6uDZG4k3v^IJJvWfC?NKz|Dxv0UgM79FD$!77 zY#F;PGHj*O3_z_Hny7!+f?ITCSl|p^QPhoz!LNQ09f6Yp8i3 z(--~RL0wh}GX2qA4b@tIB)ba=b5WN?>5paypm7@N9hag4P)k>J8JkxDWurAzF!)Cx zI;f$9g!-(ZdJxLbP2H{p_RT;vi%?T-T=|pOfoPkitOxj2AUdI;tO<2VLwOMDE}?3u ziH5jlr8|~cLv>*L0JT{|;j$o<3n`wqEC`ioC|nkdg5m6>Eei&WLXnVx{5vRyJ+P^o zA7Fc9@IQ%xEx>$-dccWysc1Y9T(U1 zH7Z4IiDXw~!@rNb(Qbpc5czP;Qs^y3RZ!a?mb65@4D_flsA)-c(clZXmcX&$3#e#K zE3Bo9Mt&#KlTeT!jj)`SXb#_lnoE@%`crEtJ%eOw3s|5Z^$}!BscV!y#FiRLW}pHb zYt)BQDfN-+2|M&h!f~L2^d?gdl*(`>C8ZKs2LUcMI0>x=7@Vb|s7c%lls;|DzE1U| z214{SrLkpfX?y)wlr4Qn|0Cs3{Q*(Kfx1h51$+|h2oBUMo*C^x%^^5m&phOWZqYpC zN+5%30ry6a0Q#Zl0J{KghQd(*%NR!XJ8g{OQCn7fq(r_PcVvL}vfYt6Is&i-ss-2v zJp<^1TI;zZFBAZ!VD4kWOIz$FA8B=8V{cL_u+qL)Ai0)q)0 zsKz6YnyWp&ZhU|j}Sq4rZi>Ya_C)BZK0W9Us1K8aF!;fstIZxnKY7yX!9_CEpFD3Xo zf^P;m&k&aykw*W{({%Q%hH9#89G1dTW;U5jTYzu%bkR9k# z!D)zt@=<%xIt*|wDgvAbH(8DVM*`jguyk|*-9#_YN7Rh!K(R~kPO1LjXJE2BulPIJasIj>au?LZ+MjH(kWlB_O@d}9;`YBg*l|%2cMR;&gVx;`* zqO{zmn;v{*v zOpIg_l~N^=iA4%A>LyV|$uN~6L1|JghL;eimVhJXJ26j@FDXpS$dX`Jjgk$LV|6G> znJmX11!$TyQzlnPv{g`Et{7~qwgvGHJdwof2$Dm5o}fu`Y~>^=6hqh3r81C9JUUT@ zC5SSzFbkGmBO1ovP?#*r&XXh+=1NeEG(#a*$_J_3LyGbg68Cs{fkcs*CCScq2jMw# znLDuq!rfP6x?bH?o+nd<56hJ*u)P|*UF{5-0<~ErWKfO$kPPn|7G8qicq6IyEf3ez zamsq>4SrZJU5C|GAptYMW+qHaBNjou6;fbeAAk`m$gTl3#33rUZ%faEqF%Cm*hmHu zFX#&X(ohm6Nzcp7#Pi+23sEX1IqBJjNm5l~Htf~9^U=^ENu+?WM8Ml%k^;G6NJD{I zyhITx6^kXZ2EJAWo)XQX`o0jmoFa#8UZU*pY9&fw>y@es<0Xn5sS+>C?n!rBv;?SYW$qU5xglx$g{-~MZ8Fr1)c)NzySp%iIhW-JU1;`qEsfqt`esRADSo1 z{Kf7NotM;?;zpX}B3ddNiuHh{@hnIbC<(-A&=8z~CCjDa7zy-W z9GWM^z5u(6DlIKtLnP)(GNhtxwVNPyT!@rpgI^-pW$^<$3kmyxL$9=`S}B=pwNedQ zKP$TVmO4C<%nULYPxk5zI5%BC4Y zghDbjPm)oHPXQ_s11QJSH0w_ro57te%`@Tg^td$7v@a;+=?Q46r41b5Y16)@eL<&bUn9PNWzK># zIb}}k3s{sIgCg1-fg(bKawtZ&T##*PmV-rGnhmAQ4B=^72&$pCC3`R%G?!FC0Z)K% z4Rgd%S7Zy|xDSP-E%XFbL4}f2P(#nsERQmVTR4ieHAlEDNW~>sczsRE)P&TjrtERs zDtNH@pbLg)R!oCsXk#M*n*z(+GA*ewEqS1}*%MG_%z>u%$Qai*;XwV8F*KJ;o7$L` zOw|JemQ3X`aIZUC*Ab{FZrl05>ufqesK9i1kzAGhF8kcH*59YO0&g&Pencpdv~phKqHY@4UT z)f=mfD!CqxSBv+`Pc{3}chbe{KKG;jCxmz9KEBs^bUTZHji=tt8YQ27@{exu4`!!| zYi$;X-+nv9*~P5eh9eS}cSm@7{nx-RGWd6O48XAP+dcr#hIR69SE=U}d%3Zs8Gz75vG}Kj~a}aeEXfmq+Px!$f{<#XeLhOJYD?ld6Qz=B*u7dcy z^lWJc?1o8j29*V5WOPgydJP(sA@&rD#XdqyDv35p93sUz8k|WoNPF)fHX4zuw+0z#o{4jmJ|8%;7RkG zV1W^(PM}mDQ$!v7C`#_fkUe&_B-*OCLX;b;lQ%+IAumu;P!G>LLcSETb&m~Cf^bF7 z{jOST=YzRHg0V&YAqyW#AyAUzbaM(>)}Mj}aOsmPSD$&{zq z~HZ@NU;0%S$oQC3&qW4QH1HpKai4Yfx}>@sW_06`N4hPvk=wc9ps$rowv;0l#(nrPo_ zP~&U3)=ktg&Te#-*P@9kT#5Q(@h_XJ^E!Ns)MRt@=}?I#^so~w8d}$PQr8<3j#4L% z9q!XkVtXZc?J?;rjzeRI4=N=rOn7AYVb7Qse z)>AP32OAHI^`A>?R4cmTMSV^*=n0}?;_(uPoCuwPH{;HLJ8M7KQO)6te^L*G7vuur z4Q@> zt3Op|7l+Lx_1`*Mt~ebfMuvF$_#%x`|6>}ZFfeJ=vs3OTBOZ=7ZTH~%MCiQsvkKz^ zE!Fs`{bMvWHx2fyuc40K{6-Xc53Zzf zL%a~-moG>dzU5;&625%~!ZwT(70t(04_^L8$>b!F48M{l02T#*ofk_^7P0WRNAS`q ze5%+l>u|!wA{zYbpZJ|U{K098Is_7ufG~g*$QHq>iGWiDKEvSC${;u=;7?o9DhWzO zz*R!I2+kc+%_#!c*vy^)f+^^e3TjEAR%R2DvPc~U#;yM64d*4W0TNK7p>0=?mjnMK z&{_pr5S)AP2}c2Zd}0{{T!GFhM*!y_IVynq3ecMc&usW7AUGb01n_K-kPbMe3*qD> z04vFWTL>5)odTYDARX5&fVwJ>BOnlS8nVN`(xrgbxVKW$Z!A9+q~d;J8{pHP49;oz ztk$3}lW=jb@o7&$%JB&>8(QYpk6+s_{0dAo{2HmXPcE5*LeL{3b)mRPJ7H@oKpuv= zvo#EUg{SK0CJgi{iH)V?MA|T?-`igIgo)3f-`gJl_O6~oe7?lLzGs1MJQD~gu8!Vh z;3+_JgFYeD@Pe-oQg7J9;5`9K=gcevN!dE1{@>d_cbEn2J@Ec4Y7Kg$p?{e~BOXyM z_zU*xOej@Bo$q-9v<7DK`#uRs-KOTDgp4mvBNuxM9-nsgVG6H=rsnp)GY<{p%q4z+ zZxZA%_B?Wv@b^CT-_Z+4Ei(U&^?mCF-}-qn=wWl z{ek6?l!V2mDLurba`-MBicOVuq$ze~EECOG>u{Pe`YZ}nvX{~&h!K9%mMxfjvu!`F z$I^SdD09xKV>1n$N^kN`T{$^c@%i{Lapcwem1RbyOqt$Sri}Hdl0{QAZSDmrK*D&h zwI61_@xOr$MJHgfn$A)N(4~<=14f_2>c!@m)4dXf=8P#Oc;@`xA|?D}oC!az2u&Dc z%;cKGxmOIo{)&b6OiRq+n>T$(7CJHQa5>AoRee$nhiI`xkO)6;gH%C$*ARgxBNQ_B z)<&K}#-H&N`gwW!_@@Br38YX%GOGWP{%QKp`iuTEWmIcjL&4m!%BW^A*A$;FgV)K= z-T!s+ws(KBZ*02X>TR2KtDEuOdQV?{aqXqhWj~d%dk;P3c&gK7j|tJ;ZB8zIF>cGw z_SPF;rTGM}o4&Gk?0&b;=MA6V8@hkxwip3tqH)OD&0XWuC$}E%`|8e{P@iIXtjGQz zcZIJ}WH#{F@d^PsgyLQ&h65B+~%aPYvS zBYe7Wa_Ykyx3e!<_HB8+$aCBj%f!)q89KOO#f_8u2ZrUf{f)OW>BPP9n|}ErD?-sN z>-6Pcrgm87^}5z8_A2u<=ScQFzu{DdgL&d*%lJT^BFJoHCgpN?-=2-#{v5Hc{O0ef z5y9nAAGJB9{FrIwXZBf%m?Oe>gcJ4dz+V^#0X(L9R717FwEEG-}L|7MAGx50ClpV!%TOQ7I6?S0SW9Kn2*SSoIgWtr| zzZ=7482s2E7bHkCVqX#`w8IIU~}JnWEUem_(+hmS*Vk@PAYQ!&3f(3Ke6B zJ8n)4$ybvBR3 zCAg`gkM<9_S-Y^?`2$l=beQ%gwRsxr#e_LMDwgPXrMf-nvC-(xt9Nbg91Q3^YiWl3 z)Y90?;>419Ue(^!t4=-cJUc3}!Y_Pv+|I0LojzGFDyy_B>RIVMZEDLMQ}>$wxO*$} zu&?06`K=!fu5J9`NWO=A^f)W$#S?7g!i;5y_J6p$>*~4gwwZxD3wlnb4jAs;)S)KT zYG!qR^XMvpx&7_2uXijv(t7Yud$-jc`+3>;!m!;{!kTw}l*g18N87n?$Um>wugAqc zAMV{-_;pn~gKI1I|CD}G_V(Sx>VkZ`b^(iTrVoBG>F2z`+e5~sY+oHxWZdew-@pql z8?GDA^Xj{0!i8t%lf542m3a@TDmlDo&?8A+OTQtL`d+AXns&X_Ip;~Igf9Cx*i0(* z8!&78pJy+8ewUPbeesLQYolW8-u~1h^qx((2_1*Fxwreq`hB~;l-S-JJ7cidp614v zt&Hi{+=-({o*Ce|p5G4z#`M{4zhml}w_C1P^fO?_hdjtDg8}e*7nE^M0cz?9ZOo zUlB8l0vZg$n+mEYmHoXscwFHsi4&T_&YV4dfMZLEMTTQ^Pf8+m?ViR-)ARiHs2{Xp-JLsTtOtW#?d8WOSpW__=?!Lc{*fMQn%Qmal409(#GXW$zoKCO(geVpgr2bmw`$#hX6g z+B~TC(CpITFD}36@hGapDs!imtBNyA9{!ja@F#)PA<$?_~IHY8$5C;l}VjBM*0SkP=kdp?|}^WY5B6@@Scc)M@L z#$w8uX7zi&9>anV&?w9)+&a<1DP8wi=*8ANU3EfO-KN5uNx>~zu^|#Mag{NZJ<6jr zQ3#^d_hF92xLoyHSR@j`x`kB>i?u%3r7>PA=rifU9j`W z&_=qyk*{J(7vs(g*rl_X(iu$Y)OsVivzXFROpsO`O<8&UojM%6#qtcLN3KGe13#{0 zR5?s=y#Si=w)Yg+>0Ab+kqZ@ksgwa%0%>q8Rlz|WU-M|Mt=t86-)yKP`ewc^ zUoq!yQekuV3s+T{t>+ueGOfv&HaB!u@%ci-DTgF!?yi9!jwq^gM%C>Pdd&a1^MP(_ zmc5bQ$T-m2XT|LPlF?I&$4A8Xx@tIW#QEkuTE6KLIzHjt<}X9;1#;ax%zqfrV#UQB zb_Fy1YoCZug#`>NYV*dtc;yt;sEKb+x1%GR5C3TL)ABWXhVx%!eadp5S?L_)Jfu%l zMk{@(EM?BD`=j0-oct!j<@V>!=c;^O${aU7*wp^Txm$0HH_dgLJtxLEz~D8n;&Q7a zo;J0wj=7!fw`hBmKmR!Y@bL{BA8fsL!*X2D@IHQ?L)$n1Vawb0A8xyL5=iH4?OTy0 zldsyPIufkMSxGrN1(pSw#|$z!xGm;g&Ey|i$}Nk-SLHtlc9twV(mx@+{D@tK@9gqB z*WY}2ZM9@x`e!nDj)>U+QNkmoOH?vph_lPu^Thi(r>Tqn!{1rjr1@=D2&o5oNxTvW0r^uPD z*8SP7P071O9}W!J)nj(;v%F!=pFiz5x6r1?*UQ`5WaT~F^y%~XX9gutrJXl@W?rzP zC*8S|myLkJPtDKo z$1jN-@}+R`p{ksm!KV_G=0-*FzX;20CopBU6~x(Xa&sM9 z@_xs|@h7co>{sMvoo7OIni~qe8P7@!_zt(W8+y%cx6Ls7Y`egB-38;IAziPX3N*j8I@;&f zn&)GdMh(E8vXtM2}m zVDR{dAd91;+U{*Nu6y@2iw~71dmh-bwtM8%p}&n0e$B3H|L3jyufsc>Xx;4cnN_1c zROj}3zHq0&WJ#H|6;ozyR&QJuixQSu(@dFFUHuHbgr?qBmR?<6dWk7L|38wJ zx-sxS@WF@5whd`%6#h#NnOLB6xQv$Oz?uRYojgOr zyxqJ*{XN|xLg4V{$h5)rSmrGo#NwCm-QazLoLqtCg~`e?Qwikd7EBrYbHmjPRX*&2 zZN-PSJ?Y zL#G#R)lV$C+HYUA?Ye5D@uZ@Of|$Widv|+3JmWHLH@oy{?XEC8-=em?!)}zE&q;A! z(`xG734TY0PR{wmw`*am(+-Nsch8m&oOR^)z7;-+GXq=XJ$_Be)_tD)VPw_s?!GTa zkG{UM>QismZKXywHG}`WS$wzW;d|*XoW~8{VCehl)8eg$rYoINANk9f^du+bZ6>!~|LE8IBS*e`PrI!CXWzJ2ukT#4fd zo6mzUEy>Grx@Qj zwt)WW+};h@Jq`t&lMZt@P#z~apFHPR-qw?Yg6x-R6MbLU6+Ly*dfT1L!dWi|sd^k3 zTYPb}(&!m4)xA-6zIc^oe>5Py|ERYQ&P!IcNc6FNqF~Z+g4>GShe>9VDibQ>%VYm4 z=6!PsrT*g_M^C0p8Q(Q>V2QmZT{#kP;2Pt~|KkCwE>HkjK zw^viBf z$Yk^MyS;`^tQ?ykF(`Y)o^^49w#$Y)iDH=dfxq{1-}P#&G~G~s%j8X@o#(Qb=N_0I zIhiu5EMd`;bN8bUH7lH&yi_*x^ZWVtMt{t=%AwgWp7d7?tlqb9g>ipF@0WEe-+mmV zSNEouY22C0Lndo`S*1KUs^4kL6W^`vYEM0V(Ai~%XKYx|Y#DEK){$T8f=#Ed6I}M1 zDpB~nGhRL+)A`tR_N}FpX8jQRx|-v9;@#S zu-}@d$WlIfe`o%$^QaZgR!kib6zSc%;?@(TxMtj(oQz{j$KE`*ujLwn!OmKAI&kr= zJ2RxSvR6$^sx=u`nf0l>vc&0T!3By4jFGwW@UwuzO2*Oyuh-(aF@R`iG7 zw6l-+om|?Fsy-Yw?bxO33vTH(KU_su$NIcH%U^cm<`inz;AopYJr`_S9sR|5botn- z2_x)libh;?zQFBU{2|nCZ}9w}D9>N*tTHSW-w;?Vf z%VUp*ETZQ}%_SFCmfv{I|2Y>|njp#eLtymt^z`(BUoYSqnvh?!Kj_?=JMMu|uQAju0ty}-zcfU_N@%1^K_ckBywV|Zn$O$Gb z7bev0e4Orhb8xd?`@gN5l=$oA=VOv%Uf$X_arwQelehZ2_FV8JS8DXLuUqaU;YlB- zs(ahVwmow9)Z~#nk|y8$q}OXsPFCl65mhgiZ!GH2asBCMqrx9W$bR;`bg-OBjdQI{ z-}=j*+KJ=t&stA)|7riwHP-zy2j2cLZK}Opz!$-<%HoiD5qZBHP4m8GR&n{u3PJJ6 z&({`(-`T0~xKW%|viHW?k-pD;qu;y8R-5&Fd_a%2tXjD;rlV>`OYgE~uS{O=>Sps| z)#JG%f}(G18gTf{rK`$-uCa%_{G%t)`$DtaO`eYK8BtqZHP|LaL@9sHTsq*2Q$Ahm zWuv&VO7QCNCo}$)47uScU-9^Ul`BU%^iN|{Q)kS$x+nglL51jzFUQAbbhjHfTU3A9 zda>oPA@5TYdiFQF;kb8Gyk1fEF;hFm%ZVQoj*hXOez1$>jpiLs@GNbDhOG*}!2;J-dZY}J+xn|48vlIbyegqie01La zvZ-And^-GU^3{X=n@$*PGRmdmKp@ck9%87u8H*lO3@7A}|Jp517{0|xkiehQO5rb= z3dt=_lVRq6%Z1vd_sORxKVF)eo>d(%V@kg(XXn`*Ws=n)JC1>0jw<1oqxzq9{)-oC z_?IKbjq!E!^dgZuMH?g`Qsdu+yK8BP)Pa8&shhY=Yb;y!&Gt!x?!sQhpPe_CNyhi>s)naF0Y&Y?+Eu87I1B6~X{I47y>Kk-joIT=Po`23y&4l+4PyREz zddUo%*1tU&l-VgU=GL6OJMD*E^>tscrYsq;HtX%Lcr3lUSO2%+cLvM%cQ`G(8WfpF zU9-8JQ)c)sr%lrRVTpNdd+)im_|2q%<8QL=NZv0`Ui-()old>lpKDtcTzSBDraNqN(CFcVkb`KoXIqs+OPoB-M&3Zfe{Z#7x+2g7&@1qrR zlXZE_G4IVqSL5sWeQpJJIgymJFhdpTx+S)o+aU|~&;#O+ZTBm4ex9UXwTl_b8V zyz+y6zc6Z2itW@PMvIp_-ORLgYP;93$2{4e4oO1>hnsd=^ZTxiCm&Y~h+BC6Ty*}9 z-bwmfq*U0*5lckb$~yi}&qD?UNWYvu6cROZ1noSIh{O!mFLH~QoJuly(8AKLn4y4*F|{cytE%QdZ^zG@#D;5g%< zO4V<0^`gKRBP)eo#rsY_8GgVoH>`Tf?zx1f;D2|bhaNmQW689(X;yz{!gw=2UMckq zA4bh!R7|Ia3mP^hbY+|wzD5B40fGyFrtLOs5HqAMePlNim-_0orSZEP^|yTZx`(dh zGd$d$#a$v;qQ$B5O5KeG`pYUUMfBP8_ij6jOFs+>^}S`=rAzCn`};U8?QlEm$xo__ zea;yE>bAQ4^o8fGz3*H2UpLxe`=I*TiYH44BUo!L7v@w4Y`Z@yIf=W` z@b2dyoa3K{l(X*)IO;Jsf1-OY7oVf!yN|h9LbadpUY6}XZ_Cj;Q`Sx^{p0DnOI22# zXlG#=+XyaM^vU(>^#AO1lFQeo?s#-BU(2ZOO!N9HI=Fo`YIF(r-34neqXjR1UwuC^ zU~}z=+m9xNY_Le-v_3w)DkZ?he)!$xQB3J49Rak5u=FWY`iLpL&y-fN1h!s0OY@cCO(t{ZGgI?r6$vw(Kq7dnzDo%4UdI%wK(aJzhE_N~H5p0oX^RY7Av zT%~hA?0b8O&G0(jyHz_Tt$@8-*CFBECUzP8AA@>K5OhxIrzacp!69!)^5L^({{pk?xF}@ciTzYx+o+@hUoY zbbcClYQVjtI}O98*$-YY;^*pfUsYH9Lj782zbZ(-k~V469L2M!$!Y#^&r&z^sT591 zo40tajZgen!9|~H@1jHc22b94c)NU>mM|l>qT*Ett0#G7C)N(Sv79;vf2!t~=RMv^ ztlxc0Zr8NTvhpV%ULI+)*l$))|8+&pJ5F=h7k;PBwm00UD@ZjZM%*TH`h#OTt}fjl zxXbuT=*5nyvktkGNMpy}^0eB&SKqni^L9B8_ihu|uKDn!=540Qn(nqe=D)JJ;|wqH F{x6v;GWY-h literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..a705c3fd25a8824c3a6cffa9ae5fdb1098d658c4 GIT binary patch literal 276368 zcmeFad7M$le)WkI=uUTB)On%RE>fY|2p)e-jfAW4lzxhDbsi&$= zojSFhTeoiY0rM|bu2L$3|Ns1_Qjfsr-z0Ir+UY`c-O$JC)Psqi4u7O-|DO(@b=>iV zVN3J=;`~u34O@8B$tU~Eh8=zEu>A6qhaG?Nu)PkNIqW3=m}5uR)+V5 zb?;;8--o6BMvWL&UA3)J9;AvJbWtnlVW1~bQdKXsW8@|vD2Xmmz>j$_f_hCln@Rbv z><2+Y_-g{+gGhkyp-~dSUwuSfybb6hBdP{ocI$|m6~=uXe^^O$NgYRc-->*rmmRxe z8N$n=LA_X4$X)q245g3G7xD`MifoWkc?iVeSNu(a^rQ2~p6DYXWu?r*t8TM&lPj_b zxi9sKKg#B)sQT4MN_}fzMa6WurT++QWJGlZ*jIT&oDQ~1`v}J^3IPE9%K$Lz0ss_m03iUNmIe?4Kr94=0DyjBQV0P65*t7W0Lc�zh>L2mt`fGFgNGP#Xe5 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�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ν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 NYqnQo?fvTr{XYuy=!^gW literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll new file mode 100644 index 0000000000000000000000000000000000000000..f82770a9ceed0b7d84854e2ae98998d94a87a9f9 GIT binary patch literal 65424 zcmbq+31HO4_5YjiclW!S&AGV`jsy}|bIB!&A`%FfqJTsWMIa;rf*~7s6BIX#K@hE? z^}q|QMby@V9x7U|TC9j?>rq;zB7z6?ptiQyTE+DLd2ePn8-l;zul+~&%{yk^ym|BH z_|A8BIrH4>$R;8eKL7qV(c?(@Z@j?&8FWFMHt@+b+Me{AlE>Bb-;~rXZw?o?g@VgM z^(%`T>RVfb?Zr!)ibEZ(#m%k7wKHZHuM9ReRi~!L+#Rvn_S2x^ zWHpTFx8Qg+x9||sV#XDN48bjJH#69N`5O;8_*V~7XxI45IV=C)lNwUzrWZdWnjyHN z^=`xDQFe;0H(GLZF4}po|sGeYJ7F5sU?VvY%AL=y8h57--O;Aq9bTO|FLZrxhZ89`r|gD zB;oded1!xE5BZ(g04tJD9sBqs+EkQQ;D04YTPKXo01EyTeaZ{`BqRy~W3!bI!fzCKL`1gm|7|_mmA5 zGrK%%n1`-J-Eg-*I|K{b@~=UNsIpvLwJ(!0Rd-G{jPh(`Se1PtC&`)0(5@lb70KPX z%nX)5=hm`3-QJW;E7R`I$$=ngBSRGBBsJ4Ev?Y+Re+WpMBQQ|KMXU}uUnP4g2Zc_9$P<9`DzdvB#EBC| zVP622Rs@DiUTGM&!9~+h2ZohD{2?;>94ovRX>yMwR;xMzqZ7~;`Ia2!FYKmQu;g0kEY+|kBi705;Atv;=w zGS#sH7)VY4{Z>)#BzwwNNOpPPZ$P=eFQh)SOzLw{J?g_;?6>S7npWX+w9m`!z>S=<+hHBy z*{l|3Rb*o*ozI*)=Ad9jxgDGXJUExZJOC#+AJA~m1sXn#0_CWOeF#6vpH*eq<#v^2 zm0Q8TLv9PKPSF(eZAjQ^TOhZ^SCyKrzPGOa#3r)I+Qv~;7q(O`z2bltB zEoTyD0v%amGB2VD6e?|FdZJZr!MFE%^37WLc zq!)796VEJ$eJq82B3u&=fhx12VIW*Zn%+Eb2qbU?q*RfYYE3V`p$0!u7<4gqyjVZSyF9qBbdRv5CAf5 zvL%|eRap5};2N;D`keAW7CV8*ja%j(M1kL3R#iM?&9%r;R+Tqo&G&(HJJ$h*uV-Et zOET;*N;*Eb6TAWB5MGI#AUeVc-pDyO0qD4buT6yA9Ot1QIKm>_bQ59StRe530&GRf za_y~YE}rZw*4&C5V#RGhx}D8{;oF(l#S>D#AYih9(@N4R>-*Zo?0ObURxBO&eJ9 zzqElD7j})zDbtW*T*$l(zsj5mXCie)@0L{WJMIxYCwebZC&HATJJBwlJDH*P9XDHg zPWur!wqDt+;EzGL+`LPy2;K)=?;9|*2%hzaQgB--loX`PQhkb?=_k36m1S+a?{c(E4$pu-|Q4_cKU60`fm=y^NurM zb2tZ<^8o%CG;;cLlRjk9hfVs3Nw=HyQBHk%=w#j#ptbTBAB?OHgORmiFtRcpjI4wQ zBP+4eoG2@?(mZ8VsY9@qJq9ZL3xKFp%KK}yld`z~9tWG}xF?WeQhSmUcl0Sv;QptP zhJOhVeFlJMyI(P92LSMA8UHmvnk&s67>Eu^bJ9F%-tcqal^3oFpr^U%$C(suawW`R z%tlj$J2_iCEZ*yim8;I!iT7e_Yk`v z=LZGeNFY#)D)a5&3*ZG`1i(`M65}rel=G&JEBElO3{fs~2QDVPam zPWdge^FHh~NnO#`CDn7v8-nLV-$d#}n9_5~5EzR&g&7IYG8WaqSC~9S@9(6n9o;Rd z*7tkCbE1Dh>O`2*`i5$K%+UJKKf__P9exX};M)M@`zkW600P%>1@~~iKLQM~gYO`z zJg6mha4%CScJN)K!F>RiV6C?Z^C>@5_$wSI_#U`gJ9gXqK~#OleSZL0l>;U4+>Dkx>FbEyX6~Op&EO!8-&FnK>bSv6}Hu>$`VZ6r-Ab_39VhLbJG9t{R zbe=9P^^{|>$M|-RKh@HRJ>LrKVC5nXbM3tfixAU6-n>LDy3EmRqkBG&2dBJSn^ZN* zu!j#aRkj2$MofkAA{af+JUsnqVY%H>&Ze?uE$8Vmh)GAcH#|=J9dk!T@O^ZdFL)|A zPWWQ3wtCG8aB%Pg@XOC#a|`fpXA;Ex*z4}!iALPfPX*CWL7xep6Fr2~i7=%j`8XZP%+OCk==ITDF;dJVi4!BUF)D=%d-(Y? zjI}2Amj<+x19FO+b5wS zJYq*UwF8?V)OZjsad>)@F*1g8!51f+^b}6H=iAZQRxdl&eiZd&*iWu z@rTbfPAzwz*y`CjRh3 zQ~npaJPbqojJ=Ec*30EEF8txerrZ;{+>?pr>U)2_INbv-KV5D z3$k2RC#T&x_2?2S$CQJne}kK9B}H-Yh`CrpCAb9`L`XXUtY8&E8)TM~iK7%Cs5>uS zw-a@90bMs{6vR%&yQfLrEXZ=KPENaX8hh341RR#SEx$YJVFl7q(_AkYWmP3ZtcVt| zVS#gDOj%V5nBtNo@PfX0$z!`HKW^qRU34qFY(@Ta7ip`KQF-`Buqwgo07gqiiWL#} z4Tda;9lI~fQ!(7{31WBc%kpYrrZn_r4L{^Q!pQlEO*6-On0DwQO7TbPfk@Xkh#c_Kb|usKip1E6L*1L016#TVGYW-(^Ln z#mLH&Ohey-y&-HF+PoVlz>gtJIBiLRVwCW^yg^I>4rU3~!jlabFDHf0u&^sXZ51Cw zVD2>DKG%wrpj>befE@bYiw-I(AB4qdG~6BUl_Jdb*ap!c>65|8jg@h(WkpJXT9Goq zFy?M2Iz(s`H~1dc;mHC84=)?s<0<(zb4Gw932Zs$bQxo?3LVQz}m z$w_w()?p>{AQyp>DkN5fs|aG%aFX}srE*M)LeZ2IsD@BSY7f^F!1j~li+#Z-)>q#^ zc_t3IemgLXfV!o=1whuzs8fE_}Bld=eM(SdlSEqbCCZKZWtJj7KySez$||nvZvJK0YF^2%ZLv z-8mkqaVM*VJ8L-UoB+t~Jel1&(~2+`?&PF9Ck%_kom>P;YLN^vJ`^odJSi{<{C!#M z*&c3SGML<^m=AB<9QPqtY6mcIeG)#{Y4n5-_Ac`|4v}JINZijc8~Zuo#$11P>^T-= z0qXD|Yj5qO}?^jMoijBh=NUX?oKs$IQU|Ci2koXI+a_nKw0#ly% z17q1h-os$z(h$})12Wb%6Df4fLSjYE26Q_SCW5nt)1y7vQ&kkM1GCH>JO>G8B5X8$ zwkJ3jNx5eYc2oL53tJ}~XknA&3u8CrE9+uO;8d6Zo3O$0@kYiMz|>ih;;l^cc!Suy z_}sz8faM-{u%6SHf3RQV=0=tP*ue%sE5Z$zGnja;tE>n&#N=uOYO-=ubk^!{6YwrJ zE?#U9j(e9fqdL5dh07C#g#qk&Dj-_Hq6-p5xi&wUSBG0zvNBOp7(j1f-^TMgwm>vg z#z8Bx_?#hl1iJu-)gXf3)E zV{_VtG0cNWub2bu*vpJahvr9Cne-x)Ud-tY@r^%|7<8Nq2W6az56Vnot@Ly&axohd z#0papTn)5*sTH{dsTGNcpcBv)j2g+BK9WmWf`vpj6fz}DX?&5}9jMUm7dN_gJo zeR>Mw1etu0nRif?ndTi*7j!$pwSYtP+bNDcUbH49DvDJFU9q_w8!Va2FGJDTT)s~5 zoalO18evM$<&&Wcb2&5gTprVhS?qE!V{`il(0`o7^agO@pDS2}QyC3k2_zLO`uC7V zuL1zh!syi+-^lni0GUORLE^|IVJL@@L9w=neA17-l*T-x8_c`sn z4v-%xu<}>ztFt1^<);Zw6GEK};c0@W{S<8T+&sgJB2nOXCv5Y2*j~NOGxL5L{rFKT zFl#4QYhsqyI-B;uAMg#Lq726L79_#D0Fo;*J;AL&!gm8W`~sn3h-`HxtS75y<1D^LMboQSZxo%_HF-wzNx zla1D6G85&iP#)v_EUr6~x^u7z#F4c3SA+ne0WLMKP!KOsmyl3~ZA0%W!F!*zhXf>Bwe`zzeS$% zTpL@mIDetMPISrHs1?D)=?Y?k>X}aKGKZI)S;|ai>Avvlq~Zi>!X0_1m;71;CH|zma^P9Lpcsq)i^nG)F!#3yTLLh zxh*~#tk{Qf&0Oq0Iyp@UCoTjvI-J-JUY;G^q_9M*@jD5dlpeNOo@=nj=D#$2`oY)b z_!Iy)`<0PUldxZLkp=lk>5uggq4k#`L4V-=*6)Eu{{Y~LTm=|>i@~wH&n4OWZ*wYJ zM)v-B?0pOLgi00JBvi45RXA0_T8tO%D3z6YSQa<@Cd{h+}RnLHF8 z;9TzmU@WmlKHtGb2Vk1kd7Z%daDY>;_bGlFI85(TVlxKs5nhJP*e77@eITVj1dQ;) z9C%trD%0H#w%Cp=xq*eyXhoPC7z<`@U=bK=4uX~o9DkDR9|MLzVO|$Y0*jFcmT?XG zq4rZ?T8q?WMDSfj@H2>TY#=q9iW;=ckww)bwFM6$i($x%LPy@=dFF`}PlSJlyo)V~ z&w;1glEo!(nB~I7xtJ5s{@An7X!wEe=YEc&v1g&b2%Z!DD^e%IlwRlRVJn`6n9=K8 z>r3dvE&~4i0wOf>Z(PI~b1nGczXMOfk@sPw(Jujjvpo6_#yt^Umc0=c$ch*JC$l3A zbg-@p6@vA&cQ0C&m5&ryvhQ1%=>7!WopJ2$Q8Uu);e9i*uz}ymEdY#bEd%^QJiDP z?7a(eyw3n5sDztPmbZRp_2h^$^$1rM(xu!qnaX+9k{B9i@hd3ZGxxG`*ir7GwJV9tQu84ta{|Ik;BI@$4xDO%kgwKcn#5Rq(_DVpWPm6Ze14U z9Iv+np!nc(X4C5(`rXaoDd$YX!3^yO-7*-m2`#}ToEd*GMa});*5srCAih>3`2q{q zemXvF`1}!{5E$4B^79?`u6)u(^c6mw595LNz;ppVoFC6Hgdhfg<^C*PpY_WehkllQu)v{Yfn5U21-_WY{Eq}K z6VBO!dqwBGk^^}Ty^#41G@l5a4*fvj?b*!V?`PO7Ia^)6fevkSu?>|OClot0-(l&& zT;`8*Cwm?GGH)9!8RBC6N{8V)qM_B#r5=~EyF@y!@IYRe-YH`H_hqo2&mCtlYLrp~ zUCfzQ#HAhu^wD7V4@(^yDYabgVd+MJmx>KvNvXwxk8-h|*9$mLZN|U*y+!v)EfqfI zbcp7U^BBKZEcqsf@nJ;_t1^xhI6@k4g>TvdJ_wEibGT*)LKv<419S&4Zb(xA*PNuR5B@0 z|8i+rijewz^KJ zCo(m4j!@4T*&9p2ia(d5h8mPxDAWr=`RPK*IRiD+pcgP<;O+0dg_^oZWM7CZ zmoAZVZV$_H3D+3VM`udk=F=Loq( z8lh}Zw-xgUIEi)>Q$H?YY7G5BsBM@E*W&!{eWCCy3)vLtf-bD^%5a`Wl0Lfw$hIp@>ggxZIRw+6RizZB|A zp%&l`4%<0M#_eMITBr#^EukZ1mt@cwp&F@MsK2AW8d{2$v#ds_<>V6TZlP9?N3qWL z#j+Oi38h;b!f6SY^LSZHn9@Y{EFR}-5M_R$=87j)Q?5{lTr7)Hp-^FIUzGX_HQ7+b zLcJ<}iPB)9t`=Lms7$EUV#`_@D%3B9x`K`qYD^i|a1B)mb&BY`o;x@8 zp*oT6l6d(!&KtPgKZSaj&J_xqKD1#wEf5L>s9(@Rp-vU*30f@FZg_qzt~o6c>NBC9 zrADE?5fAR7r9zd92VbP+VoR>H{bgDqvMiCkN-Kr>R;+%FfQ#o$eqH{2U6$d983CnT81l@e^y!%@O~+S0k2G*0C?VjC4ett z^HxIdr49sqB)J0clENj>_S=-(P|JI%qj0!!ICUK0=V{XbN2Q((sBO^Nw4NvWPjJoY znpzxEbGqgT#8-u(;nL)Qw}e*ussN|@#sPkuG8^!^lm&nzla~TMkP`F`hi1I8RNeV&p z26w8hXo9E1r|5a>;bcW`x&N8Wc^<|t;B!w1IX}o}cu~@G2|D}RF>RiFuIt_$*7LM` zI^grxOIY%m<4{f6bikM;bAk8pIp^e5_8WV~n;yjOX?zja^<3#jw?i*w+z$9g#yxQWOPXEp1I1Cmn+iWggv9LRc-V+Mv6lAu)1e=u z6n4re#S!w1pY4Asg?;-M_;xQH2CTso6t|J1E>n8BFTSyaz5QMRLoJ<_ZH~;|c{ZlwoAuWDnK94no}z(!GGc9^fpvbiwje8)7Fhqx z?BPG-$FoSUKJAHc8mL=38L`^C#w}Ue18mQbY(@9G#{tgtOirCyjA@xRc;C#M2Vc!I z)HAu$K`qu)zUud8s-la9+C_nZskt`&%1|GtUzg&d!-o1-&N$_wE3w-k?4{1g%*1qk ztD&y+7Ug>AE1|BZ4|9g)Ces3bSVPX2OHRm5p@$50U*^QzG{8v@b)|Rb4x}@L((M~Wvkk@V8${mV|!do^&y4YV;cbJKrLvuI$~}2dc3uy~_4QD<6&L2= zR9u&n`c8;bTpvykjqK6l;yj!IYD(%mB~EdR;*^_vGft%*KQxdxHlFkO!Wpg}ioM%I zy_23GbFV6`>M7@btMJskad9n=^`DeL%^Pr54~25G~PenUp}i=9&_t(4x6{xQ-xyyHY0j#fP}~na)b>P~du!&Ud2yM0MalJfbupdpc?0jvJ10h^&dQnLniHekIVJb{ z<5cRM{v-Ar8jd|R&o6WH@5!4(lZ3jS8gsYh&7(R)eLw%PymM)%p$ap0V-7KP#+Jff~?x)9GQ1GV@K7>Lp|323e<41DK`)?xRAOG6-9h5q$`Em zfO%rOvyfiUC%8GC#~)No{e;$#0`)Ou3AL z>ry&sSG?S~{0{n)rf5aUeE&uCWxU+%{EMmElv`TziG2xPTIxPpUGiAwC6uNq)Sly9 zLZwD_{Lts@PO212`?Hfq8H#(elg65y+<%=^E7XA`_HHLlHx&0@C)F8h@sJgu78q(P zdb*Pq33V`u`>2za85#FVC-FrJ#1bqU@9CubbWZ7&wRA+wDA#vk{#u%a>t5Us+(+x_ zJVS9GZJ;JYeKRiVhZqym!(O zO~GgRNk61IS-d!wvI>4gPie~gd|`9J&*;}eZSYP^AE$msFB@ub5mRq!3R;55`LR&f z=X?5f6g)&<3$@mpi8<>bvSbP5KFXkn$S;)MB|Jo^~3l zEaPtlFOXjr{0&r`k>z`lN)7dPiCy>-Ef5Ol6~ziCP+eLk?R$l86bdJ115yfKp`RFP zUuHq!Z|FIl)5|0L4SGeWwch>(ZhC`u8(H<>>r&pNy+$^6u$$hbkBsbhr4@z0qdyzj z-qPWq{$XUBN{`sPNy)~9draYsD@CZapiU~>O_f?kujkejzD2Ja>W$*5g>O@aY+=?? zNy(Xod#ImKH`CU_vkU)7Qw()q=90p_G+QVgFMFxQ$mV*NLiUbO8@zwb9jD%>4-9oe z$%exB=`*3&ma9RzMsRO#ptiyr3O}TELfuRanYR^wL=OwKi+I<3ke<{zQEp4&L3&B3 zgNj$fKhdAG%)7GaM}?ozUkr77$u>~`G}KQ^9|HAnT`r0DXP;1tY_$$1@qXzODlins z%O_MK6npSVl$)w$ig#9-^-d#e2oiX&7EN6CG5%JNyeR7wUle zs8r$XZ-;E(4yd*M5>UStO83|o^tMpz@QPQ_7c^GhC&gs7Lan26>s9LuI!~yB>VuLU zg@2>Qgq(+|MJQe0VVZg}+oJ0`Oml?NI=`gFLaoC&)lb!zbf3w|c7914W%H=ZeMy^z z;`&}M{0H4Fl-BYUJ*X)!@1?$?M-27A&?EL&^i(|O{=%>5jX0%nnz=`)b#%X~aeqyp zC&<2`ui~<2+}}{GY){wGX6p_2xAcWjx^`0kGP0N5Aup*sK2Vc&1#dmnK%v&ro1Xb; zN=*<-$F8N$O2}!cIVR^wPi~r}7A53#sS6Tvx>VTY%v0AnE_F#lPPf{SkkhTMH93p% zEqk}xl#tU=TM}|Q>OPZm0j=~n>gPh~{`08UWy7ue!K3yGrQ7aR2ZdTkKeq17^Qyx_ z>Gt7>;*#tqScp?{q4eI(r}7QOdsCk(HWcqoeTu(>fJjc_U93+H6N+p9 zbD>Y26Q>l;iq98{d-G*)nrbuDX6r+5y1L3xFS}KeU)>`V$I?Fwv(!)Gl)ETLJtmZH zU!Hm$pATU4Yn#*5Xcp|q&KDiBKR9H>fqQI$fiqbo21 z2C55t$yOWL)z&=UK($^d-7BEvkwy2)K()zGJaUQ^e^D$p;)>N~p*DEemW(PYQCki5 zHP)jN^?;#j{3k>9u%UPym8d5*1z(>A+54IzE4Ro~s*>dqX#+))rWTc{QbQ&A&MF$B zx(wBtbbVex?GTE6eO}RVYM+)tr^1Q)K}~s&l>R%TLVa$iQ2&VMTmxB3Ew^X` zm15^srDh7nI$MgW)k-ZBox@azro09D6@|l8)KFIzt}7a*E|2HD8PwyNqVj?}iiWFy z2(^|j%bo8ZpCMI%+JP`dw4P&q>BC_h1!^paHywT@QPICX-WF4Vy!ej++S z)ftMPflg2hbUE++{uhc)P)(Xb8(u9Mt+oiYmX!axlricHT~6_n)EJdASv=w8{lpkm zpedBwTQo*Z)fCP3eu16VO@>O(?Jhb^-7OTi$lY(e+7>T|Ghek`C>>c7)ZQsvgO02T z>QkX~YbUCI2&FwSQFRNojy|HCeiM~|M~GKJDPr>R1r z)=`r+C~KOkN|2qQPBOBIme4Iz)ec`k+mi}-kYudi0t_--mB)>J(p%FFH2oxl+#a3ZM&bcet)Mq`!U%Z(9_S{?a;Gn?<{% zzY=k_)}qg)clz3_rF$|mGHhu}?>dnZ|zS92h9hs~x#z`DCx)u%f z82QxCe*Os1!rLSE%tSyJy@sfB(?8%Dhn~*Q$nek>@r=${fH7-Je%OHgZfZb&hk}3} zDdm+?Nv70S9@fu2qGZ(fju~z33>mrFw(p9Z|CF!inZ)tyNGtF*3zq1y`5ERJi>{83 zFU$$jTrYjCr0u$OH8O{2zJ{8w?c^A+ z=qW_IlCg<5J~Fp+%qQY{X2u&VnGJTzyq&lT=o%qFC~_WNqc(# zSW+EJjS@?2r%g2ytHVSm$B8Ww;*tn)(?hb7a?WFE(=AGzX(vkLB(_xdMPin{H$AD?HPw1oxy$z{fobdHasfWm@r~<3e8%F_h;L@L z;WHigole3x&@RSZqjowO@0m`a%kg$34UcG-Qw=^7a64-{(iylrItw|^#=D`}_{;%s zEpo4<(mT}C^g`}WQFcz6r8=PW&DE70?nbs$Oivd3y zdWm&}PR-e3xu8ekjuqd_a49~WNfFK2sx|4L)lczz?0$;h!}n8suc1`2<^9y+qW<9X z8|hNTmX|8Fyi)N^jY=ss3pr;2UtBa7kaNzGoU@Q~sXa<+87uG;^|Q>|>{`Vq`_mPl zE7vK0AFx1iOQ$P7P2Qtk97?W6#W!~v72ly~RD5%%QSn`yM#XP#8lhn{Am8F?RQ$fC zQSsZCM#VRATBN1ziu<=y@w<;k#qSH&OD!AmY_rX^3Gg-79e{sz-J`-usqRk2_kcPT z-vjDYd=F@w=-H$H~r$6hZ725&p+)s=2X~lO>o>qMKQY>Q8T`XMLB;n)7-Jhjj>-cxGvEtpc|X#~z^Kb00oOQprpQfYCtR9YP2l@|B@ zbj5EIYQ^WHtg?(9p0T2{)@a@|^pIz|;Cs}&B_-ZHh|-Wcr1+lHA;tHk4k^ATbx83& zsY8nINgYyrPwJ53ds2rKzh|fu4GRDjZdvf1ngtf$saat0ZJGrZpYJr9JbcS$fyHM$ zEr!D$Et=IxUW|?TF9Ik~%H+^G^74hiARy*=X@hvPtke zEWWdIhxp_Ui*M-MA>Oz{ym1et-z42*@vWSDgny6l_h7VU`L7 z`S#G3B#Z+3xxlXqhWJWUps*7BONT1jW)Aa2^;#`JH>`qrPL?t*}^-0yAA$j$*VrU)mHd{ufS@^{20Gg zrQ_j(vVZwL1g_|ia1M)x!xrBZJ7V!$XP5nK(e248Hrs#L;@e?|rM=nq_mW-!KX1@H z-(ibykR28a4_kb*te=!BHKq7AS*gj%x6F=Me9CkL|BwMge(!zQ;+trd_S;4MQbyTd zL+4og;xdLKbEf-BtdH=9;W%p^?&s9nYtt4iFEnQoWjZO0z98}ky+uA5R8*gT6i+U)rj zn`6Gk=CROX^H^xH`CeO#&0}N_JzMl#%6!E>X|eepQ;W_1FIDW5`6_RaqEf{cmMXTe zRMx3>o9`lJ+dKoeBmeb)TuZjiGjO)eGjOMH)=MiorLOe?J8hns*Bi(u<{QNio5as| zh@U%Q$>h{dXr61&5=-t7pU)CYX2B9gv&52nY?=L}mTflQq}yimt-9^D%zN-ap0&;9 zGwq#{XQ$0K>~@+wJRiP_Ja4A%7U^#B@OGPL$i2e<(B@lsAKH8)??anUwGWB4ybg{` z+iCNO_+jB3vH4z;%k_5N)oCd%?y2oI&$`(zw&94)cc4C$T8;p|ncC0A{oBvQv*K`T zR{FNIQsI<>lj*4xyb^e$XOxS5JIclVbx84h(NQk$%~3Ay&9TtG19{kEqg>nVqcqO)CW z=ydVzu=RqkhjhBVQS4mr;#p;*fy`eo)^0SAPleZuh3iGzCeg478oo)|oU6MW*$ z*yQ5-fO}|2dQryx>e-@_jE5vLH=*oMNV#hpg0`cvF|&o0Hy8dBUG|0!-6SqAc)nJv<6H^)G> zn`0o`>oro9EALH{VIjcJo-yhKBxj0cOij{U2H!lkGCH+HJl?*iWq5Ls#WhX13dW zm#|apZ+G$i!HqI|v`epby7=tARPt9!?W5f6;jwP^a3yTslTl0Tv067r`ytsoO?UI{ zi8{$&hdg!uS=N1-Z)GlU^R2@LZoYxIz|AL!jiULG;&=BgqG31oJa48h0AEo%%5KSO zM_Vw@h#xu)WM8e9Je^X@dIL3IV%5#3ke%=b<`eN}yLe`!o7aL(Zl3qr-F$Cxlbh%N zb~oQ%tVP@5D>vU^OvCerHzy5G3xff>Xnam4rCPHA&lGr*z$XAp@Xe6LgRAj9lLz`& zm;-5r7lvG{7@x8Q^UCC*XMk8^|75jqjP+18YR* zM0|_jf&PneO8h|odchl{mM-C}70wpH?-G26;Li%aldeXo{gVHHa6S;6)QwaP z5V&6;Ww9P5uvlP;!0`eX3+xg|*;1px@dCF9?8;$#wg}uIaKAvp&1ZO9;P_lFyIA0k z+#Bio;{AZ16nEuGS%Ew7El$i20x4hW5;$JqVvQF_{sMd}sAP-aI|`(fz#WBx3#1~( z7i-v$=c~p28E)x+Bi&ZAU-0n*B#(wAEG-_yobdt|3+&Rc^hWXxqB71iUf|*~&eaaGq22gBuHlorLd%CgZ?E3vbFg!; z0-Xoye0-%?0@O@*w+!&!jB>!;0>8|w2EIn5R}C0> zOli1y9QZTJxRlPXam`;j^bGL#7tRFKI^RoY{K@|30A4j%Dl0#^>b0(f~6bF_ue`ZogCI`<2HXAW!riT?(`l|yfiOAig&3jD;p2LW~M1BS3w zbEU4`WnAwQ{T~C=c0Spk?b*|xZ5t?do|m)}_==J@09R)218gq%OgMi5jFx=O{Gm?& zmmIqhWCO}}OTCNz{7+%%Qe(=l2i_v_(?6eW*jRWA zU}8_PwLB7RoPzVelxX31(ma5v7!wvoLo#4GDE|GkbijT{EsTULzyTN^7Is~EfX88s zSQrCEfWslTa2`Ama1_Rhg%L6sa5R3Gm49h?DB#H`VPSt(0XPn0#=;mm9D{o=^%>Z12a{R9r%m!@4__Q!4=K?N8IlM{0XtiiL#;b)fx(ILu%31g(a|2)q zc`fYlmH}P_xrM#s1%REj5^xPpw=KF9c`fW>!+>k?ZB&acLtYE}#npi8QNqIcH~(J6 z2IRHq3gohI`*$7SEs$9F7b&g)yp6sGxS6g7ydB>wwdf9f_t~N?IOn$LF1itLE584X z_qQl#;d{!r0X~Af7QVsx1Hfna8_@JCK#O*ugra8wE&4Ux4g5Jki*};4g>NAL81OZ^ zAMg+KAmCf{6Tr9WXMlTfr`E!6H#`FP4m}F^H{6f4=Nvi;N;|)a#tZDxctqAtH571{Iu4Pw8~ADT2jDfd7kCZr13sOyt)YOq)^T{} zaTf47G!yt-Ive<0ssp}+?g74pegwRkb^>pvUBFk+i@;aV%fN%Q4|tIF18<}Efw$o# z>NpCZCDm9v#v|$*a5wx0M8H<`#iQuKH}H+`Lukz)b&8sxma4UCw@R}HSjSuAtm~{B zt(&c1SiiIOT5dbnuC*_=ud<)Ae`D{r58IAwg{#B0)^)4vZr4uNM=s?)(S5r6GWRa` zAKi!C$xgYm(7DjL#d*N_yQ4fMo&}!uo^77jJnwn3y%&40^}gZ#!rPb>PWpb*ElCe1 z?M(W6QlW2xZcy$oq~4PHtJIfL|Co9p^{=Ue(;CwvY3tH%NZXvY zHSOWFC)3_cJCs(CUY1^+eq#ER^p^DX=|4<=HvJ_m(PJ`JWo*j$Va9_Qk7T@&u`lCL zhTGrIKiogvzs&!b|M&iWnHObVlX+9-9hvuJ{v`9Y%)exg&+5v$HS3kE-(?kK56pIT z>3s*5U&I>G((HS1f5BqX{MBWji1(bmdFN;M!<$Ziuh;W;em4J;S(wwoJsF=<@EMEG zsn}DD!_Q2ehR=9>YVesr#h9atG0P3cEH#)W<1+=HsrXDo1fGt*KLelX_?(H)S@_Jr zOgR$~F$*z$Ha@fQslyKA9DL^BGZ!=FJj}N9@i`Zt^YB@KdG~yL7GmyPgn4%{KK1x4 z!KVR{)d)+Q@L7t_GJKZf(+n$DK=TFA)&dPH@o7cLAUA-!;bGYmNL` zlmGjm*w`%HSjNgpujgC^Z3DbY{G?=Gxyy1yPX=@Ta3PLsZA(%mNggGt{u=^rH} ztZ3TacZ|Jz4gX!kf7kH$8UA~Q|DNIRH~J13zkCLo`|C4f*PjjjXG4E!;_6F@t8B_q z>`#mzrR~U5JYMjdPKGWpbdjNpgm&S#D|9~$RP4WODv{JhgH2jy($kQ#-%nH8@24s4 z_gO|h+oba)pNr-z?bq`R|9rzg-|*`VU2o`>l8^AK4Lm+w6fxy)GU@FmebA(DnDl^2 zPqcJ>r{EvQ;_{~=W&fRO_%((<(eNi4ev{!ZGikF)!zS%8>7^!JXVM>-^e&`x=^k}H zy{_u%UuresH$L&b?whF0-b}~achdr-7uXMgS5KGO57NW-Yt-p_i+<_aL;GFt0RNOe za*v{K-4T?nP@S&h@mWnroH6Q%GeE7k=HeHaa;5y+p1I2FT}|oUF)H1Am@<<_(Y&P5 zbbivgDw=egx-)5>`pDfz_a@DyJ@_Q~)>v%I2H(5tSH1)4JzqT?_I;w9P@*23g z?2j`ar24E2toyUBu-?h~R;6U$C+(@uE|szqv$39FWz58Lg%4|EId;!OcvujP9oMjE zQEhX$t)+hT#FqMSc*L+p!@wQ0XptZjLrwMVO=mZSgB_uUrisDUrOnI6EiuAAWrxSg z3i4fLMOfX?&>jr2su8h5qZpae)E=v?wyCYDwXvzSp}8r{8AX0{oyTMjKQX3Lkcq*S zZS|q1x*%)OqN7?p{G?cc5rS#c&uR*{H#LflT7Gn?FZV9&6v^LgugzDRygRMq*c2iq0)LvH~z5sPE3!(BvMKhMHXliIToQW$NTbkNo zd5HDQt#6JA&@p1-+~)S>6YIk}=?}`eps6#Rx9U8+CXp32VRJS4Ej>R56`q+GQ{jsv6?_+F1`h-Cv!hmz2^$CHH zz}2kfp}VB>_2=9b2$5VB3Wu%o_3^vEz~7H6xu2*D{C zV)kJ|foyhDySC@dU}ICuoaS(|=EFTbgpRHmA?*UGdS-p7er1@=608ZjnVQ`cTGfoH zuca9+X6f|iFsFUm+}?CC^J8AXFF#^NShgChWlimirnNV%gzsjTj^%J~2{zQXgrTgp zedGul+o0#w6VNdNY7g_Md> zUS~uHX=H5Q*^AfRag8+gs2Mkr9baHLV?4^H;pnop`NEDSARGaUW_K(JH-wtocxE!Z zqgdhIIba{6XjL;NtgtBnmc{_;*A^>KhvgtNpa4XE$Bg(Hv?5#go}Nt>OBm zO*2|~Da9fTHd`|-d^A0|zN3YuXEry4g5luO_Uf8TIzmn8yOk^JTN}fI1Y4`kK*08? zx>wMQt&^#7Ts3UaL&x-(A$0#3VotER5##rwDIG}1Hjiswv}kg3Qw#8w3HUK0W84Lc z7EP#cxBz<;QvmIk&g(1b?cKieqk5!o2Jv=Z_F1twKenhZH#YH12?aaaxOCqvx~aUO z=_{Mmx~#eN82oAB+TgMHJj?dg5;Nl1(%!D_TUw8+zWf=XW*ArB(pRFRp-*?|ioQdL zH4^LLcL*oew>C7jw8$2;4qKGgzI9G$f-!yB)3Gqh#cjt+3d;650 zvrlyOrfFmfipJE&3J|)D!Gwa*>+8FB|iIKkI*hJ7*GP_}U6VJt=zM@6F zm#}c(9KD`~`dEwZXg@|F42!;+utDm}tg8=Uvgym$&jZKc%YLXYU&lpX{zScH>?`1{ z+{9o<>oMwPQEbn{yRN>4&*J@0A7`LvWn%Q<4L=wU*$oJaI zFG6@rySxeTe`=%NR2-c}b{bSSp*|cppe@)6BJs?Eba6 zSfWqQ_mt2kPR7G$(?!A11wDdTtEM(L;uNfhKk4H3rq(dFrai1!t&`CRoEsfmI1Nve zp_Q_{*0+3Tu3pPx-x_M0;ydFWp?05WKD()<{$jzxJ@S}&7;23j4efme6N7E5u{~Ly zAVS>KudE4$>Q^5tJ5B;x69i^hN^oPMY3AdCo?<;w{=e>%Sp)Yv0=E`>bDVF`q*k5Q z$%v9sr!nL~glT*gKfU5LAP-LM!Jfy97~Ok`H(VXrv0)s`n)rxkhAx>0H2o}r{Y#8t z+FosXlqHGhgH#us8N8?|GJOO*0#d(^pQTnvY_*EhF@;|$govx=SFOe>qk>%3Xuhbl=M7 zg>5~%XIja}R6HNI*0i)FOt(5#d-^W%ajp?LC#`I2Up;N z2#Jd^WWuCctQwo?s+TtUsm3I5DNEJ&wbmIF3~; zjn-E-k7Hw%51BOSbo-8e`hIs{ie&gqnC>!Fu#vk1gmJoD{6Y zQl{Bv zrcIU=G)}`DEs%*(T9bHqje|9uCN0q?*`g`_2#8K;ZQueu9Nvk;VA)Qcskh;CL-lP4 z&V)TS2rgv~zqzF`6kAd`rN?PEvlA#Y%uKXF%we*so-Tjy|?CXO66`XZDXV zG1bP<|I<1U%Y5{V9^<2uzGFW@c#P2(ldjTd{MZJ{bTSRIekd07waxX*T7!7tZ@^7M zbft_<{TLUH<%zAJdK-hKQXlz;`%K2j@P9gBtM0wj>za>##Q*QLb32Z%L2nkZxbp(@ z|6zH&4{&Pu|7T$@P3Ya&SUj4q_rJZkjR|jl`xtS|6|qmQ@9ruI1KG8OF+N8vTGYP0 zIUWk}-BmS@vap_^!ul0d*gW0$I_t)ifwx974*BJ;A!9+FxTA`1+a%Z#5d&>?nTM&7E0wsHcjJ>ic^TQUNnwC zj(+t`p}ws4qjdDrXO{RlkB1*x(H`ao0HSknXi0i$(0gzFN*z!4yx>Z}!LZnLa~4q6 zffZCwNpkdt4Jx0&;iag&fftEE^|^r|>N(5|-k`H$TSb~9+g)sX`Mo{OZo^{`$s{S- z%=Ac;n?qr|h=`GO2r_KKB#S{|tifQT!KUd05UMjNx4@vtZm z*wYX%$ejKM4{*oU$Hp36=rdL+=Iev1Sid9$G~S@ZUKQ$`d_XA}N0%H|%J#5_;t10G zMX|B|6D0TAmRScf1@F>d9m^mtUPnd zOR?C!67ll1@N`@;NoY7M=<$DSB=VUsXO|R%AVy24hbOv1|=S*(ybyZ+;9|9tyVNwS3EJs%c$q7L7A;zD14k+Y1sgi7zRr zSzZh4Hx~TB7rQ0H__S7>UCEsp;zz($I1SUs1-up`ghAr3DuVCN6ytt+G49wG10RNO z(o_O#j&p{CQ;bg(|BPWN?yh&>Mtcjc?c-9dU5O8VhP*$2k0*@V?H%|=PXq8NNSSH_ zm$KS~S_PerkcF6sZ(DZY(m@!xL*TdJyC=;k(aJK9wuS6YXs;q=FMy7T$k&963Y-r| z7_f-kY$w^(M8o?^Yw#~1vNcV}bF_7+!(GN@>E@a-7cTV7obfYX$M3HHf9-t-SW{cG zX!cGZp#?}lQ2~P$0bz%Z0)i-t2qMJ_3W5q!r6{0cKo5!yv3Id|#9jdvdj}gTHn5B3 zDE9Vd)=omv^Z)m}cmMC)?|v`J-mC3dvu0+^%$lsdvM;ur!?9q>5MBAMlb0EvD7qr@CthNg`veNj)Y z7+&!*h9*!ENQo&$#QC zGgMbrsiQAKfcm1$NbH;xU|j-0I|Hbm7qA#+%0#gOeUX3`!z)HyRWS$tD0Mz`&lX{C z&j11(OD9k9B`{(+UQj~;IRs+(yxGG%9rQ3sv?F~74m^3q0kv*EmYYSa7Z5}V2q?d%%N2Ue58*K&{&<4KQE8~ zb|KJ8g-;7b!{H}Th49hPK{BR6KceAWb;=N+N707BML1)}ps5Z`lS+9LtV6!=)S-zQ zqKmac6+UqJ4NxeG7Fmd5f$K0tWSt&>Rg>^2p%BQMLJAOZ-4rgL5<+{~a=^q{AOSKU zSyT|BP>oL;v2gWuD7Je*95H0CfTd6kPAg(_Jawp0<%8H5Q-B-XfoHN+1Wf=8bk-45 zTF5I|Etkj?tx+#60HkE=0AEBJ8k0dlGn7`q4pTxFJsce($+G7gq60J+r6PMUM z!()IOP&xv#Sd4d|m+Sx+66}8i9h!^t2#JPwsKd!*ObMVpX~a$#7{{Rz%ZoLWI`HsB<56-L@9+CO{u{haCHRAB3vxe zARVyHaN^7M0ERHhIXoC>gchk)6d{;2O5_ZacC@^e95C=5CY-WAO?)hhX5|K2E0Vy^ zZbTMzK(&aG6sRzakxl9>&UM;GhkO5i5kiEmlNXSreidVC^zsx|pK{WJ009sSTK-^}u0*Y>1oz#Y|IZ#Zp`3Ok)B{ z5NV1g^#IwKZt{yF!#PB^Ah?j(CyHo<1%kGagN6jiD<~+A$dRa@Oa^L{)`8?$eL>2} z3<7PypaMqohDu)yLr|2VCJjN@I5Zp;D)3BOmTu0X2w=GgZkmKHeuOF!Eq-eXu+Esm z_I{!WBuNC(526Sf_+=ynoQ;HVBn#-aLLFo`Vjyb6Vx*@isE?*XZfPR7tQI1y29c&! zX(TIARVdpuQR|s*b!uIiX2k=n3N7zeOgHKld0IyuqWwh-O92M7Kj~A%h-pm;G(-X- z;@S;{V9e2}t7M_6;A9bYk)S~=Y|t3_pk#o8DNsa)$j%o5^hCx5=2d8@s?LSkXNa=^ ztfV1p;)up$H5gFam?CNqz>-OeBGV1n3b?!B4Y-nO%mI|Z>w%FGV;jrL&wvKH=zA)0fpiUkfI)=FJsm_0NXBBQBX143vJJs(q{&fc9gCUpG#W|8K;TIn z4~hq}j+K_YW_&d*B%n|L4yCSaKGeX!2wmA?bs)5yeW+c=tB_{w;N}Btqz5)9j?-fB zN#Iv(xk5ujL)OPb-6p27H+1nd_&k9qRadr6PRMTn0K^gs(Bs;ssZPTc0Ae{S_iG^~ z_pHH9!yJkW9Mh{1c`VWcu<}B97)j2;2j`8bD$*SBQOqtvP8N4;Ehi^9s&aB-pX6aQ zcREBtYk|us$}}Kp;`YeXXhXpPz;R+@HU+crk10X#w`;%G>KO~P^oD13l*8WdU;{bgJO2?!!=9nqMi5XxDN2?=?-X1|ybG93lR zlm_}^3TU7qi9%!4R83Mg&TU6-@M%>I4&WL@@mz!Ky#i5uA3m(_y8G<$dA?qrK{A=MCalx_am#6P*{)a5wVX%8$fgjEE8BBVi9;R;I)K; zhC^n7-XV(!Rt1rUa>b*3C|QPSC=2 zf!r{PB0yfC!#ZDE2o}9wjDp~IhiJe%;3WujWsfvCpvoSB{)GRa6t&nD=V1UZUvXj* zdy=uzf>~TjVxR*Tq*DQ3g*qe|G=mx~_Y)dLE`MFbkfw*hFmToYN-;*;PF7#HXO9Z%pLF;>tCW=RD* z>u~)E1;p86*Pp2F#1s-nL1+O&D8vqljso%%HvwD)90CM`uzokxn}863)>1zBYl7g8 zO^wh&lr!?zganHIB^*5z)5ebz%ZfSy5h8b1CmezP>U09;2pan#!Ezakn(|cyz-AZ; zmN(P{hoJ<=h&2s}jukCg=3^ad0JM`iprn-sPsvp51Rd+?uDcb?o%&!ynZ`vsHY z7oPsu!|&0;;D{=NmEG^wMw^+7dTc8lZvMVhpc1kP4#xYd@T_6uXlngfujtoMFN}yo z7PrJ(ch*HwYq0D_o{|LtkWaRstdcN@7E8*}<;L>!sD@#V2)U|88sIG3Vjdk-tb7Uu z&PaSm`6>sNdQjv@`f8w^uu&>%@5T7sY|PFeJre&KVMfscnpQQ0$H#+;pbZ5aE+w*n zAf}!U#X}*0up$E{B@`1D;71D$wK$-*ZHab(SfMs)hjBt7XiD7_aQ$^t*bo#B%NZ7Y z7$JlQQFjPcAR%&wUvD5ekuy9_k_ulOr!EP2u>nA1PE%L}kODTAM+^xlb&3x5ZJcNc9{-uIn z$5YA|^x_ELC%_2Kv+KR{7-kfJONx0ktT27F$VH3DrffD~N#H0Vh(U#07vQWplYO4(+MW=-AOm>9i zGhxLc@0}2wMkImD?DrVJ1|dcSQNWhL#1y5HpfF}J29ETGZ>G?xmBYYEi#e9+qEv#- ze#FKR$si{VU=sn87bB<0EZ`<&!0S|i$qa3xEI>%uKXFGzWTDc)LJ&Qa3L=8@<_z&% z^~OttfGq}nC{H*m8WR5=+XUmqnbZ^I2)P6m zxX22jA6kQS!G?AfZ79+&>$Yo=dc`*k1h^vHPBJi6NjQzo$lZAWERe%Mzme^O^&!;= zJakNTNveK~Q(sw9KiWv1Agel-9KSZYg#Mr0Xs zvi(@*h}D^)BGPFCncz|2RtPAL0No4FsNggO(oJx$tZ#gra#J#F<%73@C}@XH76;Bs zgdY(1?H&j_JII@R7V`bTAP#w>tT}u)r`(ny@rX}^{bcNB zYmO$x;lukb!|`1x4*Z%(E9Gk}l4F}BfANrP7R8ZGt*a#4{3Ugp8YS{=0pGr4XXqj{sZ|K;bc{6_%eaVl`c7ra06 zUw;w5;Vzd(cq?f^Aor&@{(l4VZ+9#aa*+L1gv5Ak49Ab+c>f)^jW?>BH#&HRGlb#{ z{2Ku4Z8NVw{(8kqI^Y31oCJy!{Wrk>P9_?k$3cz&GXIN{BH;8j&Zxi9;a?EGai8pQ zL~N%lN8~3{a7Iv^u)on?Jwnx^pL|D}`LE|S4#S zQ87wT#L7?UO!riqMd4vq>o+}p7&FVw*yfYpnYhq2>oTnkpW1wK+-F_m+a~tW?(xTN zNQaDm>U`X$Mc|83>Z7OinKIB(Fsx|cz{)Di$mCB+W?}lv2m5k0&6-r3ZLSvF%sBew zkn63E9o+lgvh5dp{MNdzNoQlMg05sNxE4S4mdER5@3qn%jB!UqPM5ph;7~q(XdP1E z&*BCAUBDXlgXoIk4}JuavkK}~)vLo6@KcZtKK=pS0uH~??$Dnr={m)1UGn$7V=ECx zw@$%f!P4NQ;H1Rx;5y|V96xMSu-tkC*L$HHj8Sl7F8x*qTP8#d;{^0{x3;tA$oqY( z=oiM;|5J99pwEQUyN|3rzvT_!ulT6fKuV&>HN1bT*Ny}4;KnC*i;3}p9g3XTr0{q+ zJHZm)Jj2gV+(gxw1Py`x|J?sF3Q&aMaL}l%;lR)V@fF}cEPfljAyR!oT70H0(u&avy+%J09a97Z2DZ z!vw0oQ_&Af$3lB}bqUT99!_>zO5`};-bZ-f9w6XeO9|9PL2o#ML^#XQ5=#0&KQWM& zkZ~r$Jq23g4oEy(JsBWM$Q4WeeXoh|G~x|!*8&WL?+e%=#z+msC64UpjDQlPEA}^% zlp_9NfQf|EkAbonsE3#JNG(EO@dD2iK5+K8l2!?XA8F827-^05zoQvaHW47=mE9A{ zaxNLpw1nTe2Mm$p-Qe%n9j3pBX<3gVmYm=50e|lZWuYM-I6xVGy*~RvpSZ)7-OY-9 zNuh-e{Mo_D$@oczvp4Z1ewK!ba7S9zjriB`{@>ze3G^p>b%FD(pwHfb+ep$I(k}rd z1tohV)FuO7zm`eh{CdgXqW^d@wmx#WC?_~J1wSx{GVnW|{=bhghVb4G`i_Tjr@%Z* zu1D4X&OSLDYr^w}eKqEMW4=4WS`~ip8DscQhd=i@@H-Y9 zj-m5EjK}}){vV;hY;=BUn!{wZpRB58mfbV^qZY-d^RwEgK+$NLqNLi4ma1B4c28{4A|ZCQIcflf`|K&!r(YDYgL&{ioY({xtuc z(`}>@?T=vP$Wj`BQifE6QB&mx@l?fhP=Hj-=we17R__moBEdVe$?}?PRtF^txpLx@5;ir&4mmMjYRjN*>DE(c>jz9$kK-KKw(j=n;?Qm>ZC(l12cD{)zWu_)NYBI`k>{>o$m_7i z=53XYZw2!_wlt>NaU2zHA`ZB&@8>E=>>|n-Ntquze4wDm*YR7jEB{O$@0RW5ZkBP= zcm1vYJ~Rj_wI++o0E(nDErHiYZFvSv6Qwlw7Er1JkaZOmK9|cFVFMwr2~W>%&LCa) z=@rq1`}X?MuZ+igHccyI{IFV==f(6`+nw={c3|40@MwtZ#R-+KnN5;_->X|Ubm??@E!~`&X6?ulv?*4B(fMF&5n=XC=b_=_D+ihXtu*0zZX=LcoL5n~27%0uY++mBs)2aR)lY1Wzaj&de z-lM!E?^K65?}D2T<-VM;$UA41ng`Y6k#~XCy*KY$-#g;cf5GbT_%o}0uSW#Pme`cp zmTfrmwDUr*fE>r}8~f~ye9`Gk(-m3yM(KU?ZRg|}?#Vl-J8l0?=J7zusq&qlHEtG6 zEFEKI*?Vdevz0Rp;-%qhjuwBqzpvtQuVy1%_m1tGOO!Ue60z~! zDR1|zDQz|C(7|0lPMlpcJ+0gRBI$$oj+E8xm&e;#ZW~jsGT8g-fKS!c%YSZYr*U(A z@u6X-<7(f}EE_wzU`K9iOs+rGp@W4 z=h{3?$+C?uk{vrR;>qw7L&xY@1Fz(p&big{ve~RNQuE?%2D369hb-9r_2QLp?*oHx zt$dlg*~|Aw?IG{3)doFgIE-#xz5n*s!~4F=npIAjH_GNfbK&(SLi#O#=H!g?L#(%| z59YY~4A^bFCvQ{jj$1i{#Vb~|J=(_FW{$Z_jpvI^dTl@YAG8kpF~;iU>Yz?{qEB2; zFFpApy#31LZ*WZCNE&9owCug5yp8?T9?m@Ixen1Nxe2~ZCc&MqhRk=saEn9QmF z5!GtVFgPW-;tqAH-#;FL?j9iDQ6r+@eQ*fRr@%SZaFTnP(g=Vla9|v*89OJ27y)~d zMa$qc=pQ#yS@f^wfJSpbgE@dXx8=>3L>)uRZ545wvvhoH55Cso14rF($%)#STOKxXmgckBgQhsbkwkPQC0ejo&e+z_9g(O(SZ;T8?^P>a~36)T*{2S4_NJ z{g3bI-=z)rOKO}^28S#Zf%Q`0|R#+I7qTI9Mp^f~(Ak8U}~)q0<} zy3WHYdH%<^PpOgt7UGc5`Ab~;*i61vIJN2B6~46#3J-hc$1Ezpe|_o<4TU*;3Fhz_ zqob-O_ww{99yns0diL+P#;BR{0X>?hX{-(_YTRbz!Et9aP~B_u5KK0stQp5 z12dP{u@fzw?QuX)#rMJU4X31Kt#fRdLHI;V9#|r#PrgsScea<@3W2ry)yxqam%tuG zM=TM{TbQ*lS(V0aC}T6!+L{=^o{~tGTqbi8(?!u8O*OIkSKXoUj))IWvPwvdiiNKX!xNGqJ|4@sDFM)o zt+BPls9qpoC<&rqC@CDm0YhPFnhc9{4DKj`HI@>iMhcZ!-;r;#*DbmqnAY6#N=5R> zR!cP&=spOav$*Sm3FT>;vyToRYH8v6sWh=HcG8dHE>G3Zb}s3$Y0bN++uMbaP2f zZ~aa@Vg2mnNi%EDwWB@Fj!n}!w04t<=F*puUm`8%=bLpgiyq(=-cl_pZqT9y4=2?g z$$jT(e)n7F%SCptxztTXbvYCL>>@z~+$S$Av4{|3O#_Lb$zG2KGH?!euN<;jIWtSR-+b_(%ckA7!w@p?pY5(BD zx`mftg@n6T59TkM;;K4UwM=zKN=v=su&_OEDo?iH72k6|B{Y3?cequ}!Vjy07gTVr zuktJ!_-^4kHSeA}i)Ae@b2^;Zv2{;gJ}>ROwmzjjyO(dFyL^J_znu9~{E|LA_cJ-Z+2dS>aE!RoS}(cjZn9xaNE z9d*V(NvxIbcR`xfYz&jtED@G}Oy>N5+Hn2l3b5XyG(WR|0R<#q6RL5gno1`g7OAk# zt6Q>aNQK~k*5&mXtGWky(pEeP|G{@l=jS7z1n0-h;0dk-wkc|nb@*|W*B+T;m(1uE zo0+cl9@muGGS>NeGWh*c z@Hukbjbl^NT+YnM4{*#Es0}Ig^WH5Ox1S!I|LkO!%8&OZ+1B`H@V3{u^r;T@C_KCQ z!lCSe218u1mU&&%(3krIz>8&#MhPZdP>jQf-F=R{fH?EPhb-{9Ns*%N=76 zST=vL*L+JaUHdB=%CD$z9p!FzKHTp}#p(MKZa`aSFlmk; z&2rF_2dZkBl7WXAtT2p}IB zS8P;AfO;6q12PO7kdXqHq)v>T)D{CWHo!7RdG>!5f53tN*N**5POs;^+J~TQvqP?HqhrO~*P4GUpYTUXyPdluYY(h0kdF4+v9fT&OfPj``7KQ(f z-goOUEyvbe6+V)TRyg+dpare#x$&`=s7t0Vn79Q&8f80*?_?C|b3z+<<107lhj4}r z3z<~=sC@W_76Eq6o+UCvS#Nv*(~k+v_s{ps_Wdgx*C^=3{**~uYo>0(LI$QRT){PG zOr;%&OCFJ^aBX>-jJl#zuAq@-BOWrZ zXGK_fo0m4m<4h9oP04y?RQTRDzW2OByQ7o&Zq3Tx_jxfXeOqN^`nZzW`@7B%i8d$i z`#5P{-v=$9Mij^E%W_Ip*rd+wf_m+t=3*uUz|{!W(Z;k!Ju)~qa>m$1gZ+oVY~L9f;uM`xV- zRyEhY)B2X_KGe3Ohkw4%5@hR6zfbMyp)=X$Wq1>>=}po+PDIT7vdHv)-&ymYOr-NP zJdRwVgc8GZ&kH)A+H|&O?&S#|&Ti#Sxj07U(fVsIx_|o2{J7V&bF%9glen75R+}A$ zEOFJ(m>07&I>4dq2~}ght*GhITpe+ARJmS=!-!h{Hao0CQzutW>yR=?bJrhg71LLo zdZyj0+Hqp*7`Mevdlw8i@IBSLbo)asx3A?@#htA#H-B^Ry>W5p{&boc4%Zo1ab&W` z#W`V8gWYDP6%I4s_E}fn%vkFK*u&8fpBh+a4>|fLo&o|6%lQ2A zO)2<%V=zwd}P@A8@eNK(|I6q+YpsI{sgMRF{ANhx8Yt20~#h1of zAJH**8aiQ=|DrnCNO-%=n488kl zPM)!m%Xi78qzUdzJX0h^@8vV*rbXV}-+_x@lW zw^7vhX^9GVOtXP6!_&p%yY#-jeaNwQ*D8`+JbaJZIQ5=I zAMP4ysq-AHQ&m~fD1$*^RMOdztB2e$9Ya^y7$n}H=gpf}alr4hMo!o}dsRDw$vtjYwkZ3)^Qz&A=nujEeM3aI+aBERr;;9XLf0tq z^~}%y$Ny+L_lUFp?dA@r1o{SDQnz&9``&oUkXyMcnj}V@EEubaqFKW{bqc(U-DfykkG!nJ>t(p0637}p3(C=LC)78PlBFkLn%^rN? z;u3@7Oh49S_hI0hqI~$KNclC+-wdGPH$_ZG#vWD=#8MAZ7)h|y_&snhMIJ1*>%X$p zzX_f-gq_?-eG;R)JZQo7m+N*K*M#UF*I2TvZrDqCt)8KAwmgf7|)`1UG15(=bKX7N|yIC$L-$mXV z{$Xvu%^&CQH4SQixlNHvB9U&0OZ)q73mmt8{M;d@^l;O{z(2a~`lh*Jdb6A- zZ!|__9?NXjwV8j)H2Y&lrC~{y7SZG4x>%^C>OITbxoPk{uQkb*hBX)aHK3qdr_bnf(1j@5FeWEh)?i+rsn;zaQ!Y?zlOh3XEMIp4`)7hi{LL zNA-B4OCmnEDNc$#J4>x-7uDY@Fydy?jfuvCyHT?SHOq_ETDjJ=a%3~pHU}NOm&AQF z35*`qUAM=kKlc@!ews6+&+_uiy~ph7AE>q?it3gzeii(Dh6`1 zF}L{Kr_K-e>6h%j=(D!Gdw*W~Q~jCk zr#5yY&F^dNe>`LH^#`qM@g+frKrmR;P(vbaG`0*a~i%I z;FGlOO18lhgCcBTU+-}mcWEf&c^KHC^VJyvKE~y*lB`mssqFmvDg{vHW@d77JWfAd zeyr2miqPo9>)kj@n;kLh5ixB+d%?(-?dO`bdEfQR)oXgU^iI9*zlS%@BrkpPh0MM= zf&SyRyq=i9c-Ia~?|$=DT7)0$V_?JYRY5IV@ zEj|{>#!vEbAMwCmr{MmVJKidnySlHCjN5)in#I$Cu!rBjDt9^5(Q_aqV}HGwn3`{@sbK&%VDlS}%Id2+oBK z`(sPbhE;?QY4&Q#vzjI~=MGio7k9b3bb#@QlOuR5Qqp58nJ*Wl7Z)b?yK=$w+zzWY zUi&ZKS<`dNH*Mbst=omS-up058g^)h?iRZR?%{^l=I*(-`f^Q&R{dfKB29%}_wHZQxpi3*;pCK%E?Id|6` zX{SeFRk;iG2M-GJ3gK3cy}#jJ{D#5(3O8&IuhvX`amM)e^oj)|R#)zfuI@TTawT%O zdC|~KZ8n>K3^Vyywc>cy&ao?k?H;|Tj&RbtT;Tn@eZ*GT!`xMc3*BnHtw$XzdDMMS zUXO!XZ$H1|{S3LhRI+8le4*tU-EqyF%kqTZRwTc%ikiP)R&eIp(@z^Mbq<~LoFR+5 zCH%5=xkTfVV`=9{wjAN+kMCl?U3>WP&PlcV{ewDI&v~NZaB6j7Ut8nkrxUk6?EBGq z7UxLHY!5drgMnsq{^UNId-O5KUe#hr(3G?-_ioNU+{>d^c0u%l(5{&(!*0*a_`}Mp zFtN{#A6&~5KYx17YqgRa_I~E!buk(0JGb~U@uM$4IdO56M{w%m+)KR{r`UTm_q84n dRj?ekU8tQtxt!1Y?(Kfb>?Hp{oa)SN{|CEEDd7MB literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d99c70159127240fc66dcb4bec5e891d960a1ae GIT binary patch literal 97872 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll new file mode 100644 index 0000000000000000000000000000000000000000..4b4be00999a44dc176b392f6ff32e0eac0fa40bf GIT binary patch literal 80248 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 N%es1F>FroV{C~6e!nFVZ literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll new file mode 100644 index 0000000000000000000000000000000000000000..6ac672abd48641e9dc4266d9fc3dfabcfad39110 GIT binary patch literal 302784 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

-$HGIUk^ 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/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); z9lAo)GI?Juo`=_nPv8}XnL3B@v&d87XL7%TE9K}2D;%lgTx_^f=45b|TwwTI!`H)` z(qDvg+FTUXTJvA3o1PG+X%3~0hr@=q$&=BU#-45Xl5`zswO9`SDA&U|ZJviWrEAV< zb3~TbnlF|Uvq{;UHAnp`h9^T!hfguQ$ne!l=QgL!zOD3Gn*T8IKM1YQ)%I9xZP&am zw__W=6CTo>)22JTDP8krCOmYb>ME2exP3Y50Y(&f!aj zSLJr>pz|=lqt3(Wn&p4@)%+Kn(^()ApyV!kyr4p(4Y>4Noy#VR(VzW$>HfHX z`%a^E8NL?N`F|~@@A0*m4t*`A?VG~dvPLXAK<7={H-)u561fRWPMh1|*J2wCYrR@L zd!Ua0Dm*Q$?Ub#y$lQbY)^emf{93FAUM<4^(lJ}X)56-aMjnsOX`|0wBkPTxZ}?RB zwV1ZQ7Sop3V%qY6DU)eo{YQmT>z+^>y{# zZ3{IRtxI5q$nD9uSleoyW$N&#be;a&8Ey0M6tSOE$3LK#=0bQ&c%;$O3||D_k*ni; z+FIATFAV3l(W&LM(Ux4pTchXq)-iW4(0mBIGkQ6^Ep&_F2Ms@E_;pxjZin9tt3sVl z20XT{t`B3|YP~6J>&7SOZJ{3w%Ob6F;Vt1V@EX}0&S|6DV@{jH&|}-`dmr0Y=XPvc zZ6DiK+jH7H(MM~|C7I*39~$wzYgHUc^mdecjb!J$j9J37!_#_HChW;hj-6K~x@0zm^*HrbSohDXyeX`o z@-)Mv!+K14!SKki9!HKe{9x!l&Uz+Sk08a_|3SYH)_QvOVI#HH9KDO{{eT6oj69HrAPd(vGwSBqZh|a%30UpA>EO6tKs|MO{VwW6xKcVCeydC z5$mu&o25CYjqab<$J&k4p;~W_jX`gXod9=@Ei(Kfd`@d!!d+vVjpakbKNVcqLaGrS|~QtUgj zo-zCyoYO}4s|7hdChC}4@5nk5y(6p4aJ8}Pesxn=_o&khZwl)^cADX|oF&BR8oSQ$ zD#I@r-fH+a!@J=bPRp4Mca2>HpPloo;oT=|OOfG`a9Ykxqfaut)$n)lyRG%Jc*pRE zhQBi0wpI73yjN;96aLt-T!B8v(JM@7Xd3U~jOBB~)vZQh=^DGj@GXY#HvF*RweTse zet{`ZdeKu_?RKPo7MvIPi9%XnMoYO}4dk?m{AHB)+ft$j*pPXiR zlj*g(##$ex^D_XhZq;P;sfO1Ze#!7VhJS#6jO{e~priF!y$p|l$q9X6b*p2I;?7)?Lh~yAJ`vs0|$VEz`>vo=nMLRL0~vImi;5g0ipkm&+94r53OvdD{CyDJ*~d7 zF<#uTpr(9aMQN!HnHVpt7*^9**|=azLuJjZBN}RJ#+TJM#Oo7djqlY{jL&ysdjS~6 z_XY)^kU*38__A5?1}};>PpPY_Evpz_Ut2xAvdX`B5kW(1=hf)I$+ay9#pgGA$#G6; z>7>T8#>(>I`ueg3B{h|elNZ#*Csi(t59mXJ!{%2uG&Yn}*HsOiq3^FJFERTMEH5q9 z1yEJCU`SP2LxW=;ACJ!&6K`lB!`=ybEu0XTOs~Mm`GMBF-o`wd>`gA4Q5A2{`Lni^ zJQoC>Z>=NZjg#W_b1Tc^rL(h(=f(K@y0Rn#9)Z^771?sclG?MR1b&!RFq^ysL_0W03zAtCEe8TKd7(yaIEskXJM1Jst2sXE14L0{S=3U*fjgflC!PdNjz^fDnTKfcA`x@(^<>igF z^}1gPjFi{2cVLO+1)GDd`GMwOYhG^?+3)fu#b;I1gV3Fr0Z4a%CdMwCMM2;d^Q?JS z&!8~y#9(Wmz_@*l)i2h-NY+T7nb)&Gm+$1-NsaXkq;~u-<;?g%;3YobytK%3y1uxyF$Ccv)lI3=nQF-zP9n!PdThMs>Lj zuWD+T?NtmDM!oR+Nj-lUT3OymZ(CNsz}!txbq>rxUeCgyxOsWjtRJ3H{!C>|Q&nRn z4>Dd>?d8ddol-(ASo4Fg*xQ)>-dWFOy#CAvHmeo|?l~=v9bOElM^8%C2BxO!Sh@8= zll=ImMl%BI*6Q7{4N5&V*jf~L!+ng^)|3fN@g{Gk)i*G@wVJA+pKxHDyq-nD4>Qo* zE6|#kA7~D?=JgJYoL6AYx(JQZGwC6<^$p2&_Q+~86}3@pK@6>|kL#{_f!l0sV6$=# zylhdRwU3vVzDAiTye>j}I5b`rZ;U5DfWUNY^nu)y2~KX5#-#6Z68&3MyreN+tuGOn zP+reI!A~jJ9BAzoXwA#FX7XrNVh?96e*5yDgRq?WV_wH<@)J$5dUINuNn1LYhQh7c520yZ3 zbAGV7cd)s@n01fde9~;gl9vXBfyopZYjVs!#x^|8>bAI%v2I3FqrWKX8<>o>nyL20 zvYJ`WnpC$IT>$=oZ%?M|v6|S$b#?KYisYpVVcb@;zS-+U3D<2#w-jV?Rn^4!iB0qX zu4Rl~m&Y5%)tD!vqco0=mo+r{hOxC?n8}5c)Uf&Sa_-eRN^Aur(hzSf)t4RIG;?OW zUayaxc#Qsy&h&(6Luza0vWy&DRzAlGA6I9FSkq|{!MTXJn-b=3^)+Q~kdtxl$WJ-n>v=9fmG9&czseH?M1XxB;h=+kYcgX zlBQtfe8_BFsdXhvJiEBuRJ&C3M4kf?Q_X|x<7IPFjT7TF@p-96(;X$`(vEQn2AjzQ zgIiUTObt}g1OxY~ACf7jhM|=+XC{OV)-5LCIH6T0Slt;-g2^lwPHfV3WNcIQjJVfr zQfNA?v8<+|tX{Y88I$pHB%c{zwYN$eYAma)Ns4dpIVdExvg&!Qp0*{Ou4iHTdfwEK z3?{g%63u?KOR@UJmvA3CVOyptMqRNQifby|xk-X!$reuYkrca5&eXodYq!u9JJHP~ zBr&>v(#^*N=c0iD`l?>hCMK0UFz6&|%IX?s*ES~HtbJwy0VOpJ^n?j9?UO2>qc4|W zcI#D&naWd7uIju=9hWbjQQOSM{reL?;@Fzv7JK5^!>h^~8{;)j=Q_E*tfm1=eAxW* zxap%?3>Zv%t{7+CxWnq}txteUaYJ<0{)2Q9aQg9K^UKN`tIW!ZxZ`W-NZPP2};cA^0YVEyP1-i_CeSo(D<42oB@yn&Yn`F|%nP=!_PIU|;<5hL>dYy-S%(gpd=5Ow;Q>9mHjF-$DTickDMID-AD%j-- zI#gEy(@ax58)T%A;8b6pWA;~>$xd(f0@sw+FEG!RhtybGURyOaPmHdeHH!gzDqdIC zz8Dx|>nqC}d_#XdU)N4;uGvE4b3&6Fh+{NoZu+>c_%!O?+x+iw;Q}qlJ6J#qC@Ux3*2FdEaM)QYXeHK0SZxv?UM6G%2Or zmo@79!sAS^zOUro&)Q9a;%6p`ZQY5ZwsuPspyS|lc2e0z?`tFJ=y;=vuDi>?fzbqy zoIH8Fi57TMz1%BnXR}SK*}T<%?p|y>%|uRq?p`2XVVhEm56{N1g<>M>a!VeBv=f_(0oTN##_Hfw@Ik)W1ah#CU2Z)o4_$E1ASV&u7x>(#RYL6EI&DSH^jim$3 z$k=Qef@jJLbd$mZg-u@#uM^5%ENKy911NYi-s?x?o@_(($+((0x%oQ7+HIoAh2~w? z2t6H0bwoM&(#|Jj!f2LIf+i@n1oNzwY-#rr=LRiMogkfg8_BO(&3hFaL&wE&M1s4D zYhyH%nPTz(l590WhNHN)l z2g$i0jv4lJNtME@Da{W7`M&iNc8e$zVZS7Ab@ zpJdz#sMk+vmUB?vRF5|!!7yV1j;)FDYSxHM9+oPSEad(^BaV(<2gNb)Y1E8g6zD&4>Ic)q(OH5+9Sx$W%IP%Ecz2Y7jESIURs%( zVp_v%9RG$!;8$fyZyXpplI~Yc9M{Xz($>7*I(DFo9$$kA)TK~Rpreg0Tex6YO;a`H z$;e>Juu$7|jQl>R;Y~H={Fyjx(&Qnv)z$byInq5aM|HeE)Pt27LNJeQs;bh-AWQs2 z&C!WXZ2Pi7w2hgSvzmCyW3zw$Z!)mh+AvDrd^C>c^)RmFQ)Zi^%B(;8_;u&HHL zP4T2K)A8%maTCn0<&{ch6(b!d4V%jVJ(7Z|GKZvCUB|LV2bBz?9IDt=nPBq@!Nf2% zVVK!@SzJ+8$Ey{cqB-VnYpd`Gn{@0W!wsj8XaTe8DJ1mBvWD4oTPUJ4tU5j@j?LCc z|In{;zO6(zQlk1{9OxRtpQifCJTbSdO4p5|($abLWp#O?tiC=^44JfFe?8{n#4D?6 z(BajkrNb+EB~-P5`V*f~-^AXGUOn@A1v*HR%1T!W^ z+WcN(SVgrJlWXnY7TtR!?u;3!?#BWh#5QXhS0@TO8ibcuU|g|{BT3r3ip!QkUU(HFMpNbzF$4j^}Y#J$DIREK~O zfNh=5<(oOH9Q&@_Pc~QnH51>);B;#7x_U1pfo67wzsV-k;u2fCq@36|jBMl_v1E!1v_jGsPoitpSfhyP=$u*$jx<)zxhb zQ+#aQBXYo;&j#q*G~Jz7t?(o{*U>xWka~>Wl_$xG&GtCdu5x8#=v=XBj=1iq@6|-_ z$~cB>S^))N!*ss&#LCOI_T4x+!99cWn}c2_dGTx@mrkD6GG;qxTeYj3_F}Z)(jg)D z)^s+#+jFxOW5t)Q$}2RQw4jzdV{x4s8tmWbh~a zA8~CA9T(?8Qrx6+wt)e&Xxs+&tbi3i0jAQj%15Rwx~x%$vpTm)1XT|cW*5(6h8F1M z9&sBhtK+pzEUpy#iN%VKQxW~ShtVb=K0L4&t2o;;g(IE~B<+$_~LmQ|U$VHUuo!d!uoGhXG* zaovD`)w9m8UjL8A!{8)nHj+D97bsDv9$dj&W@52*IMEWgNVMlBt^oD9`gb61#pgJ6 z1%@eU!DSN(c$@^#r342gFC&O)Cca5mWpJ*kFqs*a=#KElT~0Fd7?T;VFcaq2W>P_| zWWhk()P(_l`JTr+_FlbFW+L3nohkMbqv8w9q;Py$Wj(|l&TDfsk!1FR zi3wCMJ%Q>aX5muM+vIfW&Qz+Go=S22f6gWtD@1YAtfq!WCRF))&E##6)pI5+!CR7? zKs~Rq5!_$<^x_nMq;Tef?q+Px$|t;qcazCMwt1N1Pk8g{r0!2~nqQ$eahlDy3NW@b zadXlPn4dIHypYIlkL^_rZEPWN9i)rH&#+tRn3FkS%_dBaJs?Bw$-J*~A~hS49lLI! z2|awFj!(l48c+ynX;>hr-fkpo(09N>#OWvra6E<93(2wVl=Lfg-MgDU6030*>exv= z9)_9h1@XH;8>4&C|LAs~({CWhY^iWuu&uVP6 z#LfsyQcq)Jv^b$5IJxR$(2YOeHtl>d8TVrRc-og;{^ffOm56#oFbz|9 zQx30!<>h17)yP(r=G9V%`>iUt={QN4POPDM61@p;p%NGLc9u$oy`7~JVm$E~wHlkK z85QPf8v~D`I;jp|ZA>1Nump@fSj(-~7Da8bTVnJB=C~rx&*~hV@^A^olK334xC=nt zCv&JDOK_g{Gh<}poah)>OhiXSjT;D>1U0)%{?u_+gIIIRiHM=mek7)MxLiawza9rd;o0kg3$T7u3CXFoaRZu93hfOLSGI&U- z*4q2T9^sMIW##%X;M&@nFv0hVs4yu{f&G?_;!a~ye!<%(F(}dH(zlS`3iBwFUQpRP zGw;lFnCW<(o~piaGP8bN0SGZ|&({g_bOL9VRaV*EZZ@*}lV@EyiYGb0cqX1c_LpD( zw8n5^QiATJs?b&tf^~;w9-XfI&hV+99RIOPVxQNGV}Cr*alInXC#Z#fp0Azk>iH+7 z8T_nt+O7{Q`PbHc2x{?p5H_Q>f_Z};J#^7y2pA%;Cbu69+PPbq@Y`+CUpJ0%Gfu$i z+Az7+6p9`Nifj>bMhiEem)9qucqcWv&s~=;A;Z}$pR!%B7v`1h>v>FCn~e`-%aVlBw)o7w~Q!s2H+@EHs-=TRuhxh7PTvX7zcyRHso(09d`wY&{?@e0nU8FS3!i1pU8|+Jrfxx*p zsMQ3mAJtRmxc+6R zdC@bJC37P7%jJGt>;9&5Wi)HZ#)X zh(l6rEb=BY8PenU*jf%qPoK)8Z5%RYsD3LlW%T6I$k19 zD<&;yV0b&UWSp2(IjbgKQ8HdknuybW42!tI@sjaVdzaKqDxM^!)Wql4(F)>vRa;ig zPqXT6fHSJ#+cCR8nU?72WAu;AYi5n%MMD{*tNsCyJ*i=MZM}}5Gg{K1mHvDKn_DL} z)zz7G>A0GSlil;D;mEHeosy|~MVoMBipUPp{ti@P=^@@3yprrpm73zErNRyyLwUxc zj>yaTfwu-^{w23hA@0)qEFGb`uoo2D4JqIZ&M zTHcXPJmC&KyS|?wyDqfhywLI@63MR%e$KscTgu+y2!8{qn3SNa-F)i|O=zNanOn8W ztQV}*O~qevn7PY1T}q=XXYlOG>uVcoXEq)>jj2%WyoTb1yiYsSDS$(D(VE9^guX!| zhLqLR)Hc%2nE%>N)%>VI@XDpB!W->p2r7jAJ<|+chv_hTwpQBTZ;p6b?`i#*{V1sN zIp%PNr*t_Q6Q!efDUYeFVg4~G&J>WJRxC)E6*nYC8_6{E|BPhQqSL7UKT`TXq6{gk zD=X*KoSXF-G{^?G#poA-EF35hyCm?A@f(S1yMv^-sj(JWSw5_$qOP{Grm{#Q%)7w!M&z&dXNlF}U_JFr-8rUW{# z;Y~@V1Wlrm*@Cb$k8$~YFSP2=Z> zqW;J&{Mm*#3w65mq~A`6fSH7;Guqv5uavM=$QlxN30X_x1|e(l_XfE!+-*Vj*cO%5 z_V%rIcV;>v&1PGs8u_a`XJdeqQ-*Wa`}S1IOLuIhM9fdjtl4>v#@}Qu{>)a`blqOl z`6-LFQbXP2BsXM2Ij64dOfmXBzrC9OSP~|I2@fXG>OYzwtGTnJ39PxGy93Z(F6H+( z_FkO*D+gE)?#Hqd$&{tN4dzkm zRK2ZprcBL`>ipANeurT1S=R;o;VOHZ3C9Ud&57Z+HQ(S@CVNrcZQ07@Wzw0Q`tR;+ zh$+jI&pLS_sgb#KGsmZmoU%2{yK2IV7e7^hLzoxO$()PJBM9n0u&T6_?Z%CjWmTTBn*B$_ za?Z3r2eyg1ngK0A>I%$GAJ0^ma?E{svFqxp7Ptph`gh4(#hHkin!q8^o!q*X8M^0n zvcuFJr6>t7R)p$4{;R*1N_v(z(@ zCzk8DL4>VNcBsHhp`9bVo#Hh?ZT*N!_E73d%TqQJRMfEfb^7}lyQr7W{E}PqKc_)I zp_^c%{glDbChN7*t0a?H(xiH7WkcnRO1(YP3s1dYvR5*zhIbiGZEz+nTqMr#GMp-r zYUF9qIhuXqZaiHbOw}<<-^7!3{Yo^>NHusrx*k_rKhj{$Nrk1To&B|T zO&J`dXZOJ&rg8-bnLdFhH#=TFhpJ^da8cn3wyijRT;qAE5M|ZQR}J<3Q#y%#f?M6) zPQ^Y6r@N)a;|4Pg%+?Q{sokeGI8I;W+PG8a6}P@^_k|1BtxxEZ+~2IzZ|bIG60mcY z3SnARlEvJ7l0{#{EbWr4wr_IN(LI5#*!p`)WYxT|Bukz_?{TJQE1MY~SEFCP*myP# z|G2E80?*=!+HdI_nI_cEjW@Rsr~WpJtWy|4Z74IJlL<-DjAd{*r5Zf>Vy*p9HQs(B#O6ShNJ zzi~o>$(xaqPSa(s`-mi?$rv|eJ-bOkTt3wq-;fl+of>%gv^&|8Bbf_~iR;gv*lsE* z2~$Se)!5)PzvPpRi?p^Lr&rQh32Bzl^)?UF^Yq{l^4h>cG2ooB@p;V?!e};IHxHSj zzX#adtUn7pn62qSVF7m2W6&kk^BW2MF=V&XDycEXr1beB10F)X-5|klXeZSTcF^U^ z8H74@l3J%LvRw#yot=3(rjK-Oa8~bC^oAAs7X!REbDLrdK~tE^xzUPeFpt2?$}F*- z?w7op6`x50zYBSp8yIGLA^RPViShC{(JF-33#Hg?FO*_T?1fT-oOIk?C?(VkFM0+` zX1z;$^HB3O5PueGToh!@e@1v@n9z95m03XTJR&%)pK(L~KE-*2cm%nK8)bOqd?Hph zu%WM#VaiTt7mTIVIm-+$5q@&yyoPZewj04tuxfc_WA=;$Y$MTIaYi(ezWb(#K9vcg z*F5#SCo$N~hHIy?n{d;-s8JLV69-~3I;X{ z)BPnMkaj9($WGZ~gt8M@0M{H&c>J4G#$B{l$qB?-M7^IdLN5;1eA;9>-oi zoB+m}^gC^VjZ^!7pzDLr3D}5Qe}%j)bpIKxHblwPZRvh;2G@>xQo7o7#BDXnl-h&YG=k~WMw`>|ny=_8l3J$Y-A#XGbZe9vclb5w zClbZT{cJ>&*rzLC3S2xya0Z&S^XYUJ#WHdhQd`bhc*vLImfAQ^#>70CPF89*9i8$) z8jPl~V!};FW){=2E@W=cL(?C(E7k<*g%gdol@^vc5yz^!BI<5lWpQoi>GI0#fov_v ztvg2&?R*xD>p@ogyPwYP>z0a%(y;T56LH_$(aa7atwJ~>@;WDmMiV+Z+nA{2t}#Mf z+cu7HSx`Mbne6V)lT}f+W?h@_%HDQ#^3k7tbZ1A0mPQqe!%QPMmxGLe;YKnU2PvNw zZyfY21Plph#hU@5dL|uSSscjE~KVd@{Nmlu*FPPBo(`}aGC{q zWlhVPG{!K7pBDCUbnr%BOl4-TM^Eb^M=df`kC!BL|kOP({ zJBP>P+K4{P8U>DJETizzsi zvMP?gHyidiJFThvGAvEyn9@NC7~{mULd=h}gLEKPIaO72^9z17PK|rt%1ANbb!{gf zx&PmCoH}eb%0SlHiTIehQ!&l!Rd%n4j6vi4qxGxe@K<-w-m?&S`QfhInkVwl%`#-K ziRc)zrEPpp#MfKx$5r39^IO;o#&HrQ%sMfS+44K!C(`IZ6Jo{I$SY*m0tQkLg4%eJz|`_ zYP9J$&5i1;92Y06BE6;K{7~V8R92xh;?P4?ZJftd9SE2oLNelfQwYJ*+!8xZzrm@v zR0YP-*LNSyV-X%lN-SQ?HONxeLMQd}xuf2>#v;g7NZiUdigoFl#j=?C6xh{eQIqIq zq*)OcqS09>*fbxbE6l<=Gp>+!e{Cn>c%rg&rwr(l26TVKI4QniV`yO+)|FEjx3uZ< z)i|LRcO6q0!*gzI>B5MqcvpH0Ir~Le<7}*-Rz=FVx^Z}Tda~p04Xe;TUbuwwbez4+ z<6~e@^lWc3w%zR?r=`BUKz243Le1G2wr4QYX>!~5n5@X%`IBjQRAE&-g|CX^aPY2n zvoue4%!O~0(1Q#=mY`jAQubVqaIi?;Na%XBV+Go}1T14`BO@ zhv814Uxj5)?{@WH?oT*49_Uv6(7Bnnl2hf;zpI*SqjdA=z&0NN#u17Zv>W)od+PJQ zlaPQ_-gY<}E4@{%4Z|q34fnCQ1I~5sJyZa}h)US4vx#mdxe{k)gA#%oOx`UJ5s`+f z1cknM8dtW7HVWMPxCH4r7ck`jair&9kTts-vy;1GXW|6Y1Yq@csZ6(`2DpBM)XIG`qD zz~i3%} zc5~r2Bj143#RXE-RjvNoca@;rQX@hGP#2@(0?yc_desBk zDg`+Xp?!c=wTFT|s|T>g^&m!@JxHO?9`x?qoVT2Edog*AMUH9lnvoHq@F!xde;%as zqa?o^)d9@$?j0S*t-LMf5DKneuH=Jn8))u|R~X!8T)z}!B9|I@L)vgg%GL{_h3}e6 zqI*ZQaAQm^?3O~rr@ZVSD!XhkKw3?7GqOi(!kCfSLn`@bej+Q5PQEo@KaZJwr#XNr zkiBEVULZX!cKXP^>4&mQXkAf5)<6tTB$j+e8)Up@pgH?k@<#nr4(Yb4B3DeMIIZ=@wfND%^R$3WT@K{ND zd6^SGI2r7K@=l^IJro zpA3!~rHUkk@f$$wri?x;y(4ov3>sG(&b))Rf zw4asVhuSj8L4(hWC*^LpRdEQTmbQ!CX*m5OXtqF|r+Es6gEGD1T(DxERi{#5_@ohZhEw;AI|1+w=KNtnul}rQ3ddq)J2> z^88x20_|^4XjZ$_U*dy0uIN6D0&_941XCEZ>(vLMn8UVrzL<3<{E<4SL6Z>FU71Pj zkMDC1e4AL}=eYe-jXvj`bq{alLF*pY%9GYTEb^K-YVA0`-&ySAl+oRuXK%Coa;@?D zV;w=Txa;k%h8#Id1j4Fe97!{CTek>8M-2?9^WQRzH-Nn~Z8xyPov&0N#;OK*yg)T? z0J}BUxW3s+XfCz3Ymw_6*IfT6k--jI$g?;d@XOuKmfWYVX@3@m6KzySl}`6WX{Kmv zQpXU~MRFIsHkZK<2}GM3aLtj!-~b`}R1$NwKDQ(N>aVi?os=Tci~PX(&2eY`+hv>c;Z-bEHr{ z-HS8L_uWD^{O&V+e5`BigWnS86I(1UTWFKsAX_`j8i*1r0CL0HQX$s4J&47H4%o*%VK!MQ>PR;Wc#ku*z4{b@ z5X(1XZ&*3nUSW6XvhUW5%K)R^?6SqBcum?`mu`v1Ye`*XvQOLEv9I0`8zl2HampYP zI8Hr_*t{@k5ZO|A3+`i*5IxS(q@pwohmVM1#kkTHn~S1Kve#qL*@SSgD!Y9d*#|t- zAR@pYShQB+okRPQj_)66QNn0{RL#gxCa4g|rmxlh{YufKc7{PIpfX=*(kl<{|C8Vfl=b z8urxNg0N^LvcQBuf-hMVbG!}9n7?d{`G&LO$G+^_j-7onUwXOZ7Jio|K<2kkFs-sG zR@*K)jOh@B}QIg*VWbN<%+K?2#B6UKV%Zf7D) zMJ~N6dW2#7DoUAEyk(6x3_So9VP(UUfe7iGWtu zUd!05yY@vsxLB6*N`RPqC%YxQ-)~a`A6BqLA!KIWVu$5>FM%5FBOL)+EOpjD2i-hi zjj&3c1|VvNI#!*Bt?2_0SgspsqL!@s5OBgOULJEPsFM)_PQnk}w%*T$>|5_+t7Z?N zW69cJ?14;)?m@_=ai8kNLFcRDq9P!J=zePAhBh~vw_p5DfqAkgCx#?#Pg+jH&HW=c6<48SzhQU+7HpA?lbL~ z&Fu0Je%I|@h!gv?D|fhY$S-TLFX=wo#kNn8+kGN8>;?^1J^B0YJ_59*K5oOyHekm_ zv|lU6O---KPuRtNKFs!z_dB4kac2sr>h!kuBM_=>QL*JLsj7vo1cs;PIHsSwe6qis z$#kZa^#;J}*KVPaS*i9xhZl%(O`?I809PQ{$@&5b@vemL!-`3_V4qjF67E?jv~{fu zxl)y@k1hT>PJ_EM`%V=gvT@DB0t`I{QVWD-v_zz-B`e*AO~h>hZqBi^CL`Gw%W}ys zg#ZI+v#}SZB3x}@k(RlAMQ3OwKdl)_q$)($q0Tb*%kTI0+<}l``A# zZW9-k^X|Fww4~2EmJE7;;}EVa_9Po@)vtyK4=&+`b`vtcpFW!DZ(Ja8o?Syiws7~f zwhYD;i_V9J^9q6kR=Y|s$t2xD-DM_c zrge)}osonz5CeO-%!-`1y$JTn=v!G0qoK9*9;}%7N6=!euQB9m%UU1AxGo!2NJ?xe zmLxWj`XFPseGqLiUyKT_OKZtbR?mFMvA{HjYF!E1K(zoH&laF>b&fwoP?FJI&b3?> zED^>>Cu5w6!@mYeta+13j(hJDYJrX6k*!8%jr&sFx&350YaY4l@?zj>I=&o7t>O|X zzgWemyUn9=7ApilreK8y1G=|3fKjmbZbe%9{sr5e9Nt)hG}j&uV)Ak+ONBZh9e%aY%o6Ka=>A+Rh@OPz7@zSVt!aWGL^Kf5 zToXFLC&yEk721O?OKj_%16@+A`y{^NkzuXa9y{v?sYE#=XJcJM#5wb=Flsr18O2nb zU;XBT&p%%x=IVt?2|av}mn+hPU8w*PUv$%z2lA|fUjr@g=yYpw+970X_ZyltK_1R* zfv}6C{ma%C_VGOUfTgA%^a$&*9e>+MD@0z?=8?@kZ55l2FJ|?aPd!L49?ex{FLE;M z761E=OBrgYaY(7aYqR^O4TO(AzurpK`_YfW4 zmv7&`9vo}I$R>@xQ=>L?4us3Zr(=x)`^sFCY;w(rjBOQCid|@0vME=iw(U67$6ROg zWZp*H;QBrp{|+l|_Sq-=o|pP|CFm;&@72p3B!cTi>=MyKwKHVZL|Ue(_?pCBq-&VXx#=`MPO; zP8+2a+o%8nlp=c`9Yc@^+bb&EKW zq9e)3c}>z!fAh?v)G5kcBAy<1NQf@TtB3VsAIamQt9>8IK?v<4EL&<@_$>)+J80J} zkZZsq!7xhAlCbah8>+IsWUkxGFS*UDJ#5^)Y zwZ-bFaW$L;3J|&uH&VxneaEymN7|@?%YbDg4e`%YeWtd`9H7Ly9#9)#4wd4d=J@wk zeo!aI9Xq!Bf;j@SWeV=SCj+2VrO2yo3I6e(fwTwz_#!__BUq?Bj?(>HLM^ooLpvvd zo2Dbje2i7lc(S;goia3qTp9{jUv50uUMPBN=dp{>8@g53o}Zv-{Chaq;v9W4W`7cz zCQxKQT?i4ZH8$CW9rBmi3<>jac>{LlbDsm;KvfyOF(WkW zV`<7#IQI};U?2uhd9|SM*0E?b0sAm3gndP(Dt-4011Nbp1CXHoBl7~RNH(JDdw(PG zvjV*lk%pR>U}8`DTF%h#0F=HAhqCPXNpQnVaK2B~M5%ZBp}=i`_iK@d41@-R9R-;e zmO7AP=dKw;;Owv3_WS08LM70nm>p-8w;yo@?gLZ#^dud=7*dmrNSmOZqRSXsU5t>4 z+5^neS(sSO?oJJ2M2(W{?F3yaeQ>hFEp&55Yvsz%XsMrMOdy?}sJ>TczH$k(3Te6U zX~_ozJ=^1Gi#2Pbf1`^}zyXX*w8hJ|lBHuH+pulKXbSk5Eld?9d#-%(viT4L%1e=N z&n-$uzlRup^vs8TPWTB6&$ay>Z6eCUeRp{oB}#HZM*02e0Bq8j&JJOP_+j_1x@O-( zoi!&;O=)jZBp7YTllH(-Cr&qBHeYZnT*S0U7v?RQXAbtHsA83k3&KIVr`OF&3OcR? z=+)pG1qQ+pHp4@mtVj@UOxC6OeK3D0r`Lxf6?@#ucy*N%Z1&3gl5P%&bak(o1&k5 zT&`HyS5LLqGQ_isaAYO+v*p6F!v=jUCP$+5W6b_L9mUj{jxk+sI?ASDo|>FSu_B93 zI*nt~_Uvq|66a)7GPh&J{g%hbX@L6hjpe7B9&DiN!2)%+xf6Cy(KXE6%`>TiBDyTS zABpx3BhL26HJjy9&D;s-?p#yRE}0KNs4;p1G5|^25M_lnxfM*rBw4HubwMNkkN96d z)^h|YUvAI+5QxRy7dhaK6sWXC9WJw10G2~Q8vN8gZL*#`Rqq6E$=Ovr*LiGKh~?O|?L!$e!X`^fRPf(eDa9>$-qT_Ckv2O?*_sZA_KhOG!R+v0 zvyv7Vs|l>H09t-nfSR$|0`y~71!y{=dIhmxY&UGrV!;oOSj-Dv-Ht9GO|SBeB!PSM zHB$*O?vgj> z{RWQgmI5AR81`YTIIcf8z}%h}w$J0>;}-bUZ$A9|^W!YmyV0_VPlk0uqJs6{qMLC92$W zH8yZvk&OW3BRYtX*ii$IDI1WbF#8Y+m7*B&D=S$r`V}l-Y15Gf3vGNFIUM+Cle1hf zY_}TzxkMN2v?4D~{PUcB32c++?Om{!ec2F0`q2RE41iIzIEYaqzX&b-(r>x2|D{fn zn};+Jp{UrWpIqW|5!yjXs+~Ql=LG53%Bn15I<^6UF#u7G24k`|gLoHs`{fQ{Cv0&J z(lKfch{_B=5BeBX#@E1pVMExL?7g%(S9CWO!51W1YF^k~XMS=gdk{^J@B8sfsrk-= z!PP@;*qYV?sC64AgNv@55OiTT16r?`k<$Rfh_q`YrQxSPy{fP@5* z>XJ`Y-Ji|7QvNIbK5{Ql-vaFLin2bdrStyg!a?e}xG~Ga`6eO;TuiICPkG~I^Fi2C zrBUJJX8kLS6|qaR1Z^dv78?6L{-RrWQVzJ96D2MHdls@4%D$jOwy^r!G#Pb!zIi+y z<2C|`A`{W;I!34>PxvDvn+mfgSUGaBiHm=2@P{yrp=g3j?$U^t&?Pet(N3sxla=jc zFLXZ691}4QHPax9*U9^oP6hG10`(EQ+C~oPBw)gH379HZLV48uI=2#AyC&}|w$@F@ z%#T06p|w|Z)ZAL!2|Bo!I5OABV^bbRGIcPDPDU~#S6$k>x$vrc2H6}Zu3;fl`K(Uu zG1}0mePeUS`c6`m^+_Kh@>o1A@%v0J5Krz48RuVlZo_X_=*>ToaN$c4$G8a@-9j01+m}Qwf1ZP!lp+vJn0EcLb+Z5-pjS$O=7;)OU?2=(;DxI~&7}tj zX3&F~zlY-=V8;7elE^(BeHMALF|>YgfKT)hzox{<5mcWp(n&wtVwdB*O!q)BFN-j* z;tBtzI=}3uzJj;oBX^?0CdTA=r zD^m2%7G@rDY-=;vymdd;7Qrq`E=^xwwvCV4wxAUq(4x=`!cTM^_{z=ZEP07ip<0)Erwr|fVWSQnnbAr zJkHKZx>iNS2g_=u^$$0cLiS3SR!)QGMXP#)!Q5fCb%UtTsYUClVUx565YrSDnHM|{ z3(C@lgusAVFkL|lKrEnqyXfMGaZ{Zo3LNb=>ad0wu>tLQP<9Q-6PnBtwF6}KL+KNR0@pK zDHY)MShjWbA~F~ziPoUm?`qJPo#A=OO`#3ch_i{RVOCch8!S>51qlxJsZQ$e`WnO!=OVNj+sPH<*uaA2y_+Tpc2ta=yYc zXvjhLr>cW1J(O^5x?$9#6eY-jFQwV1nM6E3GmE7tW?e>DPYfP@w-kyPpsGTln++oB z`3y@rcm%%G%|^FWN0!b*6h3X$l=223@-01D5=J|0fwGjUR}I8Dc$+jfOliX~R6p*U zsWhm5e!~DsDwJvfWx7!LvYy(E;Q7uHQd=bN)l#y*9p=Q)huMW?kdd46B)HFx?A1)| zfCPwG7XVcAL$kp*LAMVEs#%Yo$m32X!vL8s&3$LZZvrclJmOrCDtM*=#@UZ8aoR{O zcX3rwm-Lx|#42D_hN1$cRJnmY6nEDAY>bp49rr*vod=jwRCVf0RhD5>tHU5x<2ryW z`UTNnCQL>Bs8$=M^W55Y)7+Jg9tNWGBvG+#f)&HDB*j1=rOj3|c}o=CKiGp3B>^?y zeI2N|2pMIqoq4HISn=5jVyC)y)5O_tzSoy>`KwVfJ=DNeBQ)>JyQ(YdZ4|?cW3u|| zVu}D5Q9I4`;D;^JGU~nOJ%qER3*UTfFa;T01N$kt9*8Qq)yyyqpTQsC7m%$+%23{P zz|x z!n5dNixm#lOu<7Ln~K`WmvW?0#=+1n-4vp;Uiu^1VQ+pYQ;Hm{rBrl>ej|T(=++yn z@rEw2I6dTEuy7rgGLv6)|8?JRj!Ch;%(%W$ptS~gwkuxX@xfmeneNkAw{&yx5q75X zjh)PZe__@YD<|g2$9&@TWxfU)Sr4e!H?(hcLPS>`X{k}mW z?=h5e#!!fD3^ko#42BBFP+MBZ;AFcj1moD<$y#s7S|_7ax7>-3@QHP(ydwR>M7?!? zE?B49NO59+*?SkC^izdm31X_4xF2fJ_K$M&;M)99W)RWl>%?Nt1_$FVuM(>HMZ^^PAFi48R{q?uHLIvR8U#hCaV>w0Tg_v>KRdw_Fh~ zl9SzFC!~+eoN*2-${>acO~?4bq}Uh8jIQ$&yz;jD3Mj7 zOEb=v+?lm+8Br!R<*1>7QNNyPyi+D_BO<9yYmIO)L zeloCeaMEnueZ)XbAmD(nc`C{nBiumWH7(CIC6{Pw36dXcpuJ#1^|6Jh#=4GQ{7ERw zKm&|^Z3Y-qC72FhGr4|veDZVvvtUq0#WXp$1}ExQsBM7Nuj2$(m8^u??&H*qeA{Kd zs1OD}7)J#{C?lZmrFBael32x^mw_iMYfrv(XVbh7(ah}wf}r|9t-Wl_4S+81^?@Rl zKHvb8PpN=WL(r1QO;_0_iO_#}k3>qs?syd!!zD0IZC+L`#>IV($iww?&lh26auZcwGE<#0G2J-lS3n^-(!Z88p7i&iJQ+WwkYDR9@AsRh^`-E zxC8zW%4#x%IkA|1z80`E2xs*+9=O%4V%8W@%`nn;?R0Gy`(ne$OlkbPX6Qxl7P5r1 z<>(tzD}f#N-iSAIHO(KRZ>HnpRROT;WeTqI`S$w(zSs2x#%i-CN~C>o?UZ3|AH#0ugB*nOW3BRve9 z5^kAMt?P=&ctIF^``>OJZfM``z7H?`I7IptbfNE5;HSXFZaW^X%!(+qt)QeqqMj4B+s8F;2T1Ct0c6>eJTYggh}|!oMmma%#SDjd zSzBj|@Nyi1Wy^ioX!U`dRzlHy&0*w7bv>|05!(@gYO8Cfm)Q6N#DLFrH@L})8*#OR zx_Mtkr6ydUn$!g)ECP{bqPW~*JF7>2b3>HlYi^=7)~JX#m+psh^`9Rkl2ysJrSI4S zcY*1CqXPkX5I1;&EMj3wo;uN;r`o#0aundA2L;a!a5IegC{M&R!!wBS;%ra@mvvmm zl?c`T@*R7oYeZS|o3L$i!FnqS4XWZ$6VX%^UK=^y*?D>}-^q=yCZef-12rCAQ-7>W ziZZ9MXaO$1jX1P;fd!dz<(2m~<#G_p~k&B~Tn0EYbN`j-(=slO>f z9LctE6UQ&FaN(*!>jAFyB>DzRwM)xf%KH%;lYuJar7bO^ZnTbIgORQo?UguUX5%Mw zBYoMO_NQM1DkWcM;ly)$P&VdR+I6`MpR5`trA0t1X9a6#IRc1t%_oQTBlyTOS@_R} z3oq*L$NS`MrXcM+=`6ptR6fxKB^D_0>v*RBe!kBYrQGPsCc2Ut7^SEW_L?S=4Eg2L z&M8^e2})sn08AUF5|3hV!X3gxQXYaOBQXcfK0Ogv+&YGFTRZ+TO4jmAx+Vj^`pwDb zpWlxzI6ZmbmmAO>$S+o1pW)hs-+Ukka7D4M=!fq2{d9Ht7vauqRUZp?YbKvzf@loRf8(M+99=kHCGq0;F+03TC8{H`R~oY&h;MFUusVJ_I?s5Akd> z1B>a0F>r{50Ie=M+&?``xeYfIJ#{?x{B zKA9azU)I4=BpP_6_>EX#8)p`w;dK#_E_TKIcJfl3rY-V^rsR|z6BPqc zy2uk`mMjp3rv$2mc7JPJ8jN3y?d;LjZMDNM(k%$Z;6*uz7$#zlN3COkTOBW zd1G4?DsUj08#Ai0jqE*$ansfM1Iu{)4xNhA3|fDpr`_}kC2QIB*J_O5YbdH&0U(Qu znS}%Cx5hvZ(=lN;nT}N7Ph{qcsafW030_e8wFJ0o}cKifa`9YtAM@IV6DC8 znr2I~2rmMxz47@s^)sdlny#6QlqZSuuh2TKxX5`TdxiH^Zn~6Q1aIqgB~_lJ_CjO^sS7`bQMY3z==i`YB5M zS#dln)lViu>H|tXeeiCtGR(g;LaRB^I}PM`XMdq1+3A!gnbpo27+)89!nF!%>~LCW zkQ<Z)Z)kcyEBK{IW|d%Aptlr4df=Dnt`GZ&j)B78tp9(ybUxqHXKr_nc#V_RP6l?E95(wa}DlK!D( zS!uP2pbOos9PdsSuN{(o=b`MhJjLeFt9W?M{Tq+c)HLm^e_1>tKF4eTw+RgNA6;>=rz1Cxm$7@bn*Ooo;sj?OAvc7KrI0W60n@2` z=F|>oCOFq%k(nzfU*ZKjR_3~Mzq}l?`f{SFlD|3wO{8f8#~m@2#B<^9Pq%;b8|5Z9 zCFyluxij)5571@~1NG>uG}ZzdhA05i##Cn|ND}gLyC%hVQ08G_1?$a>if2 zn=%l$%{}`&ETgoeynpg7+Y;k1hjO2T-!hwX#@VXdbBg~C%MpJtKikX2%U>eT;^}u& zq78PxL_q&!B~qBlA>Uz%Q?v9tEY4{=2ayoct{Ka|ZmA9H8t^+i*0h{G#IhMiJ~3Tv z$d8R#U*-kW?((kv+|piw@nqBF)2^)ebI9Fp!b!iqPHRiIJW-;ZuQp`4z$kHR=~gYZ zZK*x$UG1IQqkA-V*~oWVH;dziEM%$DI9kjnCAe?NkmTisSKk13qfZYa@AoF26x{MJ znRB7rTn)bs%Uid^NxL_kU>MCsW85QfG(U;64?8Af$bmt|N^KDBEql>go6wsSEi*S) zgb3hR!S+2Dd*FT9otj}b0{3N2`NHo+@!s2(E0bO!+m*}DGS0>Ow{?UrOV%k`iQW!F zOV9xHU?&<0zni+^A*Rl3k6LxC;K%!V#a>sh${j+9dQtLw#8=#2%Pbd7;`kr8m7z6QaT9_(ny-->Wbya;H?)b<=5yvwW;gAcH~wDp3#YfIf(X^dhFmnO?J zX)slkW<~>`D;31e*jarO7h^IRcf2Bv5vjHx<%-^GpqP!>IW{pTVHjdq8Re_F*f($? zv-mWS{w*WSz$Q}T(}c{H;j2vprQsu>v}o-i<-@Vmh+Z$Y^CtNNKZGVP$<_=>isRZG zR%mO#^8)fZV|DlF2ZqEb(8Rl^B%$AH2=4?|Av-6t>|{@4&DtY5+NYO=mF+a1x%CYC z5a-+jSTnh!Z~6#}UZy*6)Nr^%Uk=9W(tt)$GLH_F{SJRT?<7Z}X~tVrEeiDd#;7lC z8fJ@4>Prym$`ebD(FCEKCJ29Mg5{if19M5k_7(>B2|!KeS&%PAY1Oe&Zc^{mIQDv6 z?qVe}v%c&|>Ydp^THlPTb2k;QK@}`(t19jfGkBCX89qVyB9##=ucy^#Y+L}hL`{y8?hhRmSI2;E)jK^|$MqA982xmps?42J^W;~9v zEJt9QdcmmiSMg0LpPo+{jZ)|4n;Ph_v5nIWZEV^HKwU9iJF*1smv~!Rm))1_*f~v` z6=vBz<_ukYOXlGXZ`=wlTekd(pH z{CWgNmX;wNZj)oEMAcJm{XD(whQx=u2IA4v7SAU%V{dQ2bz+APoqd~?4c9gAZdFJc zl;oTd+(u^vrBNfGb?pespor7Un?^-5BT8W5UWHowBUUe{>x>bvtQXMSeCJUh0!JS~ zE0xWMFQFE%BOHzkuI4unW8$AIAy<-p_Owsao~85-8Uas-SoEoJq@{U6FE<}V$Q>*)0M9C< z*6g>-=O);Bxx6rVc@vghRK|9+KDerU`1~&777#Skf|gE3Ehwz)ElBgE4f5poHm#vT{EU{TXdrd&!P!+}eJUQFt5c8cG}VE{6DM7uZzgM)A)wE4m5 z;gM(JH+>|8-WozklkvNe@*Mrf_Q&j+p&|1f$MoK*xjc@SzeOD1Ya?UAN7py02Cs}Z zF=9^g0cZesB(O3E*5mD-T2g})tHxxU7~NvNG_7TKXAgDTj_g#&5y*dn7hX#_+lcxp!o=ugP0FNOV#_T+F||?7^^Um}8lW z(I0@UYX>mMY5+1q8o-zYvA_>vd_6IxVGzTX^mLkq#2a}LXH_-nW?yBX95`C)W*lbf zl9xLc;kU&xD%Vh*swh&&FKi*Snb`wKI`9~(&*7G(+(Ws%%Z(>1L~2J2u8^m4F1vK= zrRH}#k?8M)FPnMX!l{N>%Use!K^=o+AZ#&66bnV0XaI_}BQavl&R|NU=Au`4(#0U^9Geoa<*RA|a+G%FKm2+QW3m?^To+rkR0{t5>A( z>1FlLTz0XVxyPexC+(=*K@L^UHge6#B;4vVmB42BRD{ir!a%1mN=2t4i=AmIk}*=v z+{@DCpC+i`Y~EMZ6t9?}a;lZ$lgsWw{E{CwC7bs4A;UvVaBl)ZqhuM9yqoWw-k0&# zN8K0l7Qj^PVH~%y^m3%MZZfVEE@{c_GoGt*;$>IoIHgakKZ@>Sc%Tc}l@uCuuRopP zPREpCx?zkhf;HPFI_7@4)XBC9Bvd2OSflg%zS^7LH>5m5z8K)-7u0~uh>xSJ!<5Kh zo$Du~yEML&aT~gNK@NDjRXrraEbavEoB;+{cf(8Ps4)1&5GH~sY1(F(3o~uX42|1m z08C#7+y|T0D&s_qrzMb2IbuSS}Ftu=*fXqSw7txd1ZVZrYO*pt+%L z&5-hlUX1lOBMvp*vRe$GJ3$Dcp^E&>kF_(#=N*Dk-gbMUgFIX~V@A)p3^>jUCrq~{ zlD60x{SGPH^paDQ6ehWiYI6IXE}zQnS-4!<5zO0XsWdftbUUr)H~kqcNzlTjhzv%L zXVAt(&*(;8gLOZ_wwr!f(H4QuR=FyZ7$t^Q*b z=8IAdugin*sWwFM&X3%UtJI)Mob8&OL3Vd{o%TM`bEbFz)MbTxrxGUf05YmwhHnGe zgmx)vA!h`orOTq{7MIuwS04%t=TD|Xret}7pSl>-X=HVl7c28RVstf zKYfUVCRE0dW&3gB6ir%2M0Ove=2&gDSA`O2(7XOj!U-l9U5RIf$8kitoyZ;4S9?FL z8xW(eKGJay!6nBRypeRR=&sS?qb)U9ol+LSZHR+~2tG)bp&Eh${g>^odXK#Qh=!jn)t;oC^9m zA>0H6=_5YVyq%*UipZ_b%v}w_h}zFBLR3VPXraT64`>io>4lp(HCFdI1mfKB5k8Mk zOnX&o7FUMy!Tv)ztlAMHuA1d~9GP}b_?9Z_-)34cuDmH@g(jui&EXhr$>@BP{)nx5 z2b(tKBAIRHY%XG{p!)|9y*w!$zaVV;nj3t972aAH(2aGD!bZSmW_&Xf;!_KLe5tVb z+A3dk-&G&zh@%7hkRXJJC&f+eszgwCc-T$bJu$qwFc3ocoYp)%Acvlee*@`O4^ z_fu<k6-U+|0wa0|qd#CMj^X`@B41(NqkWjOuX^mz?zylsd-AoDb1QKRVkatG{*G5H zEgzS-JfkLiX5ARsmj3{wcgE*#B=??^gMV~ox1ArKeUY!C6;${7MFY^%m_#4 zSE2-4D8$ox;g7kCs={c9-{X*2(bfzG1?F8G3C01;*1!ZXMm<1%mm^Vd{osVIIUH)U zG^$C;{3hCn0G%^|ML$h|jeLtiCC$yY1x9~UY9@3wode8%mZ6O^dXvP`!o(=|T^?$o z^cjM+-<;OQ_!|m?Odup2NU{>qqbDH} zUHeLsMKe0McmuIvE%7#RB~+%r^>hI@OrRf8>RM1+i&fTv9#lO{vrkx_nNeT*f>(0T zf+Pi>nP(lTgh&uqS4za`3G*2nD}or0DVqtt#+u31pHj{eM%EgBjj0h# zYMvQw&J=fbzgGh4>&Xc*g9S2E0^EMvLS#y6gEzHA>qfhv0(cvn))_9Wtp(cXw1A)v zb`vup)Z?y{3E63`J4l!~`S^yDjD%>#5VUoq;giPG!tc(XG!SZ8=69kss}Pq4CzvH( zuNbtTS(yU6uG~og%rDyEgc6npH;wc`)=MV!B$APTAIauGA5;jt54Kf6=z2TDts8zH z9@7Rfridm9xPJ6_e=)a*wNq{2jQD5yO0_2!0Tw{$-NGuM5KQV!9>$>SE-MftV;^Ka zE9vX2iWKr#g|K#*iN=H_x0Pb|rd<;nkI9hxyRGJvhvQnsDA7a`CXcT;L>F@L*DXlL z=e}Wzb9@er0#+TI`{Nb`*|taK{%GbWF&Lj1p_ib_q3TaGVO8vSf z>Vr?{#)3pLW>Nu^qI%E=EedIDZj2N4!C#`-7bKEdXZS5^>wAAAPcig#2NEsPk}uor zpt!cUcfKPqNM|C*lyPSK@maZ3yiBc&xi%$b2`B_AtAx?=s<<0EiMJwIp<(hMf3Byj zZKC9J zFSje`%Q06QH@<&fU+MltQ1Mk>%@ubE>CDPDfU#L7hal|}>pIRv1juQw2IQWbmV-8l z_jN0!>|nZ&g1>HPk2m+`rw4oLWN|MUh_l9^YFP0^(Z03**bPf|bCd1f_~pwUmOm31 zY~$z;ra*0Kn}e1J2|K;^>sShOEIHajyy&D{cRWU5h9n$P~LB$n0j(9x0lEf~$rA9$G_6&2k$!*WJrRZUM zklDsU?0-2^v>svZ5biLNrv{Jx-4|RwY~&IG9ciwJPn-Z^h7LeXwE@Ux+yHja&xnQ= zsU>r#fRc?weVKfLNT^i#D(u4V3v_%uMbg&W8CY zM^Pm`Ki*G32s{b9E2o7g)`z#}{(J9am(M%;uMx%PFQ%(8GQ150IKA&vI2Le+?kpBN zx>5#&eft|1A_Rxi`47Jsgof(Uk51QgKk1eI43gVo(Y8Jt{u$ zn`u%vYgk0gLIxgIa-==xevH*>IttR5jq_JF&18eu>t9ZD?HhVul zI9)!{=IG8-Uq($7^Ki(Mb(TAr2CXypt$T;{R1h2PJ)BB+r1X=K1;bdr*3%lf;rA42 ztJ{&c=lP4zlYj46Stbj`HPwu=AI4a5^~}>AobjDNw<-sG%t<4H#;V!!TU5tLWDt*y z7^rkQW^WQ-7R$Tw&Ru&MZsdlo^%gv=8>lbv8k^W1C;)3Rd%i0mj`_Qs5v4yh5Ywhd-G~s(;&G=q8$9P{FPA?({ zdlYe>ds=&_;uc@%P)b`56S#X26TW*8iXQG!TLVTwiGD|l~`jo@K`Mf%@tMV z^e-22t$1V;@;fT?#u3+rT&rltWu@hqNB$pVKgyD+@4*$)#!mo@otSYSa;+_6R>pto(-4gsNKGZn75!f z0_U3I+fZGjGId7pAkKwP8$K4X@omzm9pY48@*{QQcg9)tO+}3Fxa?^W9vmN#{^j+;$9xnX%I&K18-y6cYa}b9k7(UHv@N1ASBaa4o z7&iLwc!;!&bCYBW2Ci#2j>wc5!mM#|3r?NyO~%x(j7H680_?Nv%IT8z+pZ(Hx^ujv zlMYY2-TdIp!$rn2S6zjqjxVXd|$S~ZHZ`vvr|ZeOywSRghSQley+ zKa~`oS=VQ3E2vxtsU_Nap+p^LGRsX(SlD~Vta;@n>?9i9(EPOPy666R*S)LjvATJ; z=ytk?-K@K+uUWUJ|3`xF3wqEkyYAV4wchRO-@H4uhzt6=(;W(J*)9$Np#r-{T^8b9HT$r7rNgmpQlQ>syn?Ta)FSnJ74{=i0gyy&$~r5bqVifa|PnTb7+AuM?=YH9BuY90({Y>QZXYv07O#n#hv3kO1 z`b=fDlUW!)IS=EK^`n#ap3*PW`)kks!*x~qsk-s8y7-og{IR;=cDJeQztp@x(BFIA zlkP9ni8mEGR1;40d$qgPeJ1D!!o1i0tuVK{pD6XI2;pw`SKUv$4Z(D2y8eEtJnwbC zS4us|Cftt{_fzHaW%nZy!3Rq5SHilZ95w}A81zc_Nq0p}{z7@^O?1`lhHCL^{p;Sp zXANP{AL~Cub!>bLb_Y+Wtgw5Y{A}L;`E?Q1N;3Xps#^DbH3p`4_@T_>`>zjuVjKc|Gc1{dZ5@oDZ#0a1g95$9Y}0oOlg~n z_oxY++W9Xm;83x?M%-6i=6)ikK`3*)(EW+kf|cjj8o}hue*(Y!^)=;jtTEkJZztPX z_DZ_YU5qv6V&s~2T6?w6Vw}NrZ%#qWdh>qE)Ev`U+L)nrFX}=cYYlbpUhDT;$N2sat#D2g0B0 zpIW4E=HWxNvU|nn3AxkynXtMSbcw9Ow4MaTH)fXhn3iTAyd-gw`SFH;|ohiXXW#f|3 zS(WV11uA(WDwtUgNJ+4J=AKJOKAy}}?!b4Zlk)Y`^7XUw_2=d5 z=lZ&;HTjlkHNVK&VdU&z|f;UU*zmxn^nU9 z0Q?;Zh<_{SrS9j#dS6s_X#)D5(*K}ayF`k0Vfej|W%*g+)n|5zfwjRzDRBk^?>C3#=xqF*7GC?5ynU!5@vLPUhCKXn$=Qud*! z2J^z8>)JuQti~q690-@L{Mfn%*?!or{_u&{Ja<>CdF{;Zjd2?IC5uY;oVx6}9sS?c z|5N>!R{z`+{om7nsbSB-#UAMYm-;XAdQQ^Ab4vFLJ@;jw^u9-*cNhD^dqJAS)B@JM z+Q)-*ej&xK4^84w%$uu8R*E@QiuN+X zQCqL>`mj~MR-RR9_@zQy6YWbZ1hb3MjQ`!b8ee7NHjA`o(O|~b=h42c>~uq$j`_c- z?m^5X?!Fp|5yBUPAvPlqj9ihKnES}$FjnU#Yu~3^q?^7B4#F(MME7*xmm8OI?w;RP zS)}b=+-kb9dzabb68V^7awc`JKv_skGp)luB;AX<3hxU7>+Sv^F5C)F$Er{@d?8v< zHHZ}Sv_R4<8n;SF>vtR2E*g6(r^co7L!nQBDRc8`(nWeMPi0)UE<^ZBbD-OxoK90L z9G2)znl+8iXK)eFunUoow}#evhxcm&jk*wm^5)__zbJLxE0`$AqsrLb3->LAK$~ir z34pJ#LJqsX!Zh7u;2|PJNto>4NfcyF?Y{55)_u>`>sNhbylh4Sg6W?9>l^yORzl)j zY@I{6JkE5gMnG4v=yoPKIxQXO9dvOZ&LpKHs}CopD;|)ABx}igJIHx2JKZrbF5h;q zTnesUVQV{mf@3h;%t(z=MMOHLsa4To2vgI_SnMJFZZY-mxzE)x|KXmhfwXh1e^7%@ zI(SrO{fnkRC<1D5g~w@x?Dqs=ilQAQz4%CBl7@Q75#D!Q-;4|S!?lu52t&u4qJ+Ou zlc4tt!f+MJ>tOc6XaDA|MN=S|Q;hSZO0=+0mnCS9>y<8-oRvLRe2VN>3dP*JqESGUWw=bd>_vUO*sV^^k$!1xU(8%kITo zVc{3um)A5DbT>IW6F_@%6N8HtaGvX$!stqvU3|W=235P7v->2Ti&Bqa=CJ((4KxI{ z(C>RN@i}wAwYh(i@|G|=RHU@uu@HR6Z4^VJ#m=Rjdxv3JdNX|M3)Mlr|2$kA%cCrb z>*}z&ygMsnMeVET!?n~`HD-tJY@kaH#fG8X%7qamHps$-Cge|1#~JwaWxOCcIBt#-UB+~8M<;C&1lvO~6V}$PiIl?Pu+UDvowPpH6+%hLTA``|3JY<%jO=+g9p{i8YfG?A64$YpsrH z_eMf%EsCDh@z7t^*TzLgj==Hn$VDBevze&Zj+_#+5i6SyXv1tPPu4O zMY~x3s3(~)eZBK@D~M$g)rpSOB!2dP{{N+k8|rZ?Np;sX8pyW$s%r9+@q|rDH?;*Y zrX*iA^LszkYTUh0EgWkXT_yUpSv}mI@u#7SI*ctw**Kol|Lt#>z!%&x$-*bN| zYv>QG!(jwaX18%qG~|QtiX!c)>#qxV?S9cpO8xaW&8bJ(KR;j6NsYiazzfxHeAASx zTkuVD>b2l!=Sfa0>VM;#rCVA1Uw*TEdUgNhU5)yAQrL?6|L&WoUD<};e)GI~?RWv7 zAq=Rpo4nvuYpxcWAAvF1us9z!*T?QmJ!W+C$?& zUUS3^)*b}Y3o2D2ndZB@3b=04J^uq?AdGbH-4b4P06-s3dC1qRTx+_E$mWO|SlsR? zwX5eu=blVQh`9GGo|To7 zSm(O;`*<5_9YV6N$8fQ#D{fl zrJ+7uFmqemZ+Gc0R6|PgOdq!=-wDst(q1@?r|X_$19M$G0xZ8wOM=No}~Vd1(&z% z`_9RI^K)mg3GjR2yCIntcdvYCD&jBIUh?@^yrJ7+(@`kL*^rA*VN3hxKF;{F3`rN^P!J*K_iQH#DQhO41Lv)C|QPW;isjdpCtQUXK z7zetSFR4}4Snzqb_Bs$&7&sB?mQ#&lUT&!hd!(+4Fp94Znm&7eq+JT1CBJOi`)jpu zUwJwYzVEmJr+f6*XO*(56?qV1?dmvnx^g%TUlP^1ypt9OMlBtG zk*?Oh|E{D-`OG}`uKsI8U%61`&X43ibs1-`Z&k~rfVG#~S!Gls4}BkTct_oG>~kA1 z%bb37Lwuy2tHiE-4@zBI|2Cu1QhfJfOV{1otNJ}#)a_3jxtt5LTKERMOXYiNBVMR3 z(^iw(FG98_?yhj))-Ip#N!xH~zk41NAd-3aYRfl#-e|3p6zY5e?&&t26&&WZ>!MH$ zeOHttQaBPGJUzLFbCM554V7y~PmysWjMr7f$<67FkJ$DDCY zjY>x^HJ*p!9F@;fc55)aWNXh?Ds7eAwf6IGl1r-ruKo6#q^xa9`C{$a|6CQ2y2Kr; z3#(Fq5zh&wZrG2_dZ^3pxmAmSNUHlAA`1-2i7gjShz)klprOpR9%3xF&dgj$mxA{% z)|Ce=&K;zEpwG*zs<9Y&e5cP@qc7ayF!OgGE7p&>AO`rt?(C8pW}8|5V4(C%n{)Lm zaA6)*yv={QY!qXhb^dW%>lX>I(K9#T@KZ&Ohk`C-c05$|=^7tM@Sf<~wd0vMeM(n8 z1eXU*DR@$FvylMo~5JZFib zgV%|hjFFl1Pr9`?>V#iv*iOZGj?@B#fwgyPoSQIG^}i%c>c7{my@v8TZguxOGY?Zs z_X>glDxcSzrKQ{5P%5WtH%B65AzVUaC;`~3AwDN9_QW9wcdyND0w>(M*uY5Z{8@X? z^SnEm<5rVj_c|&hC2VO9A}r*Rg11;LSKcr=r;?eqRirxA^6T4E$>?e&T`t0|z!zGg z@6fT^LT)$&JhAHd+KCMai7MGg&MK#2I*9JC9Yvn$pQV}e?BCGS2<6q>GrhycnKvdo z6{jifVhjxr7w@*OS-^*BT28h0IjaAG@iGp?!$5J{zIWg+k0dT=d}KUbnSZsliu0k6W34zK=Ml9m0E0 zh0DK-N_|m_|E>7K&+($@=b}W&PxSW}`hTc@{)O@GqH?%sL&Pxozl-v**Ia$Co(bBM z(lli>3^T~<%tRc^`3sHGK4xwAhYz-Gy1DlPc9eFYm`JV%`vCZ~rc)SpsMMz(shF6_ zl-wrdM{m6I+x@pH(KweM4`<(lth%`5fL7iQeftW-RQ81w3GhfYVs2plga}xle1@Q# z_+~$)Ly9gUuv`)%*1ZP_xhz?GLE7~@TgsE&DEee$ven(&=izkUBW3sc^sveH(=bz7 zP?=xDa9_TqI#A!_1>FY>E_L?P0$Yl&k|SD0aw0eYD-Ji_vr%9 zbYAaXEl&C=>6(w{OM|X|joRVad}`Cc+pAjtZdhxKTb0O|RxZWXrHHce#bza`2K~1F z!#uu4{asBf{eN;O5V~J4!q7ss`Cy@W#uUFoK>XA zf<_b4`GoF;k1+3CN@mp_V)>xCH57gXuLI9*kn2i6GfO8k#Ova&gos1c0T~`icac8# z6#z8?J~POdTl6Ykkvx{p52?+MTu& z+Ek2ORSWu)q`P!B?q}+w1KV1m=el=R)w@o+?%ipeK~8q=rBYj4|KHol+qVD3KG*N( z(csB-;;a_`rN){bWlIlJv1^y~qYi3(I9=Z})BL1gud{I5TGmauyQ%{tI*UV~({*do z%J|yO&NyiGRv(&&Jq!K3jlmI(;;GnsU$6`Jw87~;43nsaF2Xk(n}hN4kr>S*n`7Ru z@UsKyY&oyG_trHE&d;11w)%Bzr|MqwBcwj2RS)Y1eGmstwfRiGY<1RNrC-7!`}KYw zH8JmCzk>#<%&;vwf-CIB25R> z=cA3~ja!1{78I-5x6bL;)SC4GZ5+)4Rf<{S%AC_0=63q>(8eRBY^^o#^szRS(`d{z z`_Seyr!y$vVjr`P?A4$d=C|nn{b7%uk>`6u+}y|;&G8p%9lMuM@|ca(T5d!pN1My+ z_jlA5ovM79*q*w2E9EfwJWgL=(37o87Md6kmsYAif~-_6n+U5u$Ez6Fy|hq%V8y2K zOVp&Pvu;&!sYK)Q60}>D<*u=GLM_N%xHn_wSo=w}6rroQeTY??+QWC;eLlU?FRAsi zkA90(+A#mdsgNJmepYLUF=MXY%PpdobFq1Z-3t0d>~C#gXQ%TmKicazzb$2ts%5r3 zm_DPA>e{gO;n|q3d((?en#MXeojYq`)f^d<{TPjQn`$a8bc0E0W%_?W5v){@hNQM9 zfwd}^Q|nlxP2*JR3T=Ie^ZTUIm}^@18`wahRMaP^tL|fU&;H9RF}w)hxvAvYWDz-# zuHcN1HTqGuBbgL^;<3QGDYd3NFK-z+UT3l~A@STw(U*P4?v?b)#D^Liojfs(86YgX zrAia<)np(nCpR^CEJJu~x>7Y}5eSiV8SEyz4)MT6HPoOglA(CfiA-X4i*paPy9ANA zcN-$m@AVDgu;Y)VigsU98iqhi;VUqxT5Gf6>5MSu445W^gNK9K{0@>TO*86Cx_UxEZd%I^y+b`9(kIU(RtMA{c6VhA5Sk~68 zU8?apO0YQ8GtA?)t;XnHaaIUBysZ-Gvu@|Q@L|2ECc~CtU!_ktAD4_CN+O54?SnIfh9(Eky(%-^J2i(Yp!lqUW0-*Q?o>~X1dg{6y&kLQn45c33Zm>pZ4ZrF zI*1>M_cnI5gj+@}c#KQ=e9aY*L+c^tHY2Oq(|AGnvWRiQeZ3iDU&z{8rN4%c(c0^^ zfBLoeZBbZ%_adficChV+%@h$D>l z6{VyPmE+G_Y-qzh;}9F~S{{26{3lbsQFm~bO2sHS&r#1l``57HYAp3ZPA5!fuDR5B zT%EYNnqyY2MfgJN0|py#4Vq=i4Y0#1h|#>g>go&N95(7+Y`1E=mtdvj>$!8|PcD4e z8j)(dmtalFfYg1jK}e8|>)#JlW2RsCB11y$SVp?{TZzQA3nv?2)LWT{TTLiKS9)tQ za=Rl0piQEyX;h%#Q8FEQGaih z0jsHeKxroH9_K9Fyz066D#~!PYSq0?$z8Tap(5>w+kdRu*h=vN5TpX}hd1h)#yz>5 zkGT|**xHMflKT*yLi9lp#$bMs=74bQ`RpNN|myn z#mRBRmx(4h*`<8NlxF;yM2se}bcV~Y5NiJ>B~9#~yJ3VCi*Y%SscOhXsI~LJJ(HYc z<(A1j$+y3~pM&y=@@w`_w4a*zqgC(S8h6$jUa>|}fOfqz_myk-8||8YN40~#=|%Zn zzUlqo>}piMw=;LgM(SawxH8)AXDyR%%gNr@R3B1ndNOB^)||I9{-%x17onRV6Jxp& z`+MhZ^y8*#3SF!V$}FtsOEIE>@3p5UPTEM&7|9;BI)a&pssxecPuGuLfw~IQdfVA- zGWM}Q^4bXFrt+YV*@VGJy>@Y!hmR(bJyJ_932Uzp@wU}^sB`V@D(^Gh>q3J{&W(X< z?^g_$blqrp$@*yE9CNYa4s&alp0zh>&vF98%SDzt=+<q?^q?By-}_GAMYM3d^bln-O2g|vaBeWl3;YP4SXpvCHs3o{LK!(fb?aT@kLJq0Z1 zXgj7uT;^hr#v1>WA#Q1XW4fxXzhpGZm<-beWxY^wTSu*WkK~X#5kN5aRN-UIjE}&p zh{7t}4d~ia(%WTD=%yGP5bacDgUuX=>m$pvp8I;+_82k%)XdDKHhoHxc}xP)5Z1js zgtcbJVcgp5^g$Zlkad04kQckxIrY26=|nP@|5L9I4Q8eI$X zLp)-cuGi_gh=r2{iwi{8`Zl%<$anHnS1 z(bZn)z7NBZfcflyX;)_|>vNdXp>#I_JM`llp-5out!%8IzV15~oR(BRpuUm8>~b}V z?r^(bn+Izs+?hcpw(7@pex7aH(l^w~DzBz(Rq--!u5o%MA8L*yMtW*jhoF_`?;CAn zw}SK}jZ0UCPqgy7R*dIen^3SPBtLS&E#nm{JI|GQ4{A$p~+tI?`blpy$_tBB5*Y|q`c-Es1-LNl`N7h-n z_F5g>mTbD^hH`8PEb$nT7V|s;OG&IcCafB{H5qxD1;DOpM%rgv);Y9U96s!898Siq zoaOmH7NKHWwd=I*ou398p{%pc6$WU-ix~OI~)i_@&lFN>{rB7U@vhSTccgCdR)1HL| zHOCc;>|%zP$=@F=zsYKK_i5pM_U~w*S88gU(5hI)bN$bKCiYpd7&yChVR72}gP!X% zg%$W~TYzj|wAD^h%kI9n)a>Q27_k2C+utvwkMb=>ZNEDHq&P_c`YWo`UqN(TEKlj^ zTKM=<``(Fq#DzF7l^uod`)n}#uZ6Yqz;c4MMEaEK zWV(^+A-U$gJlKMUeM=Mw*V(qiEWZ$KA8Iaw_gCH8AFd9WRV&Hn=G%}aw~RiZg}w>Q zjR8<71A=@!7P~kY1uZe?&Z3;@CNsj5Kb5+E?pvd-f|e0q83LFo+a8EV7Zt*6d_i4< zOyFmest}1pk#YyR1XRwXc7OR4cc*JHY$L*DE?!HiUir;CN*w!Q8x}UhKttrNe6@s^ zi&pnCO!sNCJ&riaEd6~ihwisNF8?gF7k)V}$}f8o{PJoNzdwoJpT_Uc^y~h&DR*qE zR@t)`B$6h36qDZl|5gs=|9O=A^Z5P1%-qC$U@iyU;dft#mu8n-5w{rIPRl zZ4AD9@fhGujXhFd_v{aSsl->Hls=s4ujZAIj}vE=D42vOd)VDl7pqfgXsghm?)-6T z;KHigRp8E9BbD&{6-^~{$?n;|&(HrTb}H7H2Xr2*W7Ztk51NDM#!}{8jXePM67Jb- zg+6y%OTjhy*>^vxieGlkCFQ}jItv-VbEO=}9>%Nbv|#jC&7kR#I9O;c$- zuhf-&TdhI->)vujVC8<{!=WD)?}{JX1+g*j7i?qa9#DQI&k+E z^~WH9xXns7h<~-Ets+8=c8#-KMuHYWRn8M9ca5L@Kd?;DvTKK=j((Y(G9Mus9|rNI z9Tnf3&`S0{RD)Uk$DN3QjT2_@Tb6Aw5R2ikXsKDJ6pEQ9JT~NIT+uJwZ`gt2K0AMs==wDOueak`Zx2gdy_iW zwV}q?%KG-I*km*HacHmc$EvrR*}HeL#PuFM;U|*R)UDrCJA5Vg^k_*{B>hyFPI{9Ch~fv=5hN(5< z>e`mBX+y7k@xVT(^=I7cTp6B)%Q;hItLy!_+_w!dZ+WKEd3UCrppOAZ$P{-=JG)=P zAKkEtbp-d&`l7=*JnOe-rKSFT<1{u14j1IMQ>WLf;Xm%PcuraGZA z=mOfr4954amB&`*8E4gW3J@wd5-u*_taC^Xez1aE+gf+;A@L(SIDOIza3;p$60`hk zW1DjgIZe%LyhgFUx%uADUiBcGed_6pk8nyjA_8rS&d$ft*^qx`X2x$fK@J3S&j0^X z_clOwmFJ!3=~k=zswG{zuOtwpB{z(01V(LvAtgK5kwC&I5ui^#5_>JMWaL=bG6)-G zVCLT2EvcEpyCg*tyhV1&7M?OyIE7R86rRGn%!E|oDZGVi@D!QyWN{YH%DZ^Vsj_Fu z6sg_+?|II1-}l^eTOXLDX85>$&U@aE=Y77P=Y8LEu+GuCSTW#jQnsVj>q?5w!=C!f zu}!KJ;W8Gnl4Fd$wVD37>1-f(Z;mv{8Q@-3hgoWkE11v zc9!_lDWbq%zwY4d8(U71JxlAJ7k)>HpY!l+kau!R!szmRH)nAr7&s(8A({g&mLjS> zY)~oh>%#xhnYIs}eGBA;49HMrgOt-RY&yMrIFfJ3xl66^z!uzSlx>Y-o>fhO-{vim zfT3*T)x!OPVRSbh$k3WWc^MWr!AyPvF7*f3=X$VuiZDOLmfCr5c|Bn-w08ww|l< z=nd)1c_X!VIukV#pu5kX;i&Hwo^_~LnnAkZazCP0t`dA?5VT&GaquD1c>T$dA!*Lw zHAP}8uIt_P{QVWz*EqDeV4ulbKj#+9vCMF>dD7XO;0q4TAmwBW;j8?J9{MINQsuOc zmf($LJ)}BvszU>Fr};N;$d~x35#5~PP*r&w3e)6IGeFOcyfUP?374N}&i}wv|GoD~sHO>{dhg#RmF`ME8 zapnE@^J~8cT&&uXQImNydZ8usTyIro|K33@u+F)bm^uuRT^hsc6deQ{=+G6=nT@4wMFZ2JO|M5e(rQ(El3 z(CflyE;~2cQ*o3&p_RTAmCxQ+Bg6XN)zb$lm*i#SjlvqTKAZgASOxH`fFF4yIK+xwn2XMvr<7o| z35m!Qwvi-*SyOs);ia8e^k)irN;P&Av1bE@%EMiy*pybRLXZPpWG_JIuUB=eT*b!( zhuVJ<6J*dR&Nooi^M99G_6;6oKY*v&59sc&{zrm+DYcqI{gg`kxsDPhn!f=LX#kDc z7R$=3&iZxSeHQlx+{F^8W`{4A0*%|2e2bBLA1*7%n7^yS>tS!@wPaQ@^?{e^7Vooa z%ohV=37@EeM9t%z8X@$wbTs_cb4xlZgIMbR6BqpzN1>&RPwS#W!? zBr?wV=CCN+pmjw&B?{s0FSEivlUxjz)(0XVIvo=d}F*=RbRgXO+ zR36lMIo}8uIv@Zo$XgI;O9JoDa|3LWOb7bYCT7NgR@iCYLz(9trpvtou`7lV-NxV@ zQ6E1ZuJz?6)4T02pKjQEb3zOkgX1#swp1LuSk$P3x5uVlwR%@RIx$2cFppOXpk`yMkB)q9m>T>=6a`*nMz8eI*Lo!SQU3B>secNCQ#| zq)gd06Y7xVxu|t|xa;%OKBVm3IKGnzmFl<{I?qYa`yj(@x9FK4x6HTUV}X6;$e~8} z$7SLHp!C|?Jv7S?5dB-gI0Lcn?|b3VnO0izYOes1R~SP9f*C42)WRA z>}|u*#c6UM(PU6DkeMYppK_sZ>+IFPJGE(Drvuu*w?);E@y}^qH1H3|Ck!AW=pM{3 z`UBwwLkH~G4>>jWP7xtrw+!6*Nz`6^r3CyleCdI=oY97eoY@Di4(y< z<{ly(6|?fJU%oKyN&{Qx8Af;uwDHON;yu;R`t;Wwx@WiQL4R~P`xBUR%1=ffFkZjF zjul^v@=;vF;v(hvKq6hQ=N6vbtY6(OAk#7%;_B=e==cq(gj?izK%T@K@XA&LG@p3h z7J|A!aMU3Gez}Wes3tbEjP*fl?i0j5N z0#tv7s}9nPOgf<+9If#$STEAutfS<6)yMV11f%QiLJG(h+7ww|W6o7JCCA=B8ZuH@P1dNN_`I06Tb`WwUuPN9fVxPno^-&TN^zX^==r7jd z+2xCrG17IK4Z;GWfK>N;90Ot|^9y0bVmS=w2a|;Q_Wu@0s=ui|0fyvlx9uGZZ3RX( zx#49mj-wG;=W>>m1Jdbo;LbSK1w^Nb?b99KJ%g)IXvkAI*buHau@tl+UcOQk6$i&0 zP%P*fW+MaxFrqcXAmmBp*Q+HTU#%(=H%7wo9XIF+TAp#yrnF>dR@fSP^wRj~1$!&d z>8={`Ot)|52Zic6+aY_i^+|?ot45afE z$Co~Un7(wuzuRE-^{H(os`GRMbD$S@%G^r3*f{)*i>ToE#%!wN zB+pZ0y#F?vd4e{SIBh&t<}Q)yw!gl+uh6FeH~7j95uxi<_}eE5&EeyGXFn>8z7nxf zkz0Fp2+^o>z1k*y%uy1zNq$BE_m)~1d5mj}KtPA5^o=^Wxk7>hymOzK!oFaYsbH(a zzsMIq;~R;`Y|vDnx`FBB+6AxCJN(wqg99^HTX+>Sl*Jt3D@DIaF*wR|%D4(ZDT+qd zEYyR;k-NAkj^$z+YaZgKvg0Kb7-Mh;YbT7P3oCJB(xfOUa*+z)Jurvgxr(Tm8 z4^5kke?RBnTQjB(%)3_#~E+(6A7C}F{3z2wH z2;Z|$bA(OY`i56P4_p)8yQ_(q;mCQEg=m6QSPL#s`cr*c+Q#Q_Pm0E}rL#{)Vrc0` z9TxL{i_Sm3&4dRw&-aeUWT0(|a43cI;9IZZMw(%h)kBDI7|tAp)Ylf0JmeerL(iRE z2oT;l8jj%4g&I~!u~{%p*j}D39Q#FWdaMT@p8G&9oH@Zx%pTcstVJJzO_6NhPW6Vj zouA_BKOF?NDa+sG9%lC%rG2lmQRAhN>h+F@`y7s7iNx~E)JxAX=4k&xzQh`gfjP=2 zFgW!aYTp%NAfsPq13AuMeuw~b)E~rorUv3_!tMV9L!VY4(OF64LmVR+?<&2jvw~w# z2EqBB9Csduiq7#k6UiV{`JOs?)*F*U0)_H$7MQ-Hpvo2Ok0a57SfeUX1H8)QC_bNk zgQ2>H;xq>JvVivG6VP;;I!jZFw06EjqcSFYA&_KT{4DBQ5&W5zY3GM~ujyn{FaA_a z$toZ!77C!AigH}uvO%62+i{oet?0en)%I1O&{B`8Yx`)brA1Nv&C~yS@*98oZ?F6M ze>wiUyMDd7nlDlhjZ6;>H5Thn!IPYxvKSr;pXrJe^#~bA8x9E-%%>J z|9EUwtNpE^){We@+CT9>f2Y#U}7-g0IQiBI`aq$Qj(<*sknJx}^pDUQ?unOA0 zh=P&n!b+#8Rt~*_??GFo6@|^Q^Bu{Vw3{yvEQ6hFYDsb)i;%0eDto zk50uSF6@zA2w-c@7~TE(7=9OHbobLtwf#babssN#v(9NyOq4T?dZf+f&2|B;fICBt)ZtQ|_{DMa#@rVn1 zWEVVY#3L^3kzMfUKs@5Y9@zztHpe3_?9t}N^rF_jHH#aKvFYLQ@yX72N5+OG?;Kq< z`3e0I3ryY#1+U7ZpXTd*_m3M1=ZEb81Q* zwpNS9+sB8Ri>HT&rdF%^@K`ZC+&b1eHaa#uIXB-NofsKBIB7Hfx=j1QY23BZXV z?~sR9M`O|{V~iK-#)_L0V`G5V`*$^sY%xwxTunjLE)f00$|4tE!-1HJs_5 ziTFQ)>ET7qrl!>X@(6H6$E~BSqk>qPr`ebu9$ryQtQe9st`I^*EZsw9Z#uB88m&;R z6+@Ej)aUs0q7{oMT`|0TY{VzCrrB82TrxeprnzR(WcM3FI#&(R+KIbZw4Hm_VHsXr z46Rw*gs|d_Z|l)y`zxabzi7jr?Sr_NAo$6~Ghx4(12*dk%% zTT;o@KTC_@R`*}|f6FF@7OgEN#5VeO$vE6XgNZQ+ku@EKmtD`^uL015Qpr0+0iA%h^F8G4h*bY%_xnO!gSj;(hBQ|} zFfy)ZjbeE6PKptgBa?TkRo&-+IuO=|ZK&7n!5dl08&+~ED>-F-{d_qC zy(!DISGEg_Szd_X0-$wN{i$4*NxDR|ZU3lggq9&wvFX25{vM(8Z^RPbg;ZeoEuoJ| zG+J9*v&DO$OIcxs^kM(=mPUD4f>yTQs>Us7SeB^?Mc9?rt_#%FM;7<$wtv)mNKd<` z&S#ABff{(Zm`2lRzcG$cp!fD05(h-&*()0jtE#f)%c+$6O92wvT|o^v4vn4J5$ zF-EH`|H`DX{kHMZ&p}(~P!DaLLnYcehjJ`+4%M+#VzhH8N0%y==;|EG(dFfiuFfH2 z$+sPm-BSj_;YqY8lG1x zted6sy+S)1JM0tDWokP6hF8~gIZxKgPF6I!6=~*6rZjV-*b?0>?cFUc>G$*p#>|ns zNf35+Et;Cr7;BnS3^mo@N6@4vQ>};2(_LQKeIEH6-w=h=0NjjD4^K_4nHrm3G{j#C zVRXGjMeaGtc@Q@A1n*NOV#P2&L&iiuaZ;))!ED%8-;?d9q2hP}kiu8@E9M-0wKY4b z+aANduoSb|dD`4IyPmz!uEkmMeHF~v5HGBdd`)(aSxG#hI%Pn(r1x~3(tEs*v60F4 zbIrygkwXrIf=KD+1`*yce{iVQ$g6PU_*KnRgLb}3y>WAo7rE4QPfl2QEx zwZCLcMTCB0FF5S6Qo~H%so_j1ZWGSLNqP$MtmcKd<~?!GTgx|7_}$Tebo+`1STt&; zX+C6rcD&Hvam`-4&I)jd3Rh*L_R= zU8{3^3GVmzQL5r*T{Wjbh_t`l+T{{D{*LP}5l2J%SME1-k{4>e(YF=4jt#YrZxZiH zVQGY&n(8Bl5b`Oq+vRPiI8Q$E@oQU09f}UY7=ZhQFw`k>40Q(hPdSG4JPccrW5~-L zL!B~A!IiKG=lE7#l@JIx%Aq`^DE*)FGvAX{9&=+-!OisasJuJ_+geK~s#KJ)Wim^X zz6xs2fH%?^XiT!}K9QN~vTu{88^w!L(_(FNnkqy4^ubx)3r>f8u;F89O#QV8#_E{x>=fusmcJ(3 zWZz_bJuGW&6l#NItfF{jMRDnb9Q_`UW=QcJD~_O8>gVzoF~}Z)L zDs;+Fj5|~rSF@v^wZ*TPBk*yB`Izhqhmc7*9#5jbVf7~&V%j7JU7HJgN~malFcvw4 z9_I|zIENfh9zE1JXQ;1&I0r!Xmmt=;N79?y-bY#tj&v6_~DGXK+l+V0}d z>wf2d+~1Ue7d1*p=XI$!sWJHs?oY~{u+Y|AY7HuiA@lODSBUfs*M3_6*;Qwof_Qnn z(9g`0L9_^tXFsAPci2N&B+A3UFiZLa}}%Qlm>606?+ zM`L*Y@SKv3%{5My{8t&QhEiVA=AFMaJ!zGfD>6`qTTKZK@ccX5@cc#3k`<9h+EXUF>%)KNwXd1NO zwblNE)TH=8VL{mCF;eOfl$chnPWyHr@Rgs70T+K^PvGKWAqrP(+?p3<8MWM`k8>E(rZ zT^Ka4`zM}mWT{N*;`pQbi}lkYjV=&DP%Y_|=2~8A!OqpbDuJ6If6~>MP zmw@z)XZy#B3BfrXsR#kxWO>8yDkVcm*!c?*#dz8(IlPJtNoc4t^fvcR5P>`AAfw<4 z+&1-UH|E2ocA|h-*%~UxxVBgqDSg*W_SEN=UAE{w`tYaXwQ51Edx93_G8!$#3+?ZT z%YI-rn;HwK?hmNIOZOhvd-rI8g~Ye=kKaRxzN`pe_e%pdp$XOB!IWw-u=JgX+q}d+ zT3Gl2Gn$;;WfPNSReETAoawPTH?E`wDWygeAN!6WyOuTu`0r_e@9TmEfX??lYou!n z8Ot=SjHAeMjO0R(8%iaTnO0VDf>(@=-M2_Gv}X6obZ#*}VM|j3`Mt@@7IU-lJMJ6> z&$}9|Fm(P>$+o98gXPPYYjHr1Lu+g?nUYrL85cHPkI3=SDkH@N%y>ZN+UQp~@>b_L zugOA8=eaeD$FzzB0_3+?V%{0;CDQ4~pEpf!Dfi>gTgeMq$qSI6%hIGU8svJ;=<-}I zqpFlUxDLcysVicnekWM&1F3>CoDr9q8!G2Rf%Qw)i4x$c>xdw`mB6t(Am+*g zM?Lp`1$!Pidb#%ikR#VZQxP@o{Mym$-{H&68@q>Jyf_jp|MxVXC1c+I8xx}J@+7u zI+nV6y$TE9z2SK2JO|Sf!arAu+@Gt%lM|rxTo9o1T#hO)cT{x}2WgbjmNcZo8cmX= zh$+-eqM(IJ%mF-QOx)_cTsnZAm(5W)rRuHYZD zTA^R(ZJaQIw0sEx->=bJ!W<@swc074fyHq-dQ$nX>B8p!8Y))-ROdA*eRCVo{#XbP z)U`^qNSEWLO1p1KR+qDg)P1WV6*jIl@}^b;r-z%17EP$4FHU;GahS!<6Ph@2gSNH! zUzp~^2pn~yWTfuV-i1Akb*XVdGkIcJ>4KhEX15b@J7Kpg<94Opu8!N)#^XP?!l@{n zvfJsnoklmGSZ8qIstQa{q9UueKI*NvdRJHlISSNkSiLK3kWKb@qm`S|Ke4f=*tH{w zF|LlT%<`Tv%R8*qkVq3tKa(ehbx&OD%0Y{(+-dtGF@>UKEEIR`-gL-e}?)J*v$18XH<4#Cyoj723 zq)0VQ#X`L~H0!`;CQsg?nY^YAeki&$>Rds`T@eqbKvWZ^D4+eI>Q0_0gW9eZFpWFA zhm5d?t>U9-wi8FJJJSbU_O69y>rRDc>rVA+w(e9N-hR!dI+#%EtGmwiXZJC|f&R1$ z!;;~o)Sq2EWrNk)J=y9$VZz~Ivhr*rdM}leW8OD|g?l+&x#`ZH|FAR|ei(r%Pqv%{><0 zTw!4=FIjkV5|n3SlxHiWJbQ*wp6!kDY-JQHFGq1aK3|#K3vp+(-&*dk7}hG#`1rN5 z(_N#OvZqyN!0y~-5c8MI`=u@S^sME!uZHL-%&M4@!6{els3=(KyCU+lywmUJASQlHI->w=di6D{=dZ-M$*PuiEWvar>I( zC_aJL(cN$EhovUEkDezM?_SaB{KB1=aTY>MO)LMlX0f%pvs@$@A1Q{$ZCjr_mF|8y zD8|eCS%>RR$T}!X-m}jcyqGdyBxczb;TJ~3CIG!bBuc;!p9+t;5gD;CStd{r9)zuJ(;Cmyo~quLcokgtsi zEZxH|w(_uMu|_PfmQIiO)?Z7jYU^QhsXR}xPjc=8p+jiMLV9D$rhG}^R*=ZiKE~v= z`;ySTbG&s-o@sZDdgxv}G;9miy*u@D2YWwwqWs9vl&ybpXK79@vbMuQ280+NzkN&w zqAPdX931%#-%kK}kwN8`B9^Cbm73CZ_p)e~l?(rhl$xYCQ@5Ve>Wr8~NC5+F)0zxYuCAUpMrM@w`|0T ze{K~0PMs%0>6&fjtvw>EL76f9OLMO2=oI*TsvWy3` zN7OtnbGS~9*f`rKBgw3M7qTWsRZC%q=oOx~l&3N^vtJ?8+1;g!C0cE9dW|U;(>m(H zqn*}FcM-wMu{CT0)o$O}Kc1ZZ6H5%CFBWSICES~f)xjF^;UdOdUW~wxUr{c2LRlb9 zHH-fa@I6SM}O$$XQWSu`^SIc=+76GF+rf;(OgVKP zHxb?{Y-qy^*&Suk?8&Sj^02B(wssyj5MWL1nj_Md_XaqVvpaic&i1mE=Agq8VrQHB zVvVCr%-L?Y(b4y`|DyGfaon(NJ+ZDV18-NTDeu1Z5Ui~;1LeKsHQfj*)7~aV0$alX ziMN!&WoDB{G&2X6Z3u=gEz1|GMLzQDh@M@nB>SwIy zvK%E7dLtX^uzZ@;ovlNv)=;dX2PdbNN|42D+M?fmOJL4DGG=q0-Q;uMVTo({Vn6xh z$#o2iTp^x*YuEpj>5V5oE{bNgn3|SY+SuY{$ z+B=k!nt8#5WYE#*zs*%+OR5FxUJFC$ke9VcE6F&HDWBb982yG}RCc&E`zPU`>yjeV*KJB?qj; zBAAm0j2oVh%?NYL#LW_zxn%@GCl48a*i;YuR7-Sv@NTK_lSku;)$2vLcK2ZA*<9Q; zWj#*L+nts-pSG%x#6zQ(hoY8vIO&0?C`lshq{o4t+D19-CC!~hA-bzmFpG6~?r7JQ zjrD{BVo*F8P}tp5emDEP57e4{J{w4PryYprLEq<%lOJCtXKnUzCoaDxN|2`2S=S4$ zI_t{OI_vV$I_pk9nx2=Vb=Kvy~?1Ldj4^}Ai;29|MV2?5n=8QdS<<8i%%6=(HeyBBf zxHbDgOV{(VmyGHdelus;H+wAmW{qXvtiw`c**7aJ`(}-0?RmzsZ<_G8nf&c2D{1N0 z+>yj32U@dl8kcZkL^N=NOWrKG=C3U|L2F&k5-(Rc;pIB^D>C|Wj}u-t8gKSqx~EK;+6clsyyj{C z`5WWTs_%$9Gi&7f=XY9B34W31`sa#uDz4=E=LW3hiuy^R84?tKmira`Ry>weTB=bp zh!+^>djmWnM_ysea5g!AdxgZeH*rWy(;+);Bo325|8cwB9~9r8@ZU(6BSu$CF3lf^ zst2s)p}0LH-=p*oHHd+CIKZgN#qG$QYOloY9un7oNc$v=G;0I)ZDt1*_>M!Pa?Ca%F1lcP5J2) zOP>9S^pY-=QB>>s$8;xisa%%*ZFT;{^og7uc@*Y-&OdG?o>BLbClrQRo|Md*Twrxz zDbx9iXFe00`HbB@8@JEe?Kk80n|AwL+_G3dIsbgzK5w@##O(`q8_C%Dmq?|~ zt&{srDrWYFN^dad^%4O8Eq&wlOLX*@*Gc%!vAOkRM@|=7<%hW|9g(b6T_Q2ruZd+@L%=N8~tHG_MvJXCE+-`LQY`lq7@mroxE>yUf}i zCd`%1C3V9fO9ZsSe?v@}zqPP!ZY8GL61#c^1?J}UA57GJQ~4Y1$+ANq@<66Xq&vPd z<^G5=O|i2Dn!YjF?I?Z5udqM=1}Txr*}u??Va~ZH&YMsG2Gc_`8}PG z(`H4mF7@5n=Rvm&qm>bTclIflx1@0~`=LRUZ%Z|!356{!%9~1>m$1Q>8rq#W4GJUpRv zmtf}4`D3FEoj+%9Z)XYlh0fxk;nqW}Iq11gSo5p2t36=1vDYAhLjw+!Tf^~qp3J>| z(O9EVLTue-4YH}c5%u4=kWRHL-G^)|>jMlrU-giKW!uBOs02&rtpcp}Ta$CA){c$I zX1(2NYX^?w(f@)Fot7(Sr%h@;JG)?ZMX#HVgw>89x93K*wP{LK*&WkHwd*9RpF%@{ zwO^-X!g606mRnIwYOiqN+k?eoYQlR!?Bp7Mr&L20YjR%GBEGaEYPv(_?Yx!rK7df= zZLdPH)$J4}-*3~;R`tWa+sTIuu6Qm{`n)h#yrBzd1J<9GZQ)_J* zfdnppcj&M6wNn=tP8-LTLzQQLbS$K`RbtUQ%Vc@d>|hCCEh~dXD<%=weo5B%_+DGK zAQ@%nf;jFOR~K&_G9j|T`VJbYxyICSb9eEi6vF}9KmQ_@=rtQf>b7dX`;3^vlB z(ys~!zU+n0%C8Ylj#^lIbvQNSLZIYN|w(<9FQh>!k!Hpr>HIMyHayrLX!vzuMdZ^) zJJh_@$7a}h6I)g3Y*^yJqlQEE(X$Su*lVun7J6cE{}@KGktEJKkKI(pAFcRx6Fv26 z<6(oaMQDHTd-%MvXF*{7Zj-U8&HZd9R+&c9v6t!aOE4e@VLmvv#Pw{65OwY7GRtFV zi2EK=D!sL{-r673+X-?isJ)mVBa3yI7qlLlFt*C-Kv{8AUrDu}^MhaVTF2)%jhzS8 z>(uR^jZs^^tq4B6yrEU3M9|6Ok1Q$*g|tIo4dK5~S1jhNeY>!H%}*q!9gG(hhLxwo4Tlej&8O75r5@X78TH|u-+?G|J1 zYE5VlP3X=Nwi6>O@Z-8iZIb;D6{n3f`U{u6Pu#4YtdTg+|H=dD9#vKP(W}d@31`Ii zrwVdC71Mh49v`U1iHU%ucd=5bYrQq9^W(|c{}2yX$HkNa5aCZeWvCCkabjA!T?Rsv z(b0nbhwGS!P5!4^@x+PysrC2M$rJ0BslVDBuW$6@=Z57bTJL0R> zu59L%cr;^*&Tl#zIC{8ROhtvxwgBSli|ueznTJw9Ur#9*+jI|U5=Q5)j0;i^3)pqZ zHrn`@u?>4Jdu-!3y*3rL=}u`o=W5*3l18Vj9grOAQBr9JQ}E;)oRX&!B~MMBcu+4< zsQSZEE!qjT(7cl;+Lgv_pWwB<32I5KH$kprf;%e{)c(Kh5jQcxoz)5MoIEjiKK?ob zh(bZ~jIvK;z&#nndJ>k3$`2(XzNl3^Z4~O~w3lE{FBFrd>MwI>YG12+rL0g;{pIDo zy4t|pV~rIJKmB(M56dT(VdsZR?nHNfES-!PTJBL~dRqYxraN>3QeZziF zA@9l)fheb^6fsoK7cN$eW%NDFF?&b=SfMkx(^5@%g|NYJWm zlkk((rd93H`w8a`VfqmnjctFV7W8T}zvqwcMGp)&Pxwnkdz+12X#-68kXM^gbh!8M zupVk3TSHhA-lal>?p*>i(0x+-gM^o?Kp9VoK1jGwN9PO)y71ZSLi$M8PzD?OQ+TtFz1oR7J2cOJ;w!q#Ycxq=5HOcv)@)!wv$I5$$tS3Hd|ZW$Dr1( zUVZVkjnktWgW|h5K7|-Dw;u_d-J}(dSTFESE%QrKL{qd-S2Og#(4d4)@3|?b1zBt~ z7^3sI+`Bjqq3#5rsT(sgYs|pUnbL~{Md+H7>n|M}Z_!u`x~~+FS0h=BlLyRb&AtW( zvBa}48vfFCX|%Keo>^tq)|o?DEi+oPF9zF|&$Mih);{@yvY@TmzmeZzS(J4XI@1oP zlq=QRmqZ@+fyvpgkzbLYj1XuiK<|S5%EOJA(o2Ch?F)E03SaigJk^`bo7rTz4v62Z zOh(I?*`s_iZ&oMs=H$s&E)lz#_4Tk`W{S40eGL?|8#{3tiPe2e3!9;K#kTgj%aFM5srnNE%~NslOk6x`7s8ic2!r2Tp}xy}Q{bUTmFJQa&1Z4n{0p}Ao3P+; zR^uh9Jli#S$I$qBcp|-9k2&XGLDJ`6wcppYEmNs3yZ)j5zP?6Y;pE(-n&5>Znf_W} z(dr(TVJuyA6^noTxzog|`of7gLEFtW!q0w1KAnZCf3c@ZME6Lkbo2aMmr_%S zW^`No5v!f9OLd?ZUOt40?0dC@>ZkCv{Ya)H{HAo%+mBR~gl^~G*1=G5iKSB+t#m|s zmp(3LP6^PI{#{vzL9VE!J**RD+)525#n79IvTtrly!(}>#xslIMZrLNisg9r*FX7BCx0;h;l{?V-|`>-?4SSX zPuoux>xyEeT@;V$UHzlO`qBOFJzK6UMv7uc|9A6z^C#J~FWm8<@rZ~gi+lUM%f(trEGzxYr4FTQ)jAFcks zul(AderNfUV;^|$YY+X)&wuy4zq{kVfA!yA^Tv)3J+kfku~Yx&ug$%0j;{f+PBPfq!2mK4IdY=(zf9D)|Se9?+M4`~%G!X~YL8{PP{#>^m0eE0_1# zhY(FK?O{iXP_!c?{RH`VJgeFxM(LA-L%!`1Prh5j)w+NHkzgP65P zd~ob8K~eu6=j!;5VSk&;W1Kx|1>k(CgU?7Dt9{e+iZt?BR8Fv*x$@-!-I=RS^-o}r z(D7;g%hy6LPv12>P<}<+Kb*ElkMGvh{EJt7^<(;ge!f_w554f^phUPUi}thIgv(>a zCe=EiPrPl^hgu#G&2CYxFX#hFhxNNppHcb^@xTt<-6MP*)!*y&F}T}RdZlXa)7S29 z&}ZPTQS1AQJ^D1qZxz3)Ps-h(aqrjf7u4sz;#Rf1SM7ecxLVJCRlR(n_<%loex+Lc zmTK)(54WiFUMsy$AMv_Qu=C-N&levPWFHe0AJM-n`G$Kx5vQ3G6P{5mK3T#yLBFJm zGrH!}RSg)1Z+eV>p~qO`e9OZbsR3r;s1fCMixK2+Ij5N5K;Afhj&HS|a zk%Oya4E&7gXZVxF$a}cqQ$r&RK61Cl*N?9FIF5b}7NdNg=Rh&)pO6{>_K^c>wJv?r z*16Qb4VZtPctbILvwGkIVtn_+KXw@3k#Uh*85MRL7QFDHC`>FHqB(L(v(_Ak3Qck| zYDahNqF9!y-dC(%XtZVdD6PFhB&rFPL-3Cjjrc^Mo&~;RPvfWF0Q>v(0ocAe_q}38A`rW zb6bT$(kF>$#EAYqBv+*)g>-L&LCTJ8OdEYOC2Ox&mkWQ&<`O=h1rZmnGVWT5&*L-# zBMpR@FABBN!}$KqB}p|c^j+iC3sq@VTWlBiU9?>gf@bF-lwwd%`iHN6@v)!uMX-3d za;Ii>#J(ZvU!UarKWpP@u-UC@&Busbz|OA@zgMHe!K<-6Ng~0ho0L}ln?5TCef(!4 z>III*A)<@Ls4LMHV^lx)v(j-}{ld>heCpM|eZ8Ug@k?0eaIqS|{G(_5ZV;Zz&wlqm zU`UAG`+8)5g&i7%ud*W2=!B_yg@aasZ%>`y|Ioh!wvJKG^zG`kSebjJ)(3yOTC-i~ z14*r9UxF(y+G@Pu(ulT7pX@D}m@g+S^AB9Pm0Ed|X4wDP>tz(i_p*CxDle3_fPQxu z0uY6s*bl6`Zn+2~qG0$aspFb4`CwIV*38|B0kCi=k4JHM4i}A}|1z+^M{$t{F__;t z3;8!xvqE_DUQzd;^8?M?le*g=<q6_|_{Lo-W1zRp$mq(?19GLVzbEvA zBBB)XnJxGN++ckj(3!aK)(rHy3}buj?uh#3dtXP3rb_}4fsFI3w}IU&cH3zAH+dbNI=fzeEDMUgzeBl?%-2YO%oUWPeF^8v{OLZ273_#~NsoH0y>8o&+c zs{=(7_2K%-+TUd;x>MbOfxC-k6nx%#|6DOa84SWFhMC5=b0{rGu9YSqIZr>$fY5tr zrjMaP*d}1W_>Q_|@wqno*a&$J2^|OY9Dd~+Z`Iy5sPywHbvj&i_6DZKU3Kww^HLDEs0Aw1 zfynuJBB&p#^70$i{5}a9_K=TVf>Hna=24TR^u5v5UUi3nxm(o^%NOLKIF=&kfqbl$ z_2Pqtltk3sYJ!_IiCmfc%`TxD^SMs+ON>dsOC4+hitZ~~NL{sXSyGwz6*57f3S5q3 zjv>pP#d!KUojj(%q&N#L1k#0D* z&f?SE{oP!5Zru;B1u>$CU70xuq%1g=~n4&ASON;Y2XV{q019$dT2JWv@O+*II z;{0ubijPxYr#5gcO6POM>ZpsML{36w_B!EP;jV=a786nXV=6)bZHV z9@CvaT9&tL&=dnSew(Ve@3r;}-9e7fjR%Sb;)9=g{&vI7VS$T!-XhO?yNV6aq%W&D zszNpaD*)(j^}*bft&ER^BN(?Bh>pDb`X4%a@ZJunhqWHsY!Rvt3XIQ5iKm2=+PbkK z=Rn6d>K7z9n)*hqKD;Ox11)}=S`bw^-Yi(BlLwS}!*lld52CD3hOGb5)k?`-ZFwTX z$@iU(qhe^m|1k~od82#XqA2+y4%R<1apC2prdc65Yvsv}_kSfcPy z(SCf3@PgOurhB@$wEXz@rK*E(CEpIS^dUbZCJa5To&~H)A!(tZy%KKr}fM0Qr z`)e~AWsJ+0~2(!XbnGH*ZP?uhG2zIGfg5-mwCQi5ZLN(|iz6ns@a|3-3dq*E_3 zJI4rL{)SgjL&QkwDOj2*cI*|ZeH!SlJg>JAz>-tfeo$DO7d1?_=_yRQ=$A~7Qf;Ge5@a)Z(bghs5*Jv~rp z4?-?2K7B5O+-DR*)a%2b02dzSx3-il;h(ss^4$g}zYKxvE14yl~On7#oYW<__M@4@a)>+%B>1#od$r;$$9R`|Kd+-<>;cVrOFHd;} zU%}%)K5oiz{W<;WNe7V1@fis6Jyk6^D#ihSe1( zH*lh#K^C(>uaKD#`JRci00IQd!qm)yQ0#v79CKZ7jKUq+HON43IEY~6v%1bxFqakR z&}}u0d64VVbnTXu5G@@4^zY&XdXk#ibh7{hFEKf|@_>N+dgj;~4%a>c|#R-HD3P#jcp20@CddBH*QH&b-F0SUe&=!Uy}MxYUS1L`CbpdiMA zWgTsh1}s3B*;SQ(){ z`ljmqGZxQ6I-wOgJZ9&%g}>L?EMU~UH|7u&@MJEm*>5farv6zD>NB71?Rf>nj)`N| zLg7IaFLjwo3J}St=3`uS!b*54XYSek8`w6?*QYhw{hB@|rLMB;#KD-jQbffZkbjff zliYDn?dqYf&}&Lgsd9H5HySi0)Y@FcK7(gaUD82X|llN zUBU!f?{qlZqtTD{*luqRnh>#tdo_KT;WW7s?wJKU1{5yH9@fJAu5R#EQRJVKUaNYm zp#~6!GxaU%KDM_M$s?lp=jB(ErwHxun-d(*t}swHD9_}5F$yK{43M}ZP@hGz3j|~M z@3;a{kGX$Zy@FM#w|fJs?ZR<_;wDoAZn`jSb(nKC>ek0CEsBZ}S+qw&?#gIJcV`4Z4g{X-B-`Jt!hq|5+9G%9OpR%pE;sRk z*t?3~(QF79rp1zYI0=b+R7xvXiq{*m>%^}1k%Ym?i5U6nJ;EKi%{{s%Bq8}SQyi@V zjbyk+M>}|^1aMS;7di5g(~Wv=($^2&9!(k@w2&SM@@De!()B_}gj=B}3G0)a9Zt0S zQjw?fK0qf9ZfN*?wFnyefp8A!7s;q1OZF~ zut?RU{{Eq+-hMKe1KtZCB%ec`#Pz7;QfC|D55{)1vg2r}64)q5Yq>8NGu_F3PN_q$HJV zSj=1KBge%;DdNbjA(Lo8*sPzKy(c&Z9&oP??;__HH<0LM-)-J6W(lr^(-fc&T)USn z4_WKE)lr~kuH5SWY>ES!$9B{I$3%|%tsSZ{@PcA=z3$2o&PX%zxw;TC<2%hRki1Fh zmg@S2$5N@?Zq-b7YVb_RA>c@$Ntqe!<2XbeyM7H`w>b96!TtPKB&Yv*n`RNJ_DiNd z!I>*F-*cX)`a?m7lC1KTbNIqs1-E#z+WGI(HZnP(=#OpeV71QGxr+YfRdf4igDK+< zU+`SrH%MwfAWnv5A+Mu87qC`M(z%olf@!CC&G)yUar)uIi4SfJ4tD3@mQ3#&FaGS=jyM6{lduDUXwp$JHPhWLP? z1K=3Ekjc z*T~gV4q$^NAbbkhr&|Y)J4nI^`N;Z$b9WAKT?qidSV)@ds=>Xwq$Vo^_r~HAGITDs zj!~1X`+)g_={{LlvT;?L7vrA|#4cgTE$%Be06lvaR_@L1s^>CJc9a#V9NyrlEz%Io z1c{y2exF!mA)l4D(m=^P3jCCDp||tp6gD{%#lgXKj{+YX{p0z0r(&`%XMzk1mFv{d z@*#;c#gVP5kX%wkF}V#eq6<}={+U+#(9J3a3^&VHzTC}=?k_DaH>VeM$7&_2_+I@b z@%TABM&B-wXyKgq_c7ePunJ5>;0_b~{m-zYgei=MGsu{Ez!2f-pcw836HRa$5f}^` zSt3L?Sg$G+um@z$9UEo}HC$|~tH2mAb~_}&cM}VyFyox#nh`@so(kOIoZp}l7P7Y0 z=2Z;>ly`g7F#z*^R{yiY?ifkV*+Q5==)oK#I_o2X%r4xzg|HHCPJM&DAbN%kJ>d#6 zpZ^Ayti#B-O*@+<>)X>T-MGJdiX`5$tT@|{3~+dkFq`ijpU z6OPCx?lIP8pT=MhnEe@uBB~h$;hx#0nmp>mQ^Uu4yYR?d;FExiq<&CPC>@E_9JZ32 z4&v#_2Vz_{d|?uZsNMdh2;Wt3zKRC&Q7Z1uA^6}j;R%)Cz2_@$2}`^8X-ITNwFC47 zow1AtEj?TVRL`D+AY8&Q#!1I$VvjMg+zG&b(8m!?4)f`0DN30NAwy0kz^yLfrRfZw zZkS{c2HNU5+nM5{{XnHg0EEbU48i^-$5{>phG|;I&Tf&%x5u8N>|u7c=y~hvuy6-` zQVULu=!`Zl9;kMw7hn@Lfp(svyz8|*3h_O-&^7Aaq^k!6A3hbcgsUAE_UiWYGR7m; z4Xg1OkOncR1uU$3VmxMwt3R$=w~77;U~?+N)}Ye&xX?_z@JK(}|Gs$v4daAyUP$Xt za{Fx)bq@1FPT*l7(}{wh!w~oq?odX65gr@-%GO+#9N=eobZ^gpcz0deY8oOrvxCx{ z$Yu%+!vBHws&f;SYHs^=szo?82tR(}6gEap2U{mts^Mb4ZHP9$1;PW38-zRTMU0vU zSb^od*WklgaLQHkK4}?X$KHh3g<^+FY&sgC2@=bkjV8FOpQ8~wjy5s^W24=2m5=Ci z543q8m9Gb}mXWmFp&JcY1PWt`q|9)hL2Vdex+KN9T_z47@(t%eJg7WqL)#>2GsVsQXbZjQjC8Ij+Hp4B(KT?m zI$s#yyHD5I0Tb+;pl8!%ZMt=HLpNX-GBbVj7R0X0@=Wm?bqMp5E~q5WoFzCH>S}X; zS8i4?K%9LOh$W@E*>Mf;Sw8K?dKgW_6nt z39Aq4jWyTkFBE3higF|O=7k;>_5(twNEv}K=la7mlh?VX)Jn;}6&bJVXU~L$w4XdO zqd}Z}f5R3rSh$sV=4|@K3nzyOsnDf<*w-E0+}L0)F%!V*!U_Bf^}a{7s&5;@^s^lW zBZoqd?exR~zGXME+0|@pe{P%6ahd(B7X(`vivBrDK!3jb23RiNb-=tFCV~ansDh@`^dH$H2Yrt~yVc6k zYo4YCK?!~If2+X5iy#E38ffx3Z0JM6{pknI4cKIEz%_zqYyUKHQ4stH?gDsB z0-Rh|V1p={B5i=2*2}T>C|x!noIGV(RjWuvLR~&y zKq4q#z)9I6WTsPgw`iujHCJfP?D}<9NbT8Z1}7@mV`mq$&a(sDqj%hsbB8(YUg{_B zAnn8qZZk=xubd9Yj1_Po+<3S%R-I|MKdwLeVFkPHhWBG2_4q}do@9g^e^3w(BAmxW zR-b|a&%C&J%oHEqrHV)cY5Mw52zprFRP$Puezf>>;vqEmG2zl(dqm;vz2e&pSLj?` ziH0d9ltatAHthKhX*f3oLAbEfVbPCiK1|(f`GT~wvHKvHoAmY@_jV!-ng4fv7Ly;2Zh~$rsDTAoj)im=c$6Kv-243(aVu zC8|31TvR+_Jp-2h%wee0vJ! zY0L4tjg3XzjLHhwO{q6l`r=yJ#&z@Vr`ItfG%!iB4w5L z7>-`d%-y*ZS7qqZI7sng9WVLsC)krI47|tEaPT#ib)B`5`^iaec()fd+^+*_V z1`lC0`{fmP1O7>pTh(Vtp5V)Es_T$}uYfV?^!Hwc368@+yW~XJ0FSvIb;(XEEjOs# z_2d@)^{rJL-NDU*gWz_TCh!&QkUm@pVDq^;4m`;$ZTj4{Gjb>}=A3}m!|pIHl2YA% z)Sr%aDNHU`NW5#DDo(1ri@x*|o#;h}A?780rZ-pR`YhFbC;Sq$OB(H$G z!Rh(WPluJ$V>?MtU}JFox)jx|x@%_7dcix$nrpc23JyfQ%L!}KGDg)Vq-DbywR6p% z^RUx~#GTU`+v@z})&`mK-r>(gQx7I+h2#Y<@j{E!%T|^DaZ$Z3Qpeq0>Maj}92)#Z zpg>l!Hi<)XsbmI&@$6bnr|!3?N}f#}WcC0k8Fv@DL2guaD*3VoQy^;tsThHC1T)10 zd9<1X5ze*mNboEox`Fy?4N0Y$UfgS8Q8jH4xw!mrrgH=G2DN<> zgt{L7!9meeDy_#Upe#=@})(TEXx-{>9majZ`3m|Z7M88<2&;aazV!eT&t-e+b&fzMjEH;OB ze!v_!;R#+vluexl8}(GY(DTMiWUBwfDx3dim- z8plW|DQX~B)pa!I?*5dY^A%oR)b=;h+>RcFeGse2gvB(fiMU|4NC3Kk!k%@})Z)$F zo~EiU+Vpqo-6UVgeZTZ3BfYx_^LBH4XbKY8s#M&Sn3uW6J~Hl)HqI?!uxTe3gVi z5qSII-)H4}jYr`(&t-dScq8E7eUqBMyT^-qjO;F6S~5I$M&1u2Cx?V3_}KJPJ5Q+&GLbHn+qyB>r5wB(Gty2Nk-mFI(Ve{iNa^ll8poWj3bXrOmx zJ`4n&Nz@FU&x1GVksmbi3Me_a2Qfml@uuru2s8*~l`}@Zym#goHvG+7?yD3TUG9#BP&mYAKFdE;NcW@mDJK@*-%@Oa*#nhEXa=qNlk}>!vTMR%? zg(1QG5C4UI1Hbv(vhwrzX~~&T&}Bb3G}(>NSb3TtQfwW4wx#NF;B_NwzK)D`3Ht*N zpV?t$G+=OQv91jtu!ZxjbL59r@(Wp(>^ zL=Z7yM_70wrSws&SDoX{GuIu?YA7s>jjt~u*tl#SBB9FD=opyXN#rRr&l4=U zVffsWw-iVA+rE`0VS3Ekx8?lJh~(Zjnk#?~Dqu^E#Ny8|%P88Z2wF zkW9cgfdsj$QM+vc`!}H4{SMd_G_dWW4rsl92#bbr|Ajta6YB9!7j<TxO}CYj## zHm2|L3)TWb5y?WxYO5r$X%8Uddj#ySvuVGS2TfZ_2E=D|Y%w43@K&dv{*L^>$TQ@zM4e zeJPJL`St4AeN=uUx73dvJgPjp@q{^C#oEh0VfdhyD-fTBb3eg@9((v=7PyB?;k@7< z{stU8tLGJy8{nKvkM)s#&s)B!B7}U9Itpyg6ua|4Ai~_xzzmIXMYlNGgMIT*f=oIZ z*qthEHFK}ltN8LC&db@H|7`y}ojqt~toA*a0r(1CY6D{xL8fT;shl z8TdVDweW^*lqJ&5oZNgN4|)6p6|YkXlyP*S&KVExsz!J|i>vkQH`PYUw&!OPsaIdE zf2O(S`y-j9OGNM#m`Jh}eC9ZVCXtZ^;vnr{%=gO(aCyq!XRi3~+S_b&GPSfv+kFEHrmElEHLU|7`_0%X^E0j_e@ik#5q6ldOueC4-7CikXCpVo?LXY29@8$}+$9Vt3D?TkJ_1tob!rFS-J;pW#;ntS zH^XTO@1qUf0rCaXnBgTLCr>DaUkMZ8CmtAZ;x!hA!sh^}P%r(@5L5i;v}jW`l$eu9 zI2_CN1Yth$Y=I6B+)0FyVd^u*VE{*C6DdJcBrTU|=FB9}5O74Yt?umNG{Yrsm)*I| zZE=!A>5)HVdM@4Jy5;S#FYs)D7qRWxJCfL~aKa<27FZ`htG##17={U~k&lRGMI@g$pD zzp8-=PGb6A8}OojPGa1!5NrgW4*&yNQa5fM``f#E6M#IPNKqLzlZ^mw>X4l9r-V zFSw{;z=a+mKHWkU*a$NBFKRY~2Qa_S9Y0`~m>N~aY*YMLh3tCq4`IZCjE*ykiJ=|} z;b7K_A2{I+@13cA8a03UPU3>xkf+idmilgil&oqCpjC+C;L)~K(mMI9;(K$Vqduq-l9|`|n6T+t1>^>ICr)%F{~Z%W zjE%AgJ_v}mXEe%r+s_)g*&^YFn?u^_ox6`U?F-J}buOmr++#iNtW4yt@v$zH>)A^!maf;6?(q6MIXGOHhKKx)}Lb)jeIln*wJH zYZ3?^<-*WErXKlNGV19v>aZ*v!^F3DA0>K5Uj~1|Al)$k0me)(QDsZXF-Tgv7JPrh(q|iOCblGt~JAZp$#KQSn ziAM$D5an*jwBA>7jm{p<6g#(=XM|52h7c~r7mE8Z#xMW_S9gB*bFlW%fuE|#fLm}% z^D}i1UVuC@JC0+w&RS{*4?yTm`Q&S|E&YOAJ;fV#Wn9)?pO-x8HKSHcggIHj87{I$JDhbK0lRbzkEB*RA$Mm}^DFJOipL^286FTnue!%AG z3&$vGM8MT42@518z1B}N{Mngjn0PPGqyNLq&$Ip5s+4feBQ*ArU^aa2#Cz2Yclb~~ z2NGqSkN>wmV=$l3I3%T?H{686^I*>p6Q0007 zCj+>n8`FyoNMVKCtpHSy2^2?rCuZ6CI4Gz%YKwCRKt;H?=l}8B_KQ)@d!h4n=s+TMB!D(!lU=VFmZ^2|R;H2*3*Xn|YF%tR0v(e5Bu zmvIOgQ9@3_GtXkjph+;MPOnPIzt9RDX`{*bv=3b4yM?B)+fl2ycrnqhpJE2h{ zF^q0R8W%Es7Wy(yiZo%9T=6E;e~zJ3_!A-13w50H+}7}wQhp0|fH4LOyKibD-^?&B zi2GS^K$>Y5n=9ant+Ei1EILeKbLfP<;*MA*+oRTLK|6Vc?rdbsQJoGCU9Mq#)B0AJl(5i2HF4Q{wYQiAnJ zx;|n2(BLL8aMk||=f&NOD#Lv^JBPAcEps=BXQ-<7Uo%oQ5AFh+m^3k7?23wfwEMb{ z&flsF4%lUhJCycLh3}H@_Mdq?L%*RHy@UfuKMt8JlJ>vF7BgXrXb!9frV<#WHwv-L^$ z9@Ocr(J2h|?sdB}x~*d`Joj^hQ|F8@Dfx86vF=|DgG?Toz*P~?x`yEy+(p=s^x~Ou ze|vR4L?*#}h{Zy~ow?&4QR{~4op;)Umc{(Ezo@zx>q&=mqr!DNggH7yfw^nkk7H!< zbX35k8nn1dn8h{CzAvh(kc#cxUl)E z49=?Cah60~OS&J&*oiJx>O~0dh^|8fbdUmyIYjN3vD*1Qsi17WHh}{JZhYlGk>_-p zB!Y~bbFdDfmIrH3a1^I?s_P^DzAM;^`FLhn{>{I@VemP|9;2{Au1>4?$}LP4Gib@= z?BVo5jn7N7CRt*1H#5oeVwEQ)wEF$JWNZUETmr%Uzbr%rhdS29+>j-YHy4_~MbP&2 zdLAfAW+CHM9TD_*o{K&1_>S9a^NqTL#;)ef7s7i;aKc$=oWXk0W2v)ooZ2r8;sw`Q z?uY?(m40VGpTs$Tk283~)o57jI=t|tYy5r+z^m*bS_tpC45QCc(!u3CBVuL8620S( zQAPrdGIn<*$%ju|f544A2@0kY;?+YSIZVp4KU$%ps?VKdSwNKKt`K*#$k}U`*`$q+bp5Q@NtMXFCSmL&zNA!sdY zOD8?$yaV>aQs=$H0SmPT=j+wZ-}!N`G`p`3x?Y5KWSpO+{4C>Vxqe!E#EsAv{QRbV zj};fyi|~+f6h{6F?f#ITm-KVd79G9xv-P|w945t0V|jl3L$Ws?)c+fc@duPiWO-pj z(ZIJry2eRE_@|3krpLi28;Y!u*ai06P`uAIEr4K~HYoXuw;DU{!s4$>9j0yPZk{)& znV-Vhlq&g-k`49%erB*dt+K&JAj!gh)%VpK;)dbw9TrGrM{!>+Pt`nc;(4VF27Ah+ zf%Olks*u4M3HK>B?JV3hLzDZ*p#JK-Kg5E<4fac)?i?f}-XjpMDORUOeHpOyfR>zk z0WR_-?rvu24)Ej51r>eGN`w z=oa6mkg?+6eo#ofsD?gWJ!d*=p(czL0+p0qMx=z6g?TR%u)I35k<`XuF3fb#!cF`6 z@vIv4b7n@eg-3FxyCRWn;i|zUncyv4IcLO-kf{MW-xawl9zTg18LMAS0G+<#1`#uD zoy=5G8VMP>NB?4=q0Rwutv}_RBCb|YQaT!vMorEAg@sUrhB$}uDzA(xu2|0mDoA+; zjgFpsBXFDHFwMpl2CNy*fUEKcBzpduh|}jB4(rPlQ$#-luaT0J_M1FpIPEU!x!++!D51F;h6eN%DyO&a$B#aztm&b~J&+^X7X)x70_->>P@f^>3&nyovVc8zFv(d`;C_9e0j zlWy?94ippHWufw~NG;oGlHrch6!gNu;x(hmr*`^XQhkWG-(Mx8i~C)$g;#>}Ci?xs zixPSIAC18N`cc$;pE?=k#|rM_8rIhzn0VxL^dI8dCA;izxxSy{CkxDkhoOOkR-8w^6Jz)?qwi~Owx_zcw^ z?kiRf(#B2D4^rG6Zy+^jlw~14W=XGCDZ&P)=DTn9svHgWxngRs*e{Y%{d;akudH$84J;^x$^D#+NEM(C|D2V%d-Q4)gb(3cMOLnwNuphMlf60m6pvhyHexrY4H|YT+ z#%Vn_9PRk!yGnR^7dlJ0dKV_SAijd1_6T1{42t~hc&awVbMNXj_&WE_PJ^#=?=0|j z^XZu4+;O(^-RUmj?Op0H;qG0UaNuwBN>iK{c@FqCQ&Z_(_Poh{3gw$pm+pCaFmY#b z^(Unn$&tFL-8P`ATXEh6<{reA@1)UH#U+FKCPAIHh_0NG=fN3`=^~|}hlYlVvC&nN zpBS3FbJ6JJ%4NE~XSlhl^@ZW)@S@SyYCUY-Kiq6i>hBkZ{n~$3eVuANp#P_JeeI&r zHO-OH$@bSrMqBM~G*rL+t)bS9db~sbAJhMbdD2$hz50K@{{MJ6^Z`A*TK5N*_-L*6 zWAyYWKTq=W+_)Ze-aFiEwO^o4yED{kzgo6FLbuOS?KPm)GlS!Gik}x8Os@TUTs%E$ zCBx-?=Sl1D+v;zwclC%m>s%4HovXRs%+C&f_NwE~PJV9ZXCptG_yLg4wKVH|Z>ZJz zKDXZl5qIeBIqqKK=ReTNi~Kxqbyw-Bz;AV4pzM|2R6DP6{}xYP)lYYdpVj;P_UZK>O}#Bz}xC450f>3(k}YBp|?R&c24;;&F18l);{3}Tk?HJ!DW&UG}F0g$sR8smA*WKBF`b{WQtQik!OFOf6LNvI)Y#IrePya-BJ zi^hi(qgG5DwQ|=EnJH63X3DffCS(Z6Oqup|vgJD2_H|f>SSMQ^8Dkl-(v+aW%+VP4 zF&2^%qfQ%7Q9!XNQ53tva#tXCCc)zD8|LJOsVh^`X=qHd9H1FB#xDqx=>v#3SkRGJ<`M5#7a`quCAObYV&OpQ%y%|inMByBxT-%2)d!QYl3CU zEyzV5QU|`J;0gtp?3$^ZG_0mG7*=WKBug!ti`X#specglEXm~CT!hJMx}|R(Lfj-7FkfK={^lxAw-Sx{uEwOJMbiz_&O$OawMS)6nR&S%Y(e0u5nd)Q zQ^^pva!oC�#^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/appplatform/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 new file mode 100644 index 000000000000..bb0bc9e63f5d --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 @@ -0,0 +1,219 @@ +if ($PSEdition -eq 'Desktop') { + try { + [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() + } catch {} +} +# SIG # Begin signature block +# MIInugYJKoZIhvcNAQcCoIInqzCCJ6cCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBn8ROze2QLH/c6 +# GtPhR/BPLgOtmjkNhcq+fFmu16VcrqCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# 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/BvW1taslScxMNelDNMYIZjzCCGYsCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgLwxfLTEa +# f5cZ43nGFJSGxV1AZMu24c5Ln5TdSBDWTncwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCH+MB7uS3RlpbV8q8Nvg9aa0UmWWYCFOT/3n7V09Q6 +# p3v/uFdZ8AXCe8zdAeWFwLOQg9974QcDbIbvXm1V96+Z7zEEimU/Zr1ou5Cv0knI +# riaKdejplgnDt1EnBE9JlSyVsV7aOYr4EueMCb1Xn1dfGabKcgVlJUlP0JyZPQfs +# YqsyxEznkgNE769m8ozUwCx33jJN1Llcs3FYEe5irzu8UthSkFQ8vpG3YABhlk6M +# 4jPeb38LKbkEE0jclq6sfdmT+JL8j7Z05KfgaD076LnpSaqkcu9+2RH3TARosqhq +# I/N3nhDQclKIl1kYSXFG1E4/6ea3rAa98adIaR0YNcpFoYIXGTCCFxUGCisGAQQB +# gjcDAwExghcFMIIXAQYJKoZIhvcNAQcCoIIW8jCCFu4CAQMxDzANBglghkgBZQME +# AgEFADCCAVkGCyqGSIb3DQEJEAEEoIIBSASCAUQwggFAAgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIDsI/xX4lqk74CTV97lUQ0iyAOiIu4ggTwVzbGvl +# +HKeAgZiMTFcH0UYEzIwMjIwMzMxMTAwMDA5LjQ1OVowBIACAfSggdikgdUwgdIx +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1p +# Y3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhh +# bGVzIFRTUyBFU046QTI0MC00QjgyLTEzMEUxJTAjBgNVBAMTHE1pY3Jvc29mdCBU +# aW1lLVN0YW1wIFNlcnZpY2WgghFoMIIHFDCCBPygAwIBAgITMwAAAY16VS54dJkq +# twABAAABjTANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg +# MjAxMDAeFw0yMTEwMjgxOTI3NDVaFw0yMzAxMjYxOTI3NDVaMIHSMQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg +# SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg +# RVNOOkEyNDAtNEI4Mi0xMzBFMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +# cCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2jRILZg+ +# O6U7dLcuwBPMB+0tJUz0wHLqJ5f7KJXQsTzWToADUMYV4xVZnp9mPTWojUJ/l3O4 +# XqegLDNduFAObcitrLyY5HDsxAfUG1/2YilcSkSP6CcMqWfsSwULGX5zlsVKHJ7t +# vwg26y6eLklUdFMpiq294T4uJQdXd5O7mFy0vVkaGPGxNWLbZxKNzqKtFnWQ7jMt +# Z05XvafkIWZrNTFv8GGpAlHtRsZ1A8KDo6IDSGVNZZXbQs+fOwMOGp/Bzod8f1YI +# 8Gb2oN/mx2ccvdGr9la55QZeVsM7LfTaEPQxbgAcLgWDlIPcmTzcBksEzLOQsSpB +# zsqPaWI9ykVw5ofmrkFKMbpQT5EMki2suJoVM5xGgdZWnt/tz00xubPSKFi4B4IM +# FUB9mcANUq9cHaLsHbDJ+AUsVO0qnVjwzXPYJeR7C/B8X0Ul6UkIdplZmncQZSBK +# 3yZQy+oGsuJKXFAq3BlxT6kDuhYYvO7itLrPeY0knut1rKkxom+ui6vCdthCfnAi +# yknyRC2lknqzz8x1mDkQ5Q6Ox9p6/lduFupSJMtgsCPN9fIvrfppMDFIvRoULsHO +# dLJjrRli8co5M+vZmf20oTxYuXzM0tbRurEJycB5ZMbwznsFHymOkgyx8OeFnXV3 +# car45uejI1B1iqUDbeSNxnvczuOhcpzwackCAwEAAaOCATYwggEyMB0GA1UdDgQW +# BBR4zJFuh59GwpTuSju4STcflihmkzAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJl +# pxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAx +# MCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3Rh +# bXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG +# CCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4ICAQA1r3Oz0lEq3VvpdFlh3YBxc4hn +# YkALyYPDa9FO4XgqwkBm8Lsb+lK3tbGGgpi6QJbK3iM3BK0ObBcwRaJVCxGLGtr6 +# Jz9hRumRyF8o4n2y3YiKv4olBxNjFShSGc9E29JmVjBmLgmfjRqPc/2rD25q4ow4 +# uA3rc9ekiaufgGhcSAdek/l+kASbzohOt/5z2+IlgT4e3auSUzt2GAKfKZB02ZDG +# WKKeCY3pELj1tuh6yfrOJPPInO4ZZLW3vgKavtL8e6FJZyJoDFMewJ59oEL+AK3e +# 2M2I4IFE9n6LVS8bS9UbMUMvrAlXN5ZM2I8GdHB9TbfI17Wm/9Uf4qu588PJN7vC +# Jj9s+KxZqXc5sGScLgqiPqIbbNTE+/AEZ/eTixc9YLgTyMqakZI59wGqjrONQSY7 +# u0VEDkEE6ikz+FSFRKKzpySb0WTgMvWxsLvbnN8ACmISPnBHYZoGssPAL7foGGKF +# LdABTQC2PX19WjrfyrshHdiqSlCspqIGBTxRaHtyPMro3B/26gPfCl3MC3rC3NGq +# 4xGnIHDZGSizUmGg8TkQAloVdU5dJ1v910gjxaxaUraGhP8IttE0RWnU5XRp/sGa +# NmDcMwbyHuSpaFsn3Q21OzitP4BnN5tprHangAC7joe4zmLnmRnAiUc9sRqQ2bms +# MAvUpsO8nlOFmiM1LzCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUw +# DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv +# cml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +# ggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg +# 4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aO +# RmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41 +# JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5 +# LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL +# 64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9 +# QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj +# 0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqE +# UUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0 +# kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435 +# UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB +# 3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTE +# mr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwG +# A1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNV +# HSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV +# HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo +# 0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29m +# dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j +# cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDAN +# BgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4 +# sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th54 +# 2DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRX +# ud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBew +# VIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0 +# DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+Cljd +# QDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFr +# DZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFh +# bHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7n +# tdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+ +# oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6Fw +# ZvKhggLXMIICQAIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI +# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv +# ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046QTI0MC00Qjgy +# LTEzMEUxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB +# ATAHBgUrDgMCGgMVAIBzlZM9TRND4PgtpLWQZkSPYVcJoIGDMIGApH4wfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDl73XWMCIY +# DzIwMjIwMzMxMDgzNTM0WhgPMjAyMjA0MDEwODM1MzRaMHcwPQYKKwYBBAGEWQoE +# ATEvMC0wCgIFAOXvddYCAQAwCgIBAAICF6kCAf8wBwIBAAICER8wCgIFAOXwx1YC +# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK +# MAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQAY60kde7HWABLbM75dgVqLPwu2 +# UX3qQDaoStTqkS7953pYHKc6GEqRd/nLCCeYBqC+XJRMTMNbd4ZDkkCzsxlr5HFi +# GE6eT7+KvwqQf+djK59ZAts0no9RPZcdCJwQfvqU3RK91gp/Sg2bCMvAfTN4LRGp +# qQ4tYYP2GrJJNqVbkDGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwAhMzAAABjXpVLnh0mSq3AAEAAAGNMA0GCWCGSAFlAwQCAQUAoIIB +# SjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIOQz +# W64DlGXuO2zRgqB/n+gyoReL9ldfVdiKRVTSCDK+MIH6BgsqhkiG9w0BCRACLzGB +# 6jCB5zCB5DCBvQQgnpYRM/odXkDAnzf2udL569W8cfGTgwVuenQ8ttIYzX8wgZgw +# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAY16VS54dJkq +# twABAAABjTAiBCCgvCueU3dRfCsOKSpG5oksOx2/8SHFEjSLBygedl9oUzANBgkq +# hkiG9w0BAQsFAASCAgASDKu2OAv74hH075B2jN90FtXMtuST3zF61GC5OXm38b4j +# NSjLjbMslJJqeXiyODEQFNxmdE9AgPguQK13CeNnqsx2krlMfIC4o+M2pN7lqWCk +# gWfp5QemsmucuotA2dXLF98jGlQ1JShvFVOvUyxs0QKejf323B/mYdoUzvKurP1M +# k+FUjq/w3mgN9oj5oHoCIkdg1gDWNh80zEa0/YxEE7YYzg8bPLsGpK+f7B75Q51Y +# Sz7Gp/LGpQiG/LjytNQmsHwy/bl3FCr5/2WxBkAs8BneisPIfNLW0gfEo5Azkjo9 +# KEm5l8ILkJ3/4Qx9HiGjqwrdto8kGWAlGoIELtsO0BGT4onF4ynlKQgw82JK+4RD +# tWXCnPqjojkl+/4tfbeEdUoPvNgYpvS6ZRRYJIWg5s7XViroohZCCSkqt8aMjTZF +# HJBsKzmdHvVvAGELQ7TKaN3mOMUXb/o4vIK0TYrYN6FUn5iVnA7X2LIbJj0j3Mef +# BwEeOFhSjxz2Ob1oihNBoR1v5y+XfkbT7igIVQqwM27ujcOooOsDkpgizs0FajJV +# jeRsqEsXgfpaKCAq5czpOTutrvvwEn/cINrR3JW1TRSGt3VUvSWkmBs1T+7Oj6H6 +# ewWQaQIDYdEiDUL8OJhl+GzebujxPo//NXTY0MZCxK3DXhXi5okwsImzh5010w== +# SIG # End signature block diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Core.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..67edb79248ca7d547b1b6ee3dbf01f67d38c3e83 GIT binary patch literal 259448 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

o`gMNH$B-bCl}^l71yC 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

@tK}M9Zj8xmPQ5 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

EZg0v)ybrrtRzu8LSK3b4FbUlSzWg9kjyfW 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Bcl.AsyncInterfaces.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 0000000000000000000000000000000000000000..869ac1b86c577fd83a55702457866657c614b4d2 GIT binary patch literal 20856 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll new file mode 100644 index 0000000000000000000000000000000000000000..d22ddefa23393f1129d2cab8d69442993e90efe7 GIT binary patch literal 61944 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𝔟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

dvv=7}_Yb%=L|| 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%0Du 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 z IbU+d`%a@vhU^Rxm~69JzL8 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 Dt>fXGq{9%V!-+Pc`^op5bI)C# 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%0DS9e9WIv68 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%0D$u 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 z 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

citr-0+{`aUdMeRZE6n$Qr>ff=X;L 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 z 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 B6}SKZ literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Buffers.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Buffers.dll new file mode 100644 index 0000000000000000000000000000000000000000..c517a3b62cc7e190fb347c00a960311a9349b53c GIT binary patch literal 28304 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 0000000000000000000000000000000000000000..a2b54fb042deaf5d73a734ff42aa9f50f3ba264d GIT binary patch literal 49528 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

`MI5DJv^CQ{_66yrIsg~4G{z1xx>I3rKPzUNb`u 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%0DeKP$N!$4cumO_bK>z+Mr;MhaSC^kyRDP5# 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.dll new file mode 100644 index 0000000000000000000000000000000000000000..bdfc501e9647719549793297acb072d33067d4e5 GIT binary patch literal 148760 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 IXGb{$00BiQzyJUM literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll new file mode 100644 index 0000000000000000000000000000000000000000..8bd471e74c6e0f2b46464f143a2ce56dbf8cf389 GIT binary patch literal 117656 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 Z?bUi7`L|w}{ZgH7iR;QV{^~vc{{SmAX$1fP literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Numerics.Vectors.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Numerics.Vectors.dll new file mode 100644 index 0000000000000000000000000000000000000000..08659724d4f8534ee97a543e93dd6d3c702fcd15 GIT binary patch literal 115856 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

A56h=o3u)Ar^3va&BemI`C*}HC8>xqw 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 P)6yq*$X=&d&4~X8FD<25 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Private.ServiceModel.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Private.ServiceModel.dll new file mode 100644 index 0000000000000000000000000000000000000000..3f9f84edf0ed65a6b72301566574b7669c510884 GIT binary patch literal 2318920 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

rE)C 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%0D#E?oIaAwZGAXgPHTQ38VhErRGn?t#?cn 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

* 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

Cw~r0#teMF8#C@M`5Q@M_wLJn<83mP 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

O~)rCd%<&Ls?v3zlh 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

ClTp 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

2TDUu2lhKU1(lnePkD!(|B6AErDLQ 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

y>dc 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 MN*=zV)m+#A1NFk3r2qf` literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Reflection.DispatchProxy.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Reflection.DispatchProxy.dll new file mode 100644 index 0000000000000000000000000000000000000000..64a57cbbecce2116fdc8717223283deaab66d387 GIT binary patch literal 24992 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 Nyi+G&|8dM{{y*zALhJwl literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000000000000000000000000000000000000..0c27a0e21c7ea37e109b34ae8fdb80d298890785 GIT binary patch literal 16760 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 z zJ{!$4*N^^~H;dooLd4x!px1|Iqu00bmQzt=v-zbjlB(=ryb!D~mn=9OHCd5wB z{JQ#g^<7$%eP&NdZ|WW!y|M51i0$K^zZv?AaF^eu=wCi-MLzn?to*>N;Zb8QZN4;q z2hBE(eQKBXvGJ2vJ5L;O<@&vmhxbqKnRbo)_Dl(1`^E^nuqfr;6?AUwm*nV@xDCXY zoqVNp2HVDUA+in@v<(>VoIQERu6Xq(rETe|58{^VoMJ`3L-wpZ_T=E3=lU+ZVZCC= zo-aKkt0oPzB#3~Lq%qIO+wE09(sbmSSC6kt9c+7?yz6?Tv}E4qcebnjJ*?JcZESk& z6wu^a{-vR-`j;h9y|-d+%FOV+>WP!DpT1gZc_ZYH(u$`{rUoHhQx9YF(zWSnex`$tPzu9Bn zr;YgaY=Pe7b=AvS2ANy-^j~bOaiDIQy6%>Wjc-=BeTvU{TxxMKxOq$F{i&f2QwWJl zF1UdtsS8kNYtOkvxh>i^#zGWM{~y^}Vf!YRB+bC8bL$Tiz|Wa{z`iq5Gm;^s$neS% zr$Zc4oYUz9ScD7VYEL-15pJXtaHdceL8AY5CndqZcLzA>4sdV>u;wQp2+F?dtuHY`w9;rYcu$>+cIko=P-QdXhT6**>hV zzTM+Zs-fq1`0k0new0be+LYdQn%6d9RC%}8{`(tUQ#SKcoF=R*OV+Wy>^blKgS#qP zS4ZWn4X}Ewb+F7J``~={mX8l?Vs%Y}qbyhF3LEtY>rE8zXZo{0Sa;6 zA@w=ibj&@=fE5YT@ArwnY!)~;?C7p&kKVM_i@9-jS1lf7#_Npm&))GK-K*J*OA>A! z>bm1V&nuCEkKM|3o>&Cb81D6*(=F9IJ2SXCNWuB*&TD`=XLG$CQTUD5B+%SY8_TUx$+!8>9( zyZ>xYmyo)9Q+-R0ss+_wS?gmbUht0pegY$=zd?NBf~A8)9Exsko8JBI%HgjUZmaPx z<1W6`cy0Qx8gh5|0^H#fLRVQ$cFOCD(cvJ56#U;0ol%dD3SDrzrinU4II`fL<%7Hk z4RX8Jp_9!N6FMDxzY;+M7w{)HC$t@av*!5h>!LLL-qXtCtcw;Ujzlb3!;}u5hzKbQ zE(W*~YDS~8? zU8XRD#}?)!XNs8VVjkhy(Ev_3n%Fap6@nHCR3L~;g^6+?@J0rw$WR!00hWfXm<;1@ zHdM;{roAd&ySOnT$B23Px;V{znZ`oBd sycgzO%F&!t$4OxJAN>A^@FH)@mxCV7 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≤=~>Kxe(a#Ni{0FDZd{=!XHnFyf5Dj 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,^-&C?v=vTA8Wp^8~l9E%Jl#b~H2MdHC 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Encodings.Web.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Encodings.Web.dll new file mode 100644 index 0000000000000000000000000000000000000000..6d2b207854ac679d3a1c64c2b81fd662a6f6f2ba GIT binary patch literal 59768 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 JeFG#B{|72p%MSnm literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Json.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..a3a85c2b72554f064e2e161171aac46ab66a666f GIT binary patch literal 293248 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 C6Tf8u literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Threading.Tasks.Extensions.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000000000000000000000000000000000000..dfab23478ab4d6bc266ed91ed6b96bcebb3cf8b7 GIT binary patch literal 25984 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Xml.ReaderWriter.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000000000000000000000000000000000000..022e63a21a86003cb34d9e4082ad1816c5eedbc0 GIT binary patch literal 606592 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

Ar7)s*Rwm=cG4?*cvUjpP9AnetOn;gMJYDH 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

{)UZ8%zSENXt}>>AelVY(_Gi@Q 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�(HI14PXGtdBp~+0vbSpLX;7%SFoNB8761Lb*sGNTd)fQV0<# zgoqR>MEnX7ze2>X5b>)-c$EmR65&-M{7ErlTWr(E*K299%^29Sr9afe*;e5q&2W*X zQ{)oW`>BFEn;Sim^mV*j|J;zo=|gznoBB< zfq7!zH9{>AYJpG#EZA}aEZ9N#7VJYIyum@O1*+a{2&oO zNW?D^=@*OiOGWynBK>l)SGg!*xmC=lMQY`cPUnY$MLNMEonVnp2<3&jga|c6s3AhF z5V=%|T&hJb;Ua#u$m_Dm>$1qJDfF*WuW*qpa3e_o8r%-#tUf%4Q z6-Uu)RvcrmS+SR0v*PG_&5GmgH7ky{*Q_`W53zOX+}+yN_SU0;jaFG^rH$!Q8-81) zb=6??VkdkNAd&5b?Nn9*ei|$5S{qgd4#RdXy9EAmb`|^z_8a(>V!Mi2yJ_%CRs~

+ /// Monitors the task (which should be ProcessRecordAsync) to control + /// the lifetime of the job itself + /// + /// + public void Monitor(Task task) + { + SetJobState(JobState.Running); + task.ContinueWith(antecedent => + { + if (antecedent.IsCanceled) + { + // if the task was canceled, we're just going to call it completed. + SetJobState(JobState.Completed); + } + else if (antecedent.IsFaulted) + { + foreach (var innerException in antecedent.Exception.Flatten().InnerExceptions) + { + WriteError(new System.Management.Automation.ErrorRecord(innerException, string.Empty, System.Management.Automation.ErrorCategory.NotSpecified, null)); + } + + // a fault indicates an actual failure + SetJobState(JobState.Failed); + } + else + { + // otherwiser it's a completed state. + SetJobState(JobState.Completed); + } + }, CancellationToken); + } + + private void CheckForCancellation() + { + if (IsJobDone) + { + throw new LongRunningJobCancelledException("Long running job is canceled or stopping, continuation of the cmdlet is not permitted."); + } + } + + public void WriteInformation(InformationRecord informationRecord) + { + CheckForCancellation(); + + this.Information.Add(informationRecord); + } + + public bool ShouldContinue(string query, string caption, bool hasSecurityImpact, ref bool yesToAll, ref bool noToAll) + { + CheckForInteractive(); + return false; + } + + public void WriteDebug(string text) + { + _statusMessage = text; + CheckForCancellation(); + + if (Debug.IsOpen && Debug.Count < MaxRecords) + { + Debug.Add(new DebugRecord(text)); + } + } + + public void WriteError(ErrorRecord errorRecord) + { + if (Error.IsOpen) + { + Error.Add(errorRecord); + } + } + + public void WriteObject(object sendToPipeline) + { + CheckForCancellation(); + + if (Output.IsOpen) + { + Output.Add(new PSObject(sendToPipeline)); + } + } + + public void WriteObject(object sendToPipeline, bool enumerateCollection) + { + CheckForCancellation(); + + if (enumerateCollection && sendToPipeline is System.Collections.IEnumerable enumerable) + { + foreach (var item in enumerable) + { + WriteObject(item); + } + } + else + { + WriteObject(sendToPipeline); + } + } + + public void WriteProgress(ProgressRecord progressRecord) + { + CheckForCancellation(); + + if (Progress.IsOpen && Progress.Count < MaxRecords) + { + Progress.Add(progressRecord); + } + } + + public void WriteProgress(long sourceId, ProgressRecord progressRecord) + { + CheckForCancellation(); + + if (Progress.IsOpen && Progress.Count < MaxRecords) + { + Progress.Add(progressRecord); + } + } + + public void WriteVerbose(string text) + { + CheckForCancellation(); + + if (Verbose.IsOpen && Verbose.Count < MaxRecords) + { + Verbose.Add(new VerboseRecord(text)); + } + } + + public void WriteWarning(string text) + { + CheckForCancellation(); + + if (Warning.IsOpen && Warning.Count < MaxRecords) + { + Warning.Add(new WarningRecord(text)); + } + } + + public void WriteCommandDetail(string text) + { + WriteVerbose(text); + } + + public bool ShouldProcess(string target) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string target, string action) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string verboseDescription, string verboseWarning, string caption) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string verboseDescription, string verboseWarning, string caption, out ShouldProcessReason shouldProcessReason) + { + CheckForInteractive(); + shouldProcessReason = ShouldProcessReason.None; + return false; + } + + public bool ShouldContinue(string query, string caption) + { + CheckForInteractive(); + return false; + } + + public bool ShouldContinue(string query, string caption, ref bool yesToAll, ref bool noToAll) + { + CheckForInteractive(); + return false; + } + + public bool TransactionAvailable() + { + // interactivity required? + return false; + } + + public void ThrowTerminatingError(ErrorRecord errorRecord) + { + if (Error.IsOpen) + { + Error.Add(errorRecord); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/AsyncOperationResponse.cs b/swaggerci/appplatform/generated/runtime/AsyncOperationResponse.cs new file mode 100644 index 000000000000..3a104f79f74a --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/AsyncOperationResponse.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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + [System.ComponentModel.TypeConverter(typeof(AsyncOperationResponseTypeConverter))] + public class AsyncOperationResponse + { + private string _target; + public string Target { get => _target; set => _target = value; } + public AsyncOperationResponse() + { + } + internal AsyncOperationResponse(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json) + { + // pull target + { Target = If(json?.PropertyT("target"), out var _v) ? (string)_v : (string)Target; } + } + public string ToJsonString() + { + return $"{{ \"target\" : \"{this.Target}\" }}"; + } + + public static AsyncOperationResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new AsyncOperationResponse(json) : null; + } + + + /// + /// 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 AsyncOperationResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(jsonText)); + + } + + public partial class AsyncOperationResponseTypeConverter : 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 a type + /// 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(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.AppPlatform.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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 into an instance of + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static object ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(AsyncOperationResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AsyncOperationResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString()); ; + } + catch + { + // Unable to use JSON pattern + } + + if (typeof(System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return new AsyncOperationResponse { Target = (sourceValue as System.Management.Automation.PSObject).GetValueForProperty("target", "", global::System.Convert.ToString) }; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return new AsyncOperationResponse { Target = (sourceValue as global::System.Collections.IDictionary).GetValueForProperty("target", "", global::System.Convert.ToString) }; + } + 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/appplatform/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs new file mode 100644 index 000000000000..37a6c1008efc --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "CmdletSurface")] + [DoNotExport] + public class ExportCmdletSurface : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string CmdletFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public bool IncludeGeneralParameters { get; set; } + + [Parameter] + public bool UseExpandedFormat { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = GetScriptCmdlets(this, CmdletFolder) + .SelectMany(fi => fi.ToVariants()) + .Where(v => !v.IsDoNotExport) + .ToArray(); + var allProfiles = variants.SelectMany(v => v.Profiles).Distinct().ToArray(); + var profileGroups = allProfiles.Any() + ? variants + .SelectMany(v => (v.Profiles.Any() ? v.Profiles : allProfiles).Select(p => (profile: p, variant: v))) + .GroupBy(pv => pv.profile) + .Select(pvg => new ProfileGroup(pvg.Select(pv => pv.variant).ToArray(), pvg.Key)) + : new[] { new ProfileGroup(variants) }; + foreach (var profileGroup in profileGroups) + { + var variantGroups = profileGroup.Variants + .GroupBy(v => new { v.CmdletName }) + .Select(vg => new VariantGroup(ModuleName, vg.Key.CmdletName, vg.Select(v => v).ToArray(), String.Empty, profileGroup.ProfileName)); + var sb = UseExpandedFormat ? ExpandedFormat(variantGroups) : CondensedFormat(variantGroups); + Directory.CreateDirectory(OutputFolder); + File.WriteAllText(Path.Combine(OutputFolder, $"CmdletSurface-{profileGroup.ProfileName}.md"), sb.ToString()); + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private StringBuilder ExpandedFormat(IEnumerable variantGroups) + { + var sb = new StringBuilder(); + foreach (var variantGroup in variantGroups.OrderBy(vg => vg.CmdletName)) + { + sb.Append($"### {variantGroup.CmdletName}{Environment.NewLine}"); + var parameterGroups = variantGroup.ParameterGroups + .Where(pg => !pg.DontShow && (IncludeGeneralParameters || (pg.OrderCategory != ParameterCategory.Azure && pg.OrderCategory != ParameterCategory.Runtime))); + foreach (var parameterGroup in parameterGroups) + { + sb.Append($" - {parameterGroup.ParameterName} `{parameterGroup.ParameterType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + private StringBuilder CondensedFormat(IEnumerable variantGroups) + { + var sb = new StringBuilder(); + var condensedGroups = variantGroups + .GroupBy(vg => vg.CmdletNoun) + .Select(vgg => ( + CmdletNoun: vgg.Key, + CmdletVerbs: vgg.Select(vg => vg.CmdletVerb).OrderBy(cv => cv).ToArray(), + ParameterGroups: vgg.SelectMany(vg => vg.ParameterGroups).DistinctBy(p => p.ParameterName).ToArray(), + OutputTypes: vgg.SelectMany(vg => vg.OutputTypes).Select(ot => ot.Type).DistinctBy(t => t.Name).Select(t => t.ToSyntaxTypeName()).ToArray())) + .OrderBy(vg => vg.CmdletNoun); + foreach (var condensedGroup in condensedGroups) + { + sb.Append($"### {condensedGroup.CmdletNoun} [{String.Join(", ", condensedGroup.CmdletVerbs)}] `{String.Join(", ", condensedGroup.OutputTypes)}`{Environment.NewLine}"); + var parameterGroups = condensedGroup.ParameterGroups + .Where(pg => !pg.DontShow && (IncludeGeneralParameters || (pg.OrderCategory != ParameterCategory.Azure && pg.OrderCategory != ParameterCategory.Runtime))); + foreach (var parameterGroup in parameterGroups) + { + sb.Append($" - {parameterGroup.ParameterName} `{parameterGroup.ParameterType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs new file mode 100644 index 000000000000..aa8bb985e6cd --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs @@ -0,0 +1,74 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ExampleStub")] + [DoNotExport] + public class ExportExampleStub : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + var exportDirectories = Directory.GetDirectories(ExportsFolder); + if (!exportDirectories.Any()) + { + exportDirectories = new[] { ExportsFolder }; + } + + var exampleText = String.Join(String.Empty, DefaultExampleHelpInfos.Select(ehi => ehi.ToHelpExampleOutput())); + foreach (var exportDirectory in exportDirectories) + { + var outputFolder = OutputFolder; + if (exportDirectory != ExportsFolder) + { + outputFolder = Path.Combine(OutputFolder, Path.GetFileName(exportDirectory)); + Directory.CreateDirectory(outputFolder); + } + + var cmdletFilePaths = GetScriptCmdlets(exportDirectory).Select(fi => Path.Combine(outputFolder, $"{fi.Name}.md")).ToArray(); + var currentExamplesFilePaths = Directory.GetFiles(outputFolder).ToArray(); + // Remove examples of non-existing cmdlets + var removedCmdletFilePaths = currentExamplesFilePaths.Except(cmdletFilePaths); + foreach (var removedCmdletFilePath in removedCmdletFilePaths) + { + File.Delete(removedCmdletFilePath); + } + + // Only create example stubs if they don't exist + foreach (var cmdletFilePath in cmdletFilePaths.Except(currentExamplesFilePaths)) + { + File.WriteAllText(cmdletFilePath, exampleText); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs new file mode 100644 index 000000000000..8bb57aa50975 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "FormatPs1xml")] + [DoNotExport] + public class ExportFormatPs1xml : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string FilePath { get; set; } + + private const string ModelNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models"; + private const string SupportNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support"; + private const string PropertiesExcludedForTableview = @""; + + private static readonly bool IsAzure = Convert.ToBoolean(@"true"); + + protected override void ProcessRecord() + { + try + { + var viewModels = GetFilteredViewParameters().Select(CreateViewModel).ToList(); + var ps1xml = new Configuration + { + ViewDefinitions = new ViewDefinitions + { + Views = viewModels + } + }; + File.WriteAllText(FilePath, ps1xml.ToXmlString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private static IEnumerable GetFilteredViewParameters() + { + //https://stackoverflow.com/a/79738/294804 + //https://stackoverflow.com/a/949285/294804 + var types = Assembly.GetExecutingAssembly().GetExportedTypes() + .Where(t => t.IsClass + && (t.Namespace.StartsWith(ModelNamespace) || t.Namespace.StartsWith(SupportNamespace)) + && !t.GetCustomAttributes().Any()); + return types.Select(t => new ViewParameters(t, t.GetProperties() + .Select(p => new PropertyFormat(p)) + .Where(pf => !pf.Property.GetCustomAttributes().Any() + && (!PropertiesExcludedForTableview.Split(',').Contains(pf.Property.Name)) + && (pf.FormatTable != null || (pf.Origin != PropertyOrigin.Inlined && pf.Property.PropertyType.IsPsSimple()))) + .OrderByDescending(pf => pf.Index.HasValue) + .ThenBy(pf => pf.Index) + .ThenByDescending(pf => pf.Origin.HasValue) + .ThenBy(pf => pf.Origin))).Where(vp => vp.Properties.Any()); + } + + private static View CreateViewModel(ViewParameters viewParameters) + { + var entries = viewParameters.Properties.Select(pf => + (TableColumnHeader: new TableColumnHeader { Label = pf.Label, Width = pf.Width }, + TableColumnItem: new TableColumnItem { PropertyName = pf.Property.Name })).ToArray(); + + return new View + { + Name = viewParameters.Type.FullName, + ViewSelectedBy = new ViewSelectedBy + { + TypeName = viewParameters.Type.FullName + }, + TableControl = new TableControl + { + TableHeaders = new TableHeaders + { + TableColumnHeaders = entries.Select(e => e.TableColumnHeader).ToList() + }, + TableRowEntries = new TableRowEntries + { + TableRowEntry = new TableRowEntry + { + TableColumnItems = new TableColumnItems + { + TableItems = entries.Select(e => e.TableColumnItem).ToList() + } + } + } + } + }; + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs new file mode 100644 index 000000000000..07092c366807 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.MarkdownRenderer; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "HelpMarkdown")] + [DoNotExport] + public class ExportHelpMarkdown : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSModuleInfo ModuleInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSObject[] FunctionInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSObject[] HelpInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string DocsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExamplesFolder { get; set; } + + protected override void ProcessRecord() + { + try + { + var helpInfos = HelpInfo.Select(hi => hi.ToPsHelpInfo()); + var variantGroups = FunctionInfo.Select(fi => fi.BaseObject).Cast() + .Join(helpInfos, fi => fi.Name, phi => phi.CmdletName, (fi, phi) => fi.ToVariants(phi)) + .Select(va => new VariantGroup(ModuleInfo.Name, va.First().CmdletName, va, String.Empty)); + WriteMarkdowns(variantGroups, ModuleInfo.ToModuleInfo(), DocsFolder, ExamplesFolder); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs new file mode 100644 index 000000000000..3517096a8d63 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ModelSurface")] + [DoNotExport] + public class ExportModelSurface : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public bool UseExpandedFormat { get; set; } + + private const string ModelNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models"; + private const string SupportNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support"; + + protected override void ProcessRecord() + { + try + { + var types = Assembly.GetExecutingAssembly().GetExportedTypes() + .Where(t => t.IsClass && (t.Namespace.StartsWith(ModelNamespace) || t.Namespace.StartsWith(SupportNamespace))); + var typeInfos = types.Select(t => new ModelTypeInfo + { + Type = t, + TypeName = t.Name, + Properties = t.GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(p => !p.GetIndexParameters().Any()).OrderBy(p => p.Name).ToArray(), + NamespaceGroup = t.Namespace.Split('.').LastOrDefault().EmptyIfNull() + }).Where(mti => mti.Properties.Any()); + var sb = UseExpandedFormat ? ExpandedFormat(typeInfos) : CondensedFormat(typeInfos); + Directory.CreateDirectory(OutputFolder); + File.WriteAllText(Path.Combine(OutputFolder, "ModelSurface.md"), sb.ToString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private static StringBuilder ExpandedFormat(IEnumerable typeInfos) + { + var sb = new StringBuilder(); + foreach (var typeInfo in typeInfos.OrderBy(mti => mti.TypeName).ThenBy(mti => mti.NamespaceGroup)) + { + sb.Append($"### {typeInfo.TypeName} [{typeInfo.NamespaceGroup}]{Environment.NewLine}"); + foreach (var property in typeInfo.Properties) + { + sb.Append($" - {property.Name} `{property.PropertyType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + private static StringBuilder CondensedFormat(IEnumerable typeInfos) + { + var sb = new StringBuilder(); + var typeGroups = typeInfos + .GroupBy(mti => mti.TypeName) + .Select(tig => ( + Types: tig.Select(mti => mti.Type).ToArray(), + TypeName: tig.Key, + Properties: tig.SelectMany(mti => mti.Properties).DistinctBy(p => p.Name).OrderBy(p => p.Name).ToArray(), + NamespaceGroups: tig.Select(mti => mti.NamespaceGroup).OrderBy(ng => ng).ToArray() + )) + .OrderBy(tg => tg.TypeName); + foreach (var typeGroup in typeGroups) + { + var aType = typeGroup.Types.Select(GetAssociativeType).FirstOrDefault(t => t != null); + var aText = aType != null ? $@" \<{aType.ToSyntaxTypeName()}\>" : String.Empty; + sb.Append($"### {typeGroup.TypeName}{aText} [{String.Join(", ", typeGroup.NamespaceGroups)}]{Environment.NewLine}"); + foreach (var property in typeGroup.Properties) + { + var propertyAType = GetAssociativeType(property.PropertyType); + var propertyAText = propertyAType != null ? $" <{propertyAType.ToSyntaxTypeName()}>" : String.Empty; + var enumNames = GetEnumFieldNames(property.PropertyType.Unwrap()); + var enumNamesText = enumNames.Any() ? $" **{{{String.Join(", ", enumNames)}}}**" : String.Empty; + sb.Append($" - {property.Name} `{property.PropertyType.ToSyntaxTypeName()}{propertyAText}`{enumNamesText}{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + //https://stackoverflow.com/a/4963190/294804 + private static Type GetAssociativeType(Type type) => + type.GetInterfaces().FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IAssociativeArray<>))?.GetGenericArguments().First(); + + private static string[] GetEnumFieldNames(Type type) => + type.IsValueType && !type.IsPrimitive && type != typeof(decimal) && type != typeof(DateTime) + ? type.GetFields(BindingFlags.Public | BindingFlags.Static).Where(f => f.FieldType == type).Select(p => p.Name).ToArray() + : new string[] { }; + + private class ModelTypeInfo + { + public Type Type { get; set; } + public string TypeName { get; set; } + public PropertyInfo[] Properties { get; set; } + public string NamespaceGroup { get; set; } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs new file mode 100644 index 000000000000..f0e47e4b0e6f --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs @@ -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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpers; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.MarkdownRenderer; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsProxyTypeExtensions; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ProxyCmdlet", DefaultParameterSetName = "Docs")] + [DoNotExport] + public class ExportProxyCmdlet : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string[] ModulePath { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string InternalFolder { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + [AllowEmptyString] + public string ModuleDescription { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + [ValidateNotNullOrEmpty] + public string DocsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExamplesFolder { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + public Guid ModuleGuid { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "NoDocs")] + public SwitchParameter ExcludeDocs { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = GetModuleCmdletsAndHelpInfo(this, ModulePath).SelectMany(ci => ci.ToVariants()).Where(v => !v.IsDoNotExport).ToArray(); + var allProfiles = variants.SelectMany(v => v.Profiles).Distinct().ToArray(); + var profileGroups = allProfiles.Any() + ? variants + .SelectMany(v => (v.Profiles.Any() ? v.Profiles : allProfiles).Select(p => (profile: p, variant: v))) + .GroupBy(pv => pv.profile) + .Select(pvg => new ProfileGroup(pvg.Select(pv => pv.variant).ToArray(), pvg.Key)) + : new[] { new ProfileGroup(variants) }; + var variantGroups = profileGroups.SelectMany(pg => pg.Variants + .GroupBy(v => new { v.CmdletName, v.IsInternal }) + .Select(vg => new VariantGroup(ModuleName, vg.Key.CmdletName, vg.Select(v => v).ToArray(), + Path.Combine(vg.Key.IsInternal ? InternalFolder : ExportsFolder, pg.ProfileFolder), pg.ProfileName, isInternal: vg.Key.IsInternal))) + .ToArray(); + + var license = new StringBuilder(); + license.Append(@" +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +"); + HashSet LicenseSet = new HashSet(); + foreach (var variantGroup in variantGroups) + { + var parameterGroups = variantGroup.ParameterGroups.ToList(); + var isValidProfile = !String.IsNullOrEmpty(variantGroup.ProfileName) && variantGroup.ProfileName != NoProfiles; + var examplesFolder = isValidProfile ? Path.Combine(ExamplesFolder, variantGroup.ProfileName) : ExamplesFolder; + var markdownInfo = new MarkdownHelpInfo(variantGroup, examplesFolder); + List examples = new List(); + foreach (var it in markdownInfo.Examples) + { + examples.Add(it); + } + variantGroup.HelpInfo.Examples = examples.ToArray(); + var sb = new StringBuilder(); + sb.Append($"{Environment.NewLine}"); + sb.Append(variantGroup.ToHelpCommentOutput()); + sb.Append($"function {variantGroup.CmdletName} {{{Environment.NewLine}"); + sb.Append(variantGroup.Aliases.ToAliasOutput()); + sb.Append(variantGroup.OutputTypes.ToOutputTypeOutput()); + sb.Append(variantGroup.ToCmdletBindingOutput()); + sb.Append(variantGroup.ProfileName.ToProfileOutput()); + + sb.Append("param("); + sb.Append($"{(parameterGroups.Any() ? Environment.NewLine : String.Empty)}"); + foreach (var parameterGroup in parameterGroups) + { + var parameters = parameterGroup.HasAllVariants ? parameterGroup.Parameters.Take(1) : parameterGroup.Parameters; + parameters = parameters.Where(p => !p.IsHidden()); + if (!parameters.Any()) + { + continue; + } + foreach (var parameter in parameters) + { + sb.Append(parameter.ToParameterOutput(variantGroup.HasMultipleVariants, parameterGroup.HasAllVariants)); + } + sb.Append(parameterGroup.Aliases.ToAliasOutput(true)); + sb.Append(parameterGroup.HasValidateNotNull.ToValidateNotNullOutput()); + sb.Append(parameterGroup.HasAllowEmptyArray.ToAllowEmptyArray()); + sb.Append(parameterGroup.CompleterInfo.ToArgumentCompleterOutput()); + sb.Append(parameterGroup.OrderCategory.ToParameterCategoryOutput()); + sb.Append(parameterGroup.InfoAttribute.ToInfoOutput(parameterGroup.ParameterType)); + sb.Append(parameterGroup.ToDefaultInfoOutput()); + sb.Append(parameterGroup.ParameterType.ToParameterTypeOutput()); + sb.Append(parameterGroup.Description.ToParameterDescriptionOutput()); + sb.Append(parameterGroup.ParameterName.ToParameterNameOutput(parameterGroups.IndexOf(parameterGroup) == parameterGroups.Count - 1)); + } + sb.Append($"){Environment.NewLine}{Environment.NewLine}"); + + sb.Append(variantGroup.ToBeginOutput()); + sb.Append(variantGroup.ToProcessOutput()); + sb.Append(variantGroup.ToEndOutput()); + + sb.Append($"}}{Environment.NewLine}"); + + Directory.CreateDirectory(variantGroup.OutputFolder); + File.WriteAllText(variantGroup.FilePath, license.ToString()); + File.AppendAllText(variantGroup.FilePath, sb.ToString()); + if (!LicenseSet.Contains(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"))) + { + // only add license in the header + File.AppendAllText(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"), license.ToString()); + LicenseSet.Add(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1")); + } + File.AppendAllText(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"), sb.ToString()); + } + + if (!ExcludeDocs) + { + var moduleInfo = new PsModuleHelpInfo(ModuleName, ModuleGuid, ModuleDescription); + foreach (var variantGroupsByProfile in variantGroups.GroupBy(vg => vg.ProfileName)) + { + var profileName = variantGroupsByProfile.Key; + var isValidProfile = !String.IsNullOrEmpty(profileName) && profileName != NoProfiles; + var docsFolder = isValidProfile ? Path.Combine(DocsFolder, profileName) : DocsFolder; + var examplesFolder = isValidProfile ? Path.Combine(ExamplesFolder, profileName) : ExamplesFolder; + WriteMarkdowns(variantGroupsByProfile, moduleInfo, docsFolder, examplesFolder); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs new file mode 100644 index 000000000000..0f822435d7be --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs @@ -0,0 +1,191 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Text.RegularExpressions; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "Psd1")] + [DoNotExport] + public class ExportPsd1 : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string CustomFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string Psd1Path { get; set; } + + [Parameter(Mandatory = true)] + public Guid ModuleGuid { get; set; } + + private static readonly bool IsAzure = Convert.ToBoolean(@"true"); + private const string CustomFolderRelative = "./custom"; + private const string Indent = Psd1Indent; + private const string Undefined = "undefined"; + private bool IsUndefined(string value) => string.Equals(Undefined, value, StringComparison.OrdinalIgnoreCase); + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + if (!Directory.Exists(CustomFolder)) + { + throw new ArgumentException($"Custom folder '{CustomFolder}' does not exist"); + } + + string version = Convert.ToString(@"0.1.0"); + // Validate the module version should be semantic version + // Following regex is official from https://semver.org/ + Regex rx = new Regex(@"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$", RegexOptions.Compiled); + if (rx.Matches(version).Count != 1) + { + throw new ArgumentException("Module-version is not a valid Semantic Version"); + } + + string previewVersion = null; + if (version.Contains('-')) + { + string[] versions = version.Split("-".ToCharArray(), 2); + version = versions[0]; + previewVersion = versions[1]; + } + + var sb = new StringBuilder(); + sb.AppendLine("@{"); + sb.AppendLine($@"{GuidStart} = '{ModuleGuid}'"); + sb.AppendLine($@"{Indent}RootModule = '{"./Az.AppPlatform.psm1"}'"); + sb.AppendLine($@"{Indent}ModuleVersion = '{version}'"); + sb.AppendLine($@"{Indent}CompatiblePSEditions = 'Core', 'Desktop'"); + sb.AppendLine($@"{Indent}Author = '{"Microsoft Corporation"}'"); + sb.AppendLine($@"{Indent}CompanyName = '{"Microsoft Corporation"}'"); + sb.AppendLine($@"{Indent}Copyright = '{"Microsoft Corporation. All rights reserved."}'"); + sb.AppendLine($@"{Indent}Description = '{"Microsoft Azure PowerShell: AppPlatform cmdlets"}'"); + sb.AppendLine($@"{Indent}PowerShellVersion = '5.1'"); + sb.AppendLine($@"{Indent}DotNetFrameworkVersion = '4.7.2'"); + + // RequiredModules + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}RequiredModules = @({"undefined"})"); + } + + // RequiredAssemblies + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}RequiredAssemblies = @({"undefined"})"); + } + else + { + sb.AppendLine($@"{Indent}RequiredAssemblies = '{"./bin/Az.AppPlatform.private.dll"}'"); + } + + // NestedModules + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}NestedModules = @({"undefined"})"); + } + + // FormatsToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}FormatsToProcess = @({"undefined"})"); + } + else + { + var customFormatPs1xmlFiles = Directory.GetFiles(CustomFolder) + .Where(f => f.EndsWith(".format.ps1xml")) + .Select(f => $"{CustomFolderRelative}/{Path.GetFileName(f)}"); + var formatList = customFormatPs1xmlFiles.Prepend("./Az.AppPlatform.format.ps1xml").ToPsList(); + sb.AppendLine($@"{Indent}FormatsToProcess = {formatList}"); + } + + // TypesToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}TypesToProcess = @({"undefined"})"); + } + + // ScriptsToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}ScriptsToProcess = @({"undefined"})"); + } + + var functionInfos = GetScriptCmdlets(ExportsFolder).ToArray(); + // FunctionsToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}FunctionsToExport = @({"undefined"})"); + } + else + { + var cmdletsList = functionInfos.Select(fi => fi.Name).Distinct().Append("*").ToPsList(); + sb.AppendLine($@"{Indent}FunctionsToExport = {cmdletsList}"); + } + + // AliasesToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}AliasesToExport = @({"undefined"})"); + } + else + { + var aliasesList = functionInfos.SelectMany(fi => fi.ScriptBlock.Attributes).ToAliasNames().Append("*").ToPsList(); + sb.AppendLine($@"{Indent}AliasesToExport = {aliasesList}"); + } + + // CmdletsToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}CmdletsToExport = @({"undefined"})"); + } + + sb.AppendLine($@"{Indent}PrivateData = @{{"); + sb.AppendLine($@"{Indent}{Indent}PSData = @{{"); + + if (previewVersion != null) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}Prerelease = '{previewVersion}'"); + } + sb.AppendLine($@"{Indent}{Indent}{Indent}Tags = {"Azure ResourceManager ARM PSModule AppPlatform".Split(' ').ToPsList().NullIfEmpty() ?? "''"}"); + sb.AppendLine($@"{Indent}{Indent}{Indent}LicenseUri = '{"https://aka.ms/azps-license"}'"); + sb.AppendLine($@"{Indent}{Indent}{Indent}ProjectUri = '{"https://github.com/Azure/azure-powershell"}'"); + sb.AppendLine($@"{Indent}{Indent}{Indent}ReleaseNotes = ''"); + var profilesList = ""; + if (IsAzure && !String.IsNullOrEmpty(profilesList)) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}Profiles = {profilesList}"); + } + + sb.AppendLine($@"{Indent}{Indent}}}"); + sb.AppendLine($@"{Indent}}}"); + sb.AppendLine(@"}"); + + File.WriteAllText(Psd1Path, sb.ToString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs new file mode 100644 index 000000000000..adb35f42dc54 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/ExportTestStub.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "TestStub")] + [DoNotExport] + public class ExportTestStub : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public SwitchParameter IncludeGenerated { get; set; } + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + var exportDirectories = Directory.GetDirectories(ExportsFolder); + if (!exportDirectories.Any()) + { + exportDirectories = new[] { ExportsFolder }; + } + var utilFile = Path.Combine(OutputFolder, "utils.ps1"); + if (!File.Exists(utilFile)) + { + var sc = new StringBuilder(); + sc.AppendLine(@"function RandomString([bool]$allChars, [int32]$len) { + if ($allChars) { + return -join ((33..126) | Get-Random -Count $len | % {[char]$_}) + } else { + return -join ((48..57) + (97..122) | Get-Random -Count $len | % {[char]$_}) + } +} +$env = @{} +if ($UsePreviousConfigForRecord) { + $previousEnv = Get-Content (Join-Path $PSScriptRoot 'env.json') | ConvertFrom-Json + $previousEnv.psobject.properties | Foreach-Object { $env[$_.Name] = $_.Value } +} +# Add script method called AddWithCache to $env, when useCache is set true, it will try to get the value from the $env first. +# example: $val = $env.AddWithCache('key', $val, $true) +$env | Add-Member -Type ScriptMethod -Value { param( [string]$key, [object]$val, [bool]$useCache) if ($this.Contains($key) -and $useCache) { return $this[$key] } else { $this[$key] = $val; return $val } } -Name 'AddWithCache' +function setupEnv() { + # Preload subscriptionId and tenant from context, which will be used in test + # as default. You could change them if needed. + $env.SubscriptionId = (Get-AzContext).Subscription.Id + $env.Tenant = (Get-AzContext).Tenant.Id + # For any resources you created for test, you should add it to $env here. + $envFile = 'env.json' + if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' + } + set-content -Path (Join-Path $PSScriptRoot $envFile) -Value (ConvertTo-Json $env) +} +function cleanupEnv() { + # Clean resources you create for testing +} +"); + File.WriteAllText(utilFile, sc.ToString()); + } + foreach (var exportDirectory in exportDirectories) + { + var outputFolder = OutputFolder; + if (exportDirectory != ExportsFolder) + { + outputFolder = Path.Combine(OutputFolder, Path.GetFileName(exportDirectory)); + Directory.CreateDirectory(outputFolder); + } + + var variantGroups = GetScriptCmdlets(exportDirectory) + .SelectMany(fi => fi.ToVariants()) + .Where(v => !v.IsDoNotExport) + .GroupBy(v => v.CmdletName) + .Select(vg => new VariantGroup(ModuleName, vg.Key, vg.Select(v => v).ToArray(), outputFolder, isTest: true)) + .Where(vtg => !File.Exists(vtg.FilePath) && (IncludeGenerated || !vtg.IsGenerated)); + + foreach (var variantGroup in variantGroups) + { + var sb = new StringBuilder(); + sb.AppendLine($"if(($null -eq $TestName) -or ($TestName -contains '{variantGroup.CmdletName}'))"); + sb.AppendLine(@"{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath)" +); + sb.AppendLine($@" $TestRecordingFile = Join-Path $PSScriptRoot '{variantGroup.CmdletName}.Recording.json'"); + sb.AppendLine(@" $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} +"); + + + sb.AppendLine($"Describe '{variantGroup.CmdletName}' {{"); + var variants = variantGroup.Variants + .Where(v => IncludeGenerated || !v.Attributes.OfType().Any()) + .ToList(); + + foreach (var variant in variants) + { + sb.AppendLine($"{Indent}It '{variant.VariantName}' -skip {{"); + sb.AppendLine($"{Indent}{Indent}{{ throw [System.NotImplementedException] }} | Should -Not -Throw"); + var variantSeparator = variants.IndexOf(variant) == variants.Count - 1 ? String.Empty : Environment.NewLine; + sb.AppendLine($"{Indent}}}{variantSeparator}"); + } + sb.AppendLine("}"); + + File.WriteAllText(variantGroup.FilePath, sb.ToString()); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs new file mode 100644 index 000000000000..9432d1e67922 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs @@ -0,0 +1,52 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "CommonParameter")] + [OutputType(typeof(Dictionary))] + [DoNotExport] + public class GetCommonParameter : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSCmdlet PSCmdlet { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public Dictionary PSBoundParameter { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = PSCmdlet.MyInvocation.MyCommand.ToVariants(); + var commonParameterNames = variants.ToParameterGroups() + .Where(pg => pg.OrderCategory == ParameterCategory.Azure || pg.OrderCategory == ParameterCategory.Runtime) + .Select(pg => pg.ParameterName); + if (variants.Any(v => v.SupportsShouldProcess)) + { + commonParameterNames = commonParameterNames.Append("Confirm").Append("WhatIf"); + } + if (variants.Any(v => v.SupportsPaging)) + { + commonParameterNames = commonParameterNames.Append("First").Append("Skip").Append("IncludeTotalCount"); + } + + var names = commonParameterNames.ToArray(); + var keys = PSBoundParameter.Keys.Where(k => names.Contains(k)); + WriteObject(keys.ToDictionary(key => key, key => PSBoundParameter[key]), true); + } + catch (System.Exception ee) + { + System.Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs new file mode 100644 index 000000000000..a925fd51c8f4 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs @@ -0,0 +1,31 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "ModuleGuid")] + [DoNotExport] + public class GetModuleGuid : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string Psd1Path { get; set; } + + protected override void ProcessRecord() + { + try + { + WriteObject(ReadGuidFromPsd1(Psd1Path)); + } + catch (System.Exception ee) + { + System.Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs new file mode 100644 index 000000000000..4b0777a5ec8e --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.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. + *--------------------------------------------------------------------------------------------*/ +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "ScriptCmdlet")] + [OutputType(typeof(string[]))] + [DoNotExport] + public class GetScriptCmdlet : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ScriptFolder { get; set; } + + [Parameter] + public SwitchParameter IncludeDoNotExport { get; set; } + + [Parameter] + public SwitchParameter AsAlias { get; set; } + + [Parameter] + public SwitchParameter AsFunctionInfo { get; set; } + + protected override void ProcessRecord() + { + try + { + var functionInfos = GetScriptCmdlets(this, ScriptFolder) + .Where(fi => IncludeDoNotExport || !fi.ScriptBlock.Attributes.OfType().Any()) + .ToArray(); + if (AsFunctionInfo) + { + WriteObject(functionInfos, true); + return; + } + var aliases = functionInfos.SelectMany(i => i.ScriptBlock.Attributes).ToAliasNames(); + var names = functionInfos.Select(fi => fi.Name).Distinct(); + var output = (AsAlias ? aliases : names).DefaultIfEmpty("''").ToArray(); + WriteObject(output, true); + } + catch (System.Exception ee) + { + System.Console.Error.WriteLine($"{ee.GetType().Name}: {ee.Message}"); + System.Console.Error.WriteLine(ee.StackTrace); + throw ee; + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/CollectionExtensions.cs b/swaggerci/appplatform/generated/runtime/BuildTime/CollectionExtensions.cs new file mode 100644 index 000000000000..80995794b2cc --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/CollectionExtensions.cs @@ -0,0 +1,20 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal static class CollectionExtensions + { + public static T[] NullIfEmpty(this T[] collection) => (collection?.Any() ?? false) ? collection : null; + public static IEnumerable EmptyIfNull(this IEnumerable collection) => collection ?? Enumerable.Empty(); + + // https://stackoverflow.com/a/4158364/294804 + public static IEnumerable DistinctBy(this IEnumerable collection, Func selector) => + collection.GroupBy(selector).Select(group => group.First()); + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/MarkdownRenderer.cs b/swaggerci/appplatform/generated/runtime/BuildTime/MarkdownRenderer.cs new file mode 100644 index 000000000000..9b3a9cdb6444 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/MarkdownRenderer.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsProxyOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal static class MarkdownRenderer + { + public static void WriteMarkdowns(IEnumerable variantGroups, PsModuleHelpInfo moduleHelpInfo, string docsFolder, string examplesFolder) + { + Directory.CreateDirectory(docsFolder); + var markdownInfos = variantGroups.Where(vg => !vg.IsInternal).Select(vg => new MarkdownHelpInfo(vg, examplesFolder)).OrderBy(mhi => mhi.CmdletName).ToArray(); + + foreach (var markdownInfo in markdownInfos) + { + var sb = new StringBuilder(); + sb.Append(markdownInfo.ToHelpMetadataOutput()); + sb.Append($"# {markdownInfo.CmdletName}{Environment.NewLine}{Environment.NewLine}"); + sb.Append($"## SYNOPSIS{Environment.NewLine}{markdownInfo.Synopsis.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## SYNTAX{Environment.NewLine}{Environment.NewLine}"); + var hasMultipleParameterSets = markdownInfo.SyntaxInfos.Length > 1; + foreach (var syntaxInfo in markdownInfo.SyntaxInfos) + { + sb.Append(syntaxInfo.ToHelpSyntaxOutput(hasMultipleParameterSets)); + } + + sb.Append($"## DESCRIPTION{Environment.NewLine}{markdownInfo.Description.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## EXAMPLES{Environment.NewLine}{Environment.NewLine}"); + foreach (var exampleInfo in markdownInfo.Examples) + { + sb.Append(exampleInfo.ToHelpExampleOutput()); + } + + sb.Append($"## PARAMETERS{Environment.NewLine}{Environment.NewLine}"); + foreach (var parameter in markdownInfo.Parameters) + { + sb.Append(parameter.ToHelpParameterOutput()); + } + if (markdownInfo.SupportsShouldProcess) + { + foreach (var parameter in SupportsShouldProcessParameters) + { + sb.Append(parameter.ToHelpParameterOutput()); + } + } + + sb.Append($"### CommonParameters{Environment.NewLine}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).{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## INPUTS{Environment.NewLine}{Environment.NewLine}"); + foreach (var input in markdownInfo.Inputs) + { + sb.Append($"### {input}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## OUTPUTS{Environment.NewLine}{Environment.NewLine}"); + foreach (var output in markdownInfo.Outputs) + { + sb.Append($"### {output}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## NOTES{Environment.NewLine}{Environment.NewLine}"); + sb.Append($"ALIASES{Environment.NewLine}{Environment.NewLine}"); + foreach (var alias in markdownInfo.Aliases) + { + sb.Append($"{alias}{Environment.NewLine}{Environment.NewLine}"); + } + if (markdownInfo.ComplexInterfaceInfos.Any()) + { + sb.Append($"{ComplexParameterHeader}{Environment.NewLine}"); + } + foreach (var complexInterfaceInfo in markdownInfo.ComplexInterfaceInfos) + { + sb.Append($"{complexInterfaceInfo.ToNoteOutput(includeDashes: true, includeBackticks: true)}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## RELATED LINKS{Environment.NewLine}{Environment.NewLine}"); + foreach (var relatedLink in markdownInfo.RelatedLinks) + { + sb.Append($"{relatedLink}{Environment.NewLine}{Environment.NewLine}"); + } + + File.WriteAllText(Path.Combine(docsFolder, $"{markdownInfo.CmdletName}.md"), sb.ToString()); + } + + WriteModulePage(moduleHelpInfo, markdownInfos, docsFolder); + } + + private static void WriteModulePage(PsModuleHelpInfo moduleInfo, MarkdownHelpInfo[] markdownInfos, string docsFolder) + { + var sb = new StringBuilder(); + sb.Append(moduleInfo.ToModulePageMetadataOutput()); + sb.Append($"# {moduleInfo.Name} Module{Environment.NewLine}"); + sb.Append($"## Description{Environment.NewLine}{moduleInfo.Description.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## {moduleInfo.Name} Cmdlets{Environment.NewLine}"); + foreach (var markdownInfo in markdownInfos) + { + sb.Append(markdownInfo.ToModulePageCmdletOutput()); + } + + File.WriteAllText(Path.Combine(docsFolder, $"{moduleInfo.Name}.md"), sb.ToString()); + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsFormatTypes.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsFormatTypes.cs new file mode 100644 index 000000000000..ec37b5ec144e --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsFormatTypes.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal class ViewParameters + { + public Type Type { get; } + public IEnumerable Properties { get; } + + public ViewParameters(Type type, IEnumerable properties) + { + Type = type; + Properties = properties; + } + } + + internal class PropertyFormat + { + public PropertyInfo Property { get; } + public FormatTableAttribute FormatTable { get; } + + public int? Index { get; } + public string Label { get; } + public int? Width { get; } + public PropertyOrigin? Origin { get; } + + public PropertyFormat(PropertyInfo propertyInfo) + { + Property = propertyInfo; + FormatTable = Property.GetCustomAttributes().FirstOrDefault(); + var origin = Property.GetCustomAttributes().FirstOrDefault(); + + Index = FormatTable?.HasIndex ?? false ? (int?)FormatTable.Index : null; + Label = FormatTable?.Label ?? propertyInfo.Name; + Width = FormatTable?.HasWidth ?? false ? (int?)FormatTable.Width : null; + // If we have an index, we don't want to use Origin. + Origin = FormatTable?.HasIndex ?? false ? null : origin?.Origin; + } + } + + [Serializable] + [XmlRoot(nameof(Configuration))] + public class Configuration + { + [XmlElement("ViewDefinitions")] + public ViewDefinitions ViewDefinitions { get; set; } + } + + [Serializable] + public class ViewDefinitions + { + //https://stackoverflow.com/a/10518657/294804 + [XmlElement("View")] + public List Views { get; set; } + } + + [Serializable] + public class View + { + [XmlElement(nameof(Name))] + public string Name { get; set; } + [XmlElement(nameof(ViewSelectedBy))] + public ViewSelectedBy ViewSelectedBy { get; set; } + [XmlElement(nameof(TableControl))] + public TableControl TableControl { get; set; } + } + + [Serializable] + public class ViewSelectedBy + { + [XmlElement(nameof(TypeName))] + public string TypeName { get; set; } + } + + [Serializable] + public class TableControl + { + [XmlElement(nameof(TableHeaders))] + public TableHeaders TableHeaders { get; set; } + [XmlElement(nameof(TableRowEntries))] + public TableRowEntries TableRowEntries { get; set; } + } + + [Serializable] + public class TableHeaders + { + [XmlElement("TableColumnHeader")] + public List TableColumnHeaders { get; set; } + } + + [Serializable] + public class TableColumnHeader + { + [XmlElement(nameof(Label))] + public string Label { get; set; } + [XmlElement(nameof(Width))] + public int? Width { get; set; } + + //https://stackoverflow.com/a/4095225/294804 + public bool ShouldSerializeWidth() => Width.HasValue; + } + + [Serializable] + public class TableRowEntries + { + [XmlElement(nameof(TableRowEntry))] + public TableRowEntry TableRowEntry { get; set; } + } + + [Serializable] + public class TableRowEntry + { + [XmlElement(nameof(TableColumnItems))] + public TableColumnItems TableColumnItems { get; set; } + } + + [Serializable] + public class TableColumnItems + { + [XmlElement("TableColumnItem")] + public List TableItems { get; set; } + } + + [Serializable] + public class TableColumnItem + { + [XmlElement(nameof(PropertyName))] + public string PropertyName { get; set; } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs new file mode 100644 index 000000000000..f916a616820d --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs @@ -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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal class HelpMetadataOutput + { + public MarkdownHelpInfo HelpInfo { get; } + + public HelpMetadataOutput(MarkdownHelpInfo helpInfo) + { + HelpInfo = helpInfo; + } + + public override string ToString() => $@"--- +external help file:{(!String.IsNullOrEmpty(HelpInfo.ExternalHelpFilename) ? $" {HelpInfo.ExternalHelpFilename}" : String.Empty)} +Module Name: {HelpInfo.ModuleName} +online version: {HelpInfo.OnlineVersion} +schema: {HelpInfo.Schema.ToString(3)} +--- + +"; + } + + internal class HelpSyntaxOutput + { + public MarkdownSyntaxHelpInfo SyntaxInfo { get; } + public bool HasMultipleParameterSets { get; } + + public HelpSyntaxOutput(MarkdownSyntaxHelpInfo syntaxInfo, bool hasMultipleParameterSets) + { + SyntaxInfo = syntaxInfo; + HasMultipleParameterSets = hasMultipleParameterSets; + } + + public override string ToString() + { + var psnText = HasMultipleParameterSets ? $"### {SyntaxInfo.ParameterSetName}{(SyntaxInfo.IsDefault ? " (Default)" : String.Empty)}{Environment.NewLine}" : String.Empty; + return $@"{psnText}``` +{SyntaxInfo.SyntaxText} +``` + +"; + } + } + + internal class HelpExampleOutput + { + private string ExampleTemplate = + "{0}{1}" + Environment.NewLine + + "{2}" + Environment.NewLine + "{3}" + Environment.NewLine + "{4}" + Environment.NewLine + Environment.NewLine + + "{5}" + Environment.NewLine + Environment.NewLine; + + private string ExampleTemplateWithOutput = + "{0}{1}" + Environment.NewLine + + "{2}" + Environment.NewLine + "{3}" + Environment.NewLine + "{4}" + Environment.NewLine + Environment.NewLine + + "{5}" + Environment.NewLine + "{6}" + Environment.NewLine + "{7}" + Environment.NewLine + Environment.NewLine + + "{8}" + Environment.NewLine + Environment.NewLine; + + public MarkdownExampleHelpInfo ExampleInfo { get; } + + public HelpExampleOutput(MarkdownExampleHelpInfo exampleInfo) + { + ExampleInfo = exampleInfo; + } + + public override string ToString() + { + if (string.IsNullOrEmpty(ExampleInfo.Output)) + { + return string.Format(ExampleTemplate, + ExampleNameHeader, ExampleInfo.Name, + ExampleCodeHeader, ExampleInfo.Code, ExampleCodeFooter, + ExampleInfo.Description.ToDescriptionFormat()); + } + else + { + return string.Format(ExampleTemplateWithOutput, + ExampleNameHeader, ExampleInfo.Name, + ExampleCodeHeader, ExampleInfo.Code, ExampleCodeFooter, + ExampleOutputHeader, ExampleInfo.Output, ExampleOutputFooter, + ExampleInfo.Description.ToDescriptionFormat()); ; + } + } + } + + internal class HelpParameterOutput + { + public MarkdownParameterHelpInfo ParameterInfo { get; } + + public HelpParameterOutput(MarkdownParameterHelpInfo parameterInfo) + { + ParameterInfo = parameterInfo; + } + + public override string ToString() + { + var pipelineInputTypes = new[] + { + ParameterInfo.AcceptsPipelineByValue ? "ByValue" : String.Empty, + ParameterInfo.AcceptsPipelineByPropertyName ? "ByPropertyName" : String.Empty + }.JoinIgnoreEmpty(", "); + var pipelineInput = ParameterInfo.AcceptsPipelineByValue || ParameterInfo.AcceptsPipelineByPropertyName + ? $@"{true} ({pipelineInputTypes})" + : false.ToString(); + + return $@"### -{ParameterInfo.Name} +{ParameterInfo.Description.ToDescriptionFormat()} + +```yaml +Type: {ParameterInfo.Type.FullName} +Parameter Sets: {(ParameterInfo.HasAllParameterSets ? "(All)" : ParameterInfo.ParameterSetNames.JoinIgnoreEmpty(", "))} +Aliases:{(ParameterInfo.Aliases.Any() ? $" {ParameterInfo.Aliases.JoinIgnoreEmpty(", ")}" : String.Empty)} + +Required: {ParameterInfo.IsRequired} +Position: {ParameterInfo.Position} +Default value: {ParameterInfo.DefaultValue} +Accept pipeline input: {pipelineInput} +Accept wildcard characters: {ParameterInfo.AcceptsWildcardCharacters} +``` + +"; + } + } + + internal class ModulePageMetadataOutput + { + public PsModuleHelpInfo ModuleInfo { get; } + + private static string HelpLinkPrefix { get; } = @"https://docs.microsoft.com/en-us/powershell/module/"; + + public ModulePageMetadataOutput(PsModuleHelpInfo moduleInfo) + { + ModuleInfo = moduleInfo; + } + + public override string ToString() => $@"--- +Module Name: {ModuleInfo.Name} +Module Guid: {ModuleInfo.Guid} +Download Help Link: {HelpLinkPrefix}{ModuleInfo.Name.ToLowerInvariant()} +Help Version: 1.0.0.0 +Locale: en-US +--- + +"; + } + + internal class ModulePageCmdletOutput + { + public MarkdownHelpInfo HelpInfo { get; } + + public ModulePageCmdletOutput(MarkdownHelpInfo helpInfo) + { + HelpInfo = helpInfo; + } + + public override string ToString() => $@"### [{HelpInfo.CmdletName}]({HelpInfo.CmdletName}.md) +{HelpInfo.Synopsis.ToDescriptionFormat()} + +"; + } + + internal static class PsHelpOutputExtensions + { + public static string EscapeAngleBrackets(this string text) => text?.Replace("<", @"\<").Replace(">", @"\>"); + public static string ReplaceSentenceEndWithNewline(this string text) => text?.Replace(". ", $".{Environment.NewLine}").Replace(". ", $".{Environment.NewLine}"); + public static string ReplaceBrWithNewline(this string text) => text?.Replace("
", $"{Environment.NewLine}"); + public static string ToDescriptionFormat(this string text, bool escapeAngleBrackets = true) + { + var description = text?.ReplaceBrWithNewline(); + description = escapeAngleBrackets ? description?.EscapeAngleBrackets() : description; + return description?.ReplaceSentenceEndWithNewline().Trim(); + } + + public const string ExampleNameHeader = "### "; + public const string ExampleCodeHeader = "```powershell"; + public const string ExampleCodeFooter = "```"; + public const string ExampleOutputHeader = "```output"; + public const string ExampleOutputFooter = "```"; + + public static HelpMetadataOutput ToHelpMetadataOutput(this MarkdownHelpInfo helpInfo) => new HelpMetadataOutput(helpInfo); + + public static HelpSyntaxOutput ToHelpSyntaxOutput(this MarkdownSyntaxHelpInfo syntaxInfo, bool hasMultipleParameterSets) => new HelpSyntaxOutput(syntaxInfo, hasMultipleParameterSets); + + public static HelpExampleOutput ToHelpExampleOutput(this MarkdownExampleHelpInfo exampleInfo) => new HelpExampleOutput(exampleInfo); + + public static HelpParameterOutput ToHelpParameterOutput(this MarkdownParameterHelpInfo parameterInfo) => new HelpParameterOutput(parameterInfo); + + public static ModulePageMetadataOutput ToModulePageMetadataOutput(this PsModuleHelpInfo moduleInfo) => new ModulePageMetadataOutput(moduleInfo); + + public static ModulePageCmdletOutput ToModulePageCmdletOutput(this MarkdownHelpInfo helpInfo) => new ModulePageCmdletOutput(helpInfo); + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsHelpTypes.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsHelpTypes.cs new file mode 100644 index 000000000000..ed0a2c0502a0 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsHelpTypes.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal class PsHelpInfo + { + public string CmdletName { get; } + public string ModuleName { get; } + public string Synopsis { get; } + public string Description { get; } + public string AlertText { get; } + public string Category { get; } + public PsHelpLinkInfo OnlineVersion { get; } + public PsHelpLinkInfo[] RelatedLinks { get; } + public bool? HasCommonParameters { get; } + public bool? HasWorkflowCommonParameters { get; } + + public PsHelpTypeInfo[] InputTypes { get; } + public PsHelpTypeInfo[] OutputTypes { get; } + public PsHelpExampleInfo[] Examples { get; set; } + public string[] Aliases { get; } + + public PsParameterHelpInfo[] Parameters { get; } + public PsHelpSyntaxInfo[] Syntax { get; } + + public object Component { get; } + public object Functionality { get; } + public object PsSnapIn { get; } + public object Role { get; } + public string NonTerminatingErrors { get; } + + public PsHelpInfo(PSObject helpObject = null) + { + helpObject = helpObject ?? new PSObject(); + CmdletName = helpObject.GetProperty("Name").NullIfEmpty() ?? helpObject.GetNestedProperty("details", "name"); + ModuleName = helpObject.GetProperty("ModuleName"); + Synopsis = helpObject.GetProperty("Synopsis"); + Description = helpObject.GetProperty("description").EmptyIfNull().ToDescriptionText().NullIfEmpty() ?? + helpObject.GetNestedProperty("details", "description").EmptyIfNull().ToDescriptionText(); + AlertText = helpObject.GetNestedProperty("alertSet", "alert").EmptyIfNull().ToDescriptionText(); + Category = helpObject.GetProperty("Category"); + HasCommonParameters = helpObject.GetProperty("CommonParameters").ToNullableBool(); + HasWorkflowCommonParameters = helpObject.GetProperty("WorkflowCommonParameters").ToNullableBool(); + + var links = helpObject.GetNestedProperty("relatedLinks", "navigationLink").EmptyIfNull().Select(nl => nl.ToLinkInfo()).ToArray(); + OnlineVersion = links.FirstOrDefault(l => l.Text?.ToLowerInvariant().StartsWith("online version:") ?? links.Length == 1); + RelatedLinks = links.Where(l => !l.Text?.ToLowerInvariant().StartsWith("online version:") ?? links.Length != 1).ToArray(); + + InputTypes = helpObject.GetNestedProperty("inputTypes", "inputType").EmptyIfNull().Select(it => it.ToTypeInfo()).ToArray(); + OutputTypes = helpObject.GetNestedProperty("returnValues", "returnValue").EmptyIfNull().Select(rv => rv.ToTypeInfo()).ToArray(); + Examples = helpObject.GetNestedProperty("examples", "example").EmptyIfNull().Select(e => e.ToExampleInfo()).ToArray(); + Aliases = helpObject.GetProperty("aliases").EmptyIfNull().Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); + + Parameters = helpObject.GetNestedProperty("parameters", "parameter").EmptyIfNull().Select(p => p.ToPsParameterHelpInfo()).ToArray(); + Syntax = helpObject.GetNestedProperty("syntax", "syntaxItem").EmptyIfNull().Select(si => si.ToSyntaxInfo()).ToArray(); + + Component = helpObject.GetProperty("Component"); + Functionality = helpObject.GetProperty("Functionality"); + PsSnapIn = helpObject.GetProperty("PSSnapIn"); + Role = helpObject.GetProperty("Role"); + NonTerminatingErrors = helpObject.GetProperty("nonTerminatingErrors"); + } + } + + internal class PsHelpTypeInfo + { + public string Name { get; } + public string Description { get; } + + public PsHelpTypeInfo(PSObject typeObject) + { + Name = typeObject.GetNestedProperty("type", "name").EmptyIfNull().Trim(); + Description = typeObject.GetProperty("description").EmptyIfNull().ToDescriptionText(); + } + } + + internal class PsHelpLinkInfo + { + public string Uri { get; } + public string Text { get; } + + public PsHelpLinkInfo(PSObject linkObject) + { + Uri = linkObject.GetProperty("uri"); + Text = linkObject.GetProperty("linkText"); + } + } + + internal class PsHelpSyntaxInfo + { + public string CmdletName { get; } + public PsParameterHelpInfo[] Parameters { get; } + + public PsHelpSyntaxInfo(PSObject syntaxObject) + { + CmdletName = syntaxObject.GetProperty("name"); + Parameters = syntaxObject.GetProperty("parameter").EmptyIfNull().Select(p => p.ToPsParameterHelpInfo()).ToArray(); + } + } + + internal class PsHelpExampleInfo + { + public string Title { get; } + public string Code { get; } + public string Output { get; } + public string Remarks { get; } + + public PsHelpExampleInfo(PSObject exampleObject) + { + Title = exampleObject.GetProperty("title"); + Code = exampleObject.GetProperty("code"); + Output = exampleObject.GetProperty("output"); + Remarks = exampleObject.GetProperty("remarks").EmptyIfNull().ToDescriptionText(); + } + public PsHelpExampleInfo(MarkdownExampleHelpInfo markdownExample) + { + Title = markdownExample.Name; + Code = markdownExample.Code; + Output = markdownExample.Output; + Remarks = markdownExample.Description; + } + + public static implicit operator PsHelpExampleInfo(MarkdownExampleHelpInfo markdownExample) => new PsHelpExampleInfo(markdownExample); + } + + internal class PsParameterHelpInfo + { + public string DefaultValueAsString { get; } + + public string Name { get; } + public string TypeName { get; } + public string Description { get; } + public string SupportsPipelineInput { get; } + public string PositionText { get; } + public string[] ParameterSetNames { get; } + public string[] Aliases { get; } + + public bool? SupportsGlobbing { get; } + public bool? IsRequired { get; } + public bool? IsVariableLength { get; } + public bool? IsDynamic { get; } + + public PsParameterHelpInfo(PSObject parameterHelpObject = null) + { + parameterHelpObject = parameterHelpObject ?? new PSObject(); + DefaultValueAsString = parameterHelpObject.GetProperty("defaultValue"); + Name = parameterHelpObject.GetProperty("name"); + TypeName = parameterHelpObject.GetProperty("parameterValue").NullIfEmpty() ?? parameterHelpObject.GetNestedProperty("type", "name"); + Description = parameterHelpObject.GetProperty("Description").EmptyIfNull().ToDescriptionText(); + SupportsPipelineInput = parameterHelpObject.GetProperty("pipelineInput"); + PositionText = parameterHelpObject.GetProperty("position"); + ParameterSetNames = parameterHelpObject.GetProperty("parameterSetName").EmptyIfNull().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); + Aliases = parameterHelpObject.GetProperty("aliases").EmptyIfNull().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); + + SupportsGlobbing = parameterHelpObject.GetProperty("globbing").ToNullableBool(); + IsRequired = parameterHelpObject.GetProperty("required").ToNullableBool(); + IsVariableLength = parameterHelpObject.GetProperty("variableLength").ToNullableBool(); + IsDynamic = parameterHelpObject.GetProperty("isDynamic").ToNullableBool(); + } + } + + internal class PsModuleHelpInfo + { + public string Name { get; } + public Guid Guid { get; } + public string Description { get; } + + public PsModuleHelpInfo(PSModuleInfo moduleInfo) + : this(moduleInfo?.Name ?? String.Empty, moduleInfo?.Guid ?? Guid.NewGuid(), moduleInfo?.Description ?? String.Empty) + { + } + + public PsModuleHelpInfo(string name, Guid guid, string description) + { + Name = name; + Guid = guid; + Description = description; + } + } + + internal static class HelpTypesExtensions + { + public static PsHelpInfo ToPsHelpInfo(this PSObject helpObject) => new PsHelpInfo(helpObject); + public static PsParameterHelpInfo ToPsParameterHelpInfo(this PSObject parameterHelpObject) => new PsParameterHelpInfo(parameterHelpObject); + + public static string ToDescriptionText(this IEnumerable descriptionObject) => descriptionObject != null + ? String.Join(Environment.NewLine, descriptionObject.Select(dl => dl.GetProperty("Text").EmptyIfNull())).NullIfWhiteSpace() + : null; + public static PsHelpTypeInfo ToTypeInfo(this PSObject typeObject) => new PsHelpTypeInfo(typeObject); + public static PsHelpExampleInfo ToExampleInfo(this PSObject exampleObject) => new PsHelpExampleInfo(exampleObject); + public static PsHelpLinkInfo ToLinkInfo(this PSObject linkObject) => new PsHelpLinkInfo(linkObject); + public static PsHelpSyntaxInfo ToSyntaxInfo(this PSObject syntaxObject) => new PsHelpSyntaxInfo(syntaxObject); + public static PsModuleHelpInfo ToModuleInfo(this PSModuleInfo moduleInfo) => new PsModuleHelpInfo(moduleInfo); + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs new file mode 100644 index 000000000000..fc425d8ee196 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsMarkdownTypes.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsHelpOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal class MarkdownHelpInfo + { + public string ExternalHelpFilename { get; } + public string ModuleName { get; } + public string OnlineVersion { get; } + public Version Schema { get; } + + public string CmdletName { get; } + public string[] Aliases { get; } + public string Synopsis { get; } + public string Description { get; } + + public MarkdownSyntaxHelpInfo[] SyntaxInfos { get; } + public MarkdownExampleHelpInfo[] Examples { get; } + public MarkdownParameterHelpInfo[] Parameters { get; } + + public string[] Inputs { get; } + public string[] Outputs { get; } + public ComplexInterfaceInfo[] ComplexInterfaceInfos { get; } + public string[] RelatedLinks { get; } + + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + + public MarkdownHelpInfo(VariantGroup variantGroup, string examplesFolder, string externalHelpFilename = "") + { + ExternalHelpFilename = externalHelpFilename; + ModuleName = variantGroup.RootModuleName != "" ? variantGroup.RootModuleName : variantGroup.ModuleName; + var helpInfo = variantGroup.HelpInfo; + var commentInfo = variantGroup.CommentInfo; + Schema = Version.Parse("2.0.0"); + + CmdletName = variantGroup.CmdletName; + Aliases = (variantGroup.Aliases.NullIfEmpty() ?? helpInfo.Aliases).Where(a => a != "None").ToArray(); + Synopsis = commentInfo.Synopsis; + Description = commentInfo.Description; + + SyntaxInfos = variantGroup.Variants + .Select(v => new MarkdownSyntaxHelpInfo(v, variantGroup.ParameterGroups, v.VariantName == variantGroup.DefaultParameterSetName)) + .OrderByDescending(v => v.IsDefault).ThenBy(v => v.ParameterSetName).ToArray(); + Examples = GetExamplesFromMarkdown(examplesFolder).NullIfEmpty() + ?? helpInfo.Examples.Select(e => e.ToExampleHelpInfo()).ToArray().NullIfEmpty() + ?? DefaultExampleHelpInfos; + + Parameters = variantGroup.ParameterGroups + .Where(pg => !pg.DontShow && !pg.Parameters.All(p => p.IsHidden())) + .Select(pg => new MarkdownParameterHelpInfo( + variantGroup.Variants.SelectMany(v => v.HelpInfo.Parameters).Where(phi => phi.Name == pg.ParameterName).ToArray(), pg)) + .OrderBy(phi => phi.Name).ToArray(); + + Inputs = commentInfo.Inputs; + Outputs = commentInfo.Outputs; + + ComplexInterfaceInfos = variantGroup.ComplexInterfaceInfos; + OnlineVersion = commentInfo.OnlineVersion; + RelatedLinks = commentInfo.RelatedLinks; + + SupportsShouldProcess = variantGroup.SupportsShouldProcess; + SupportsPaging = variantGroup.SupportsPaging; + } + + private MarkdownExampleHelpInfo[] GetExamplesFromMarkdown(string examplesFolder) + { + var filePath = Path.Combine(examplesFolder, $"{CmdletName}.md"); + if (!Directory.Exists(examplesFolder) || !File.Exists(filePath)) return null; + + var lines = File.ReadAllLines(filePath); + var nameIndices = lines.Select((l, i) => l.StartsWith(ExampleNameHeader) ? i : -1).Where(i => i != -1).ToArray(); + //https://codereview.stackexchange.com/a/187148/68772 + var indexCountGroups = nameIndices.Skip(1).Append(lines.Length).Zip(nameIndices, (next, current) => (NameIndex: current, LineCount: next - current)); + var exampleGroups = indexCountGroups.Select(icg => lines.Skip(icg.NameIndex).Take(icg.LineCount).ToArray()); + return exampleGroups.Select(eg => + { + var name = eg.First().Replace(ExampleNameHeader, String.Empty); + var codeStartIndex = eg.Select((l, i) => l.StartsWith(ExampleCodeHeader) ? (int?)i : null).FirstOrDefault(i => i.HasValue); + var codeEndIndex = eg.Select((l, i) => l.StartsWith(ExampleCodeFooter) ? (int?)i : null).FirstOrDefault(i => i.HasValue && i != codeStartIndex); + var code = codeStartIndex.HasValue && codeEndIndex.HasValue + ? String.Join(Environment.NewLine, eg.Skip(codeStartIndex.Value + 1).Take(codeEndIndex.Value - (codeStartIndex.Value + 1))) + : String.Empty; + var outputStartIndex = eg.Select((l, i) => l.StartsWith(ExampleOutputHeader) ? (int?)i : null).FirstOrDefault(i => i.HasValue); + var outputEndIndex = eg.Select((l, i) => l.StartsWith(ExampleOutputFooter) ? (int?)i : null).FirstOrDefault(i => i.HasValue && i > outputStartIndex); + var output = outputStartIndex.HasValue && outputEndIndex.HasValue + ? String.Join(Environment.NewLine, eg.Skip(outputStartIndex.Value + 1).Take(outputEndIndex.Value - (outputStartIndex.Value + 1))) + : String.Empty; + var descriptionStartIndex = (outputEndIndex ?? (codeEndIndex ?? 0)) + 1; + descriptionStartIndex = String.IsNullOrWhiteSpace(eg[descriptionStartIndex]) ? descriptionStartIndex + 1 : descriptionStartIndex; + var descriptionEndIndex = eg.Length - 1; + descriptionEndIndex = String.IsNullOrWhiteSpace(eg[descriptionEndIndex]) ? descriptionEndIndex - 1 : descriptionEndIndex; + var description = String.Join(Environment.NewLine, eg.Skip(descriptionStartIndex).Take((descriptionEndIndex + 1) - descriptionStartIndex)); + return new MarkdownExampleHelpInfo(name, code, output, description); + }).ToArray(); + } + } + + internal class MarkdownSyntaxHelpInfo + { + public Variant Variant { get; } + public bool IsDefault { get; } + public string ParameterSetName { get; } + public Parameter[] Parameters { get; } + public string SyntaxText { get; } + + public MarkdownSyntaxHelpInfo(Variant variant, ParameterGroup[] parameterGroups, bool isDefault) + { + Variant = variant; + IsDefault = isDefault; + ParameterSetName = Variant.VariantName; + Parameters = Variant.Parameters + .Where(p => !p.DontShow && !p.IsHidden()).OrderByDescending(p => p.IsMandatory) + //https://stackoverflow.com/a/6461526/294804 + .ThenByDescending(p => p.Position.HasValue).ThenBy(p => p.Position) + // Use the OrderCategory of the parameter group because the final order category is the highest of the group, and not the order category of the individual parameters from the variants. + .ThenBy(p => parameterGroups.First(pg => pg.ParameterName == p.ParameterName).OrderCategory).ThenBy(p => p.ParameterName).ToArray(); + SyntaxText = CreateSyntaxFormat(); + } + + //https://github.com/PowerShell/platyPS/blob/a607a926bfffe1e1a1e53c19e0057eddd0c07611/src/Markdown.MAML/Renderer/Markdownv2Renderer.cs#L29-L32 + private const int SyntaxLineWidth = 110; + private string CreateSyntaxFormat() + { + var parameterStrings = Parameters.Select(p => p.ToPropertySyntaxOutput().ToString()); + if (Variant.SupportsShouldProcess) + { + parameterStrings = parameterStrings.Append(" [-Confirm]").Append(" [-WhatIf]"); + } + parameterStrings = parameterStrings.Append(" []"); + + var lines = new List(20); + return parameterStrings.Aggregate(Variant.CmdletName, (current, ps) => + { + var combined = current + ps; + if (combined.Length <= SyntaxLineWidth) return combined; + + lines.Add(current); + return ps; + }, last => + { + lines.Add(last); + return String.Join(Environment.NewLine, lines); + }); + } + } + + internal class MarkdownExampleHelpInfo + { + public string Name { get; } + public string Code { get; } + public string Output { get; } + public string Description { get; } + + public MarkdownExampleHelpInfo(string name, string code, string output, string description) + { + Name = name; + Code = code; + Output = output; + Description = description; + } + } + + internal class MarkdownParameterHelpInfo + { + public string Name { get; set; } + public string Description { get; set; } + public Type Type { get; set; } + public string Position { get; set; } + public string DefaultValue { get; set; } + + public bool HasAllParameterSets { get; set; } + public string[] ParameterSetNames { get; set; } + public string[] Aliases { get; set; } + + public bool IsRequired { get; set; } + public bool IsDynamic { get; set; } + public bool AcceptsPipelineByValue { get; set; } + public bool AcceptsPipelineByPropertyName { get; set; } + public bool AcceptsWildcardCharacters { get; set; } + + // For use by common parameters that have no backing data in the objects themselves. + public MarkdownParameterHelpInfo() { } + + public MarkdownParameterHelpInfo(PsParameterHelpInfo[] parameterHelpInfos, ParameterGroup parameterGroup) + { + Name = parameterGroup.ParameterName; + Description = parameterGroup.Description.NullIfEmpty() + ?? parameterHelpInfos.Select(phi => phi.Description).FirstOrDefault(d => !String.IsNullOrEmpty(d)).EmptyIfNull(); + Type = parameterGroup.ParameterType; + Position = parameterGroup.FirstPosition?.ToString() + ?? parameterHelpInfos.Select(phi => phi.PositionText).FirstOrDefault(d => !String.IsNullOrEmpty(d)).ToUpperFirstCharacter().NullIfEmpty() + ?? "Named"; + // This no longer uses firstHelpInfo.DefaultValueAsString since it seems to be broken. For example, it has a value of 0 for Int32, but no default value was declared. + DefaultValue = parameterGroup.DefaultInfo?.Script ?? "None"; + + HasAllParameterSets = parameterGroup.HasAllVariants; + ParameterSetNames = (parameterGroup.Parameters.Select(p => p.VariantName).ToArray().NullIfEmpty() + ?? parameterHelpInfos.SelectMany(phi => phi.ParameterSetNames).Distinct()) + .OrderBy(psn => psn).ToArray(); + Aliases = parameterGroup.Aliases.NullIfEmpty() ?? parameterHelpInfos.SelectMany(phi => phi.Aliases).ToArray(); + + IsRequired = parameterHelpInfos.Select(phi => phi.IsRequired).FirstOrDefault(r => r == true) ?? parameterGroup.Parameters.Any(p => p.IsMandatory); + IsDynamic = parameterHelpInfos.Select(phi => phi.IsDynamic).FirstOrDefault(d => d == true) ?? false; + AcceptsPipelineByValue = parameterHelpInfos.Select(phi => phi.SupportsPipelineInput?.Contains("ByValue")).FirstOrDefault(bv => bv == true) ?? parameterGroup.ValueFromPipeline; + AcceptsPipelineByPropertyName = parameterHelpInfos.Select(phi => phi.SupportsPipelineInput?.Contains("ByPropertyName")).FirstOrDefault(bv => bv == true) ?? parameterGroup.ValueFromPipelineByPropertyName; + AcceptsWildcardCharacters = parameterGroup.SupportsWildcards; + } + } + + internal static class MarkdownTypesExtensions + { + public static MarkdownExampleHelpInfo ToExampleHelpInfo(this PsHelpExampleInfo exampleInfo) => new MarkdownExampleHelpInfo(exampleInfo.Title, exampleInfo.Code, exampleInfo.Output, exampleInfo.Remarks); + + public static MarkdownExampleHelpInfo[] DefaultExampleHelpInfos = + { + new MarkdownExampleHelpInfo("Example 1: {{ Add title here }}", $@"{{{{ Add code here }}}}", $@"{{{{ Add output here }}}}", @"{{ Add description here }}"), + new MarkdownExampleHelpInfo("Example 2: {{ Add title here }}", $@"{{{{ Add code here }}}}", $@"{{{{ Add output here }}}}", @"{{ Add description here }}"), + }; + + public static MarkdownParameterHelpInfo[] SupportsShouldProcessParameters = + { + new MarkdownParameterHelpInfo + { + Name = "Confirm", + Description ="Prompts you for confirmation before running the cmdlet.", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new [] { "cf" } + }, + new MarkdownParameterHelpInfo + { + Name = "WhatIf", + Description ="Shows what would happen if the cmdlet runs. The cmdlet is not run.", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new [] { "wi" } + } + }; + + public static MarkdownParameterHelpInfo[] SupportsPagingParameters = + { + new MarkdownParameterHelpInfo + { + Name = "First", + Description ="Gets only the first 'n' objects.", + Type = typeof(ulong), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + }, + new MarkdownParameterHelpInfo + { + Name = "IncludeTotalCount", + Description ="Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns \"Unknown total count\".", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + }, + new MarkdownParameterHelpInfo + { + Name = "Skip", + Description ="Ignores the first 'n' objects and then gets the remaining objects.", + Type = typeof(ulong), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + } + }; + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsProxyOutputs.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsProxyOutputs.cs new file mode 100644 index 000000000000..ea5849c071b9 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsProxyOutputs.cs @@ -0,0 +1,611 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Text.RegularExpressions; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsProxyTypeExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal class OutputTypeOutput + { + public PSTypeName[] OutputTypes { get; } + + public OutputTypeOutput(IEnumerable outputTypes) + { + OutputTypes = outputTypes.ToArray(); + } + + public override string ToString() => OutputTypes != null && OutputTypes.Any() ? $"[OutputType({OutputTypes.Select(ot => $"[{ot}]").JoinIgnoreEmpty(ItemSeparator)})]{Environment.NewLine}" : String.Empty; + } + + internal class CmdletBindingOutput + { + public VariantGroup VariantGroup { get; } + + public CmdletBindingOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + } + + public override string ToString() + { + var dpsText = VariantGroup.DefaultParameterSetName.IsValidDefaultParameterSetName() ? $"DefaultParameterSetName='{VariantGroup.DefaultParameterSetName}'" : String.Empty; + var sspText = VariantGroup.SupportsShouldProcess ? $"SupportsShouldProcess{ItemSeparator}ConfirmImpact='Medium'" : String.Empty; + var pbText = $"PositionalBinding={false.ToPsBool()}"; + var propertyText = new[] { dpsText, pbText, sspText }.JoinIgnoreEmpty(ItemSeparator); + return $"[CmdletBinding({propertyText})]{Environment.NewLine}"; + } + } + + internal class ParameterOutput + { + public Parameter Parameter { get; } + public bool HasMultipleVariantsInVariantGroup { get; } + public bool HasAllVariantsInParameterGroup { get; } + + public ParameterOutput(Parameter parameter, bool hasMultipleVariantsInVariantGroup, bool hasAllVariantsInParameterGroup) + { + Parameter = parameter; + HasMultipleVariantsInVariantGroup = hasMultipleVariantsInVariantGroup; + HasAllVariantsInParameterGroup = hasAllVariantsInParameterGroup; + } + + public override string ToString() + { + var psnText = HasMultipleVariantsInVariantGroup && !HasAllVariantsInParameterGroup ? $"ParameterSetName='{Parameter.VariantName}'" : String.Empty; + var positionText = Parameter.Position != null ? $"Position={Parameter.Position}" : String.Empty; + var mandatoryText = Parameter.IsMandatory ? "Mandatory" : String.Empty; + var dontShowText = Parameter.DontShow ? "DontShow" : String.Empty; + var vfpText = Parameter.ValueFromPipeline ? "ValueFromPipeline" : String.Empty; + var vfpbpnText = Parameter.ValueFromPipelineByPropertyName ? "ValueFromPipelineByPropertyName" : String.Empty; + var propertyText = new[] { psnText, positionText, mandatoryText, dontShowText, vfpText, vfpbpnText }.JoinIgnoreEmpty(ItemSeparator); + return $"{Indent}[Parameter({propertyText})]{Environment.NewLine}"; + } + } + + internal class AliasOutput + { + public string[] Aliases { get; } + public bool IncludeIndent { get; } + + public AliasOutput(string[] aliases, bool includeIndent = false) + { + Aliases = aliases; + IncludeIndent = includeIndent; + } + + public override string ToString() => Aliases?.Any() ?? false ? $"{(IncludeIndent ? Indent : String.Empty)}[Alias({Aliases.Select(an => $"'{an}'").JoinIgnoreEmpty(ItemSeparator)})]{Environment.NewLine}" : String.Empty; + } + + internal class ValidateNotNullOutput + { + public bool HasValidateNotNull { get; } + + public ValidateNotNullOutput(bool hasValidateNotNull) + { + HasValidateNotNull = hasValidateNotNull; + } + + public override string ToString() => HasValidateNotNull ? $"{Indent}[ValidateNotNull()]{Environment.NewLine}" : String.Empty; + } + + internal class AllowEmptyArrayOutput + { + public bool HasAllowEmptyArray { get; } + + public AllowEmptyArrayOutput(bool hasAllowEmptyArray) + { + HasAllowEmptyArray = hasAllowEmptyArray; + } + + public override string ToString() => HasAllowEmptyArray ? $"{Indent}[AllowEmptyCollection()]{Environment.NewLine}" : String.Empty; + } + internal class ArgumentCompleterOutput + { + public CompleterInfo CompleterInfo { get; } + + public ArgumentCompleterOutput(CompleterInfo completerInfo) + { + CompleterInfo = completerInfo; + } + + public override string ToString() => CompleterInfo != null + ? $"{Indent}[ArgumentCompleter({(CompleterInfo.IsTypeCompleter ? $"[{CompleterInfo.Type.Unwrap().ToPsType()}]" : $"{{{CompleterInfo.Script.ToPsSingleLine("; ")}}}")})]{Environment.NewLine}" + : String.Empty; + } + + internal class DefaultInfoOutput + { + public bool HasDefaultInfo { get; } + public DefaultInfo DefaultInfo { get; } + + public DefaultInfoOutput(ParameterGroup parameterGroup) + { + HasDefaultInfo = parameterGroup.HasDefaultInfo; + DefaultInfo = parameterGroup.DefaultInfo; + } + + public override string ToString() + { + var nameText = !String.IsNullOrEmpty(DefaultInfo?.Name) ? $"Name='{DefaultInfo?.Name}'" : String.Empty; + var descriptionText = !String.IsNullOrEmpty(DefaultInfo?.Description) ? $"Description='{DefaultInfo?.Description.ToPsStringLiteral()}'" : String.Empty; + var scriptText = !String.IsNullOrEmpty(DefaultInfo?.Script) ? $"Script='{DefaultInfo?.Script.ToPsSingleLine("; ")}'" : String.Empty; + var propertyText = new[] { nameText, descriptionText, scriptText }.JoinIgnoreEmpty(ItemSeparator); + return HasDefaultInfo ? $"{Indent}[{typeof(DefaultInfoAttribute).ToPsAttributeType()}({propertyText})]{Environment.NewLine}" : String.Empty; + } + } + + internal class ParameterTypeOutput + { + public Type ParameterType { get; } + + public ParameterTypeOutput(Type parameterType) + { + ParameterType = parameterType; + } + + public override string ToString() => $"{Indent}[{ParameterType.ToPsType()}]{Environment.NewLine}"; + } + + internal class ParameterNameOutput + { + public string ParameterName { get; } + public bool IsLast { get; } + + public ParameterNameOutput(string parameterName, bool isLast) + { + ParameterName = parameterName; + IsLast = isLast; + } + + public override string ToString() => $"{Indent}${{{ParameterName}}}{(IsLast ? String.Empty : $",{Environment.NewLine}")}{Environment.NewLine}"; + } + + internal class BaseOutput + { + public VariantGroup VariantGroup { get; } + + protected static readonly bool IsAzure = Convert.ToBoolean(@"true"); + public BaseOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + } + public string ClearTelemetryContext() + { + return (!VariantGroup.IsInternal && IsAzure) ? $@"{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext()" : ""; + } + } + + internal class BeginOutput : BaseOutput + { + public BeginOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + public string GetProcessCustomAttributesAtRuntime() + { + return VariantGroup.IsInternal ? "" : $@"{Indent}{Indent}$cmdInfo = Get-Command -Name $mapping[$parameterSet]{Environment.NewLine}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)"; + } + private string GetTelemetry() + { + if (!VariantGroup.IsInternal && IsAzure) + { + return $@" +{Indent}{Indent}if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) {{ +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Version.ToString() +{Indent}{Indent}}} +{Indent}{Indent}$preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId +{Indent}{Indent}if ($preTelemetryId -eq '') {{ +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() +{Indent}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) +{Indent}{Indent}}} else {{ +{Indent}{Indent}{Indent}$internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets +{Indent}{Indent}{Indent}if ($internalCalledCmdlets -eq '') {{ +{Indent}{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name +{Indent}{Indent}{Indent}}} else {{ +{Indent}{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name +{Indent}{Indent}{Indent}}} +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' +{Indent}{Indent}}} +"; + } + return ""; + } + public override string ToString() => $@"begin {{ +{Indent}try {{ +{Indent}{Indent}$outBuffer = $null +{Indent}{Indent}if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {{ +{Indent}{Indent}{Indent}$PSBoundParameters['OutBuffer'] = 1 +{Indent}{Indent}}} +{Indent}{Indent}$parameterSet = $PSCmdlet.ParameterSetName +{GetTelemetry()} +{GetParameterSetToCmdletMapping()}{GetDefaultValuesStatements()} +{GetProcessCustomAttributesAtRuntime()} +{Indent}{Indent}$wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) +{Indent}{Indent}$scriptCmd = {{& $wrappedCmd @PSBoundParameters}} +{Indent}{Indent}$steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) +{Indent}{Indent}$steppablePipeline.Begin($PSCmdlet) +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +}} + +"; + + private string GetParameterSetToCmdletMapping() + { + var sb = new StringBuilder(); + sb.AppendLine($"{Indent}{Indent}$mapping = @{{"); + foreach (var variant in VariantGroup.Variants) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}{variant.VariantName} = '{variant.PrivateModuleName}\{variant.PrivateCmdletName}';"); + } + sb.Append($"{Indent}{Indent}}}"); + return sb.ToString(); + } + + private string GetDefaultValuesStatements() + { + var defaultInfos = VariantGroup.ParameterGroups.Where(pg => pg.HasDefaultInfo).Select(pg => pg.DefaultInfo).ToArray(); + var sb = new StringBuilder(); + + foreach (var defaultInfo in defaultInfos) + { + var variantListString = defaultInfo.ParameterGroup.VariantNames.ToPsList(); + var parameterName = defaultInfo.ParameterGroup.ParameterName; + sb.AppendLine(); + sb.AppendLine($"{Indent}{Indent}if (({variantListString}) -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('{parameterName}')) {{"); + sb.AppendLine($"{Indent}{Indent}{Indent}$PSBoundParameters['{parameterName}'] = {defaultInfo.Script}"); + sb.Append($"{Indent}{Indent}}}"); + } + return sb.ToString(); + } + } + + internal class ProcessOutput : BaseOutput + { + public ProcessOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + private string GetFinally() + { + if (IsAzure && !VariantGroup.IsInternal) + { + return $@" +{Indent}finally {{ +{Indent}{Indent}$backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId +{Indent}{Indent}$backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() +{Indent}}} +"; + } + return ""; + } + public override string ToString() => $@"process {{ +{Indent}try {{ +{Indent}{Indent}$steppablePipeline.Process($_) +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +{GetFinally()} +}} +"; + } + + internal class EndOutput : BaseOutput + { + public EndOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + private string GetTelemetry() + { + if (!VariantGroup.IsInternal && IsAzure) + { + return $@" +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets +{Indent}{Indent}if ($preTelemetryId -eq '') {{ +{Indent}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() +{Indent}{Indent}}} +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId +"; + } + return ""; + } + public override string ToString() => $@"end {{ +{Indent}try {{ +{Indent}{Indent}$steppablePipeline.End() +{GetTelemetry()} +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +}} +"; + } + + internal class HelpCommentOutput + { + public VariantGroup VariantGroup { get; } + public CommentInfo CommentInfo { get; } + + public HelpCommentOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + CommentInfo = variantGroup.CommentInfo; + } + + public override string ToString() + { + var inputs = String.Join(Environment.NewLine, CommentInfo.Inputs.Select(i => $".Inputs{Environment.NewLine}{i}")); + var inputsText = !String.IsNullOrEmpty(inputs) ? $"{Environment.NewLine}{inputs}" : String.Empty; + var outputs = String.Join(Environment.NewLine, CommentInfo.Outputs.Select(o => $".Outputs{Environment.NewLine}{o}")); + var outputsText = !String.IsNullOrEmpty(outputs) ? $"{Environment.NewLine}{outputs}" : String.Empty; + var notes = String.Join($"{Environment.NewLine}{Environment.NewLine}", VariantGroup.ComplexInterfaceInfos.Select(cii => cii.ToNoteOutput())); + var notesText = !String.IsNullOrEmpty(notes) ? $"{Environment.NewLine}.Notes{Environment.NewLine}{ComplexParameterHeader}{notes}" : String.Empty; + var relatedLinks = String.Join(Environment.NewLine, CommentInfo.RelatedLinks.Select(l => $".Link{Environment.NewLine}{l}")); + var relatedLinksText = !String.IsNullOrEmpty(relatedLinks) ? $"{Environment.NewLine}{relatedLinks}" : String.Empty; + var examples = ""; + foreach (var example in VariantGroup.HelpInfo.Examples) + { + examples = examples + ".Example" + "\r\n" + example.Code + "\r\n"; + } + return $@"<# +.Synopsis +{CommentInfo.Synopsis.ToDescriptionFormat(false)} +.Description +{CommentInfo.Description.ToDescriptionFormat(false)} +{examples}{inputsText}{outputsText}{notesText} +.Link +{CommentInfo.OnlineVersion}{relatedLinksText} +#> +"; + } + } + + internal class ParameterDescriptionOutput + { + public string Description { get; } + + public ParameterDescriptionOutput(string description) + { + Description = description; + } + + public override string ToString() => !String.IsNullOrEmpty(Description) + ? Description.ToDescriptionFormat(false).NormalizeNewLines() + .Split(new[] { Environment.NewLine }, StringSplitOptions.None) + .Aggregate(String.Empty, (c, n) => c + $"{Indent}# {n}{Environment.NewLine}") + : String.Empty; + } + + internal class ProfileOutput + { + public string ProfileName { get; } + + public ProfileOutput(string profileName) + { + ProfileName = profileName; + } + + public override string ToString() => ProfileName != NoProfiles ? $"[{typeof(ProfileAttribute).ToPsAttributeType()}('{ProfileName}')]{Environment.NewLine}" : String.Empty; + } + + internal class DescriptionOutput + { + public string Description { get; } + + public DescriptionOutput(string description) + { + Description = description; + } + + public override string ToString() => !String.IsNullOrEmpty(Description) ? $"[{typeof(DescriptionAttribute).ToPsAttributeType()}('{Description.ToPsStringLiteral()}')]{Environment.NewLine}" : String.Empty; + } + + internal class ParameterCategoryOutput + { + public ParameterCategory Category { get; } + + public ParameterCategoryOutput(ParameterCategory category) + { + Category = category; + } + + public override string ToString() => $"{Indent}[{typeof(CategoryAttribute).ToPsAttributeType()}('{Category}')]{Environment.NewLine}"; + } + + internal class InfoOutput + { + public InfoAttribute Info { get; } + public Type ParameterType { get; } + + public InfoOutput(InfoAttribute info, Type parameterType) + { + Info = info; + ParameterType = parameterType; + } + + public override string ToString() + { + // Rendering of InfoAttribute members that are not used currently + /*var serializedNameText = Info.SerializedName != null ? $"SerializedName='{Info.SerializedName}'" : String.Empty; + var readOnlyText = Info.ReadOnly ? "ReadOnly" : String.Empty; + var descriptionText = !String.IsNullOrEmpty(Info.Description) ? $"Description='{Info.Description.ToPsStringLiteral()}'" : String.Empty;*/ + + var requiredText = Info.Required ? "Required" : String.Empty; + var unwrappedType = ParameterType.Unwrap(); + var hasValidPossibleTypes = Info.PossibleTypes.Any(pt => pt != unwrappedType); + var possibleTypesText = hasValidPossibleTypes + ? $"PossibleTypes=({Info.PossibleTypes.Select(pt => $"[{pt.ToPsType()}]").JoinIgnoreEmpty(ItemSeparator)})" + : String.Empty; + var propertyText = new[] { /*serializedNameText, */requiredText,/* readOnlyText,*/ possibleTypesText/*, descriptionText*/ }.JoinIgnoreEmpty(ItemSeparator); + return hasValidPossibleTypes ? $"{Indent}[{typeof(InfoAttribute).ToPsAttributeType()}({propertyText})]{Environment.NewLine}" : String.Empty; + } + } + + internal class PropertySyntaxOutput + { + public string ParameterName { get; } + public Type ParameterType { get; } + public bool IsMandatory { get; } + public int? Position { get; } + + public bool IncludeSpace { get; } + public bool IncludeDash { get; } + + public PropertySyntaxOutput(Parameter parameter) + { + ParameterName = parameter.ParameterName; + ParameterType = parameter.ParameterType; + IsMandatory = parameter.IsMandatory; + Position = parameter.Position; + IncludeSpace = true; + IncludeDash = true; + } + + public PropertySyntaxOutput(ComplexInterfaceInfo complexInterfaceInfo) + { + ParameterName = complexInterfaceInfo.Name; + ParameterType = complexInterfaceInfo.Type; + IsMandatory = complexInterfaceInfo.Required; + Position = null; + IncludeSpace = false; + IncludeDash = false; + } + + public override string ToString() + { + var leftOptional = !IsMandatory ? "[" : String.Empty; + var leftPositional = Position != null ? "[" : String.Empty; + var rightPositional = Position != null ? "]" : String.Empty; + var type = ParameterType != typeof(SwitchParameter) ? $" <{ParameterType.ToSyntaxTypeName()}>" : String.Empty; + var rightOptional = !IsMandatory ? "]" : String.Empty; + var space = IncludeSpace ? " " : String.Empty; + var dash = IncludeDash ? "-" : String.Empty; + return $"{space}{leftOptional}{leftPositional}{dash}{ParameterName}{rightPositional}{type}{rightOptional}"; + } + } + + internal static class PsProxyOutputExtensions + { + public const string NoParameters = "__NoParameters"; + + public const string AllParameterSets = "__AllParameterSets"; + + public const string HalfIndent = " "; + + public const string Indent = HalfIndent + HalfIndent; + + public const string ItemSeparator = ", "; + + public static readonly string ComplexParameterHeader = $"COMPLEX PARAMETER PROPERTIES{Environment.NewLine}{Environment.NewLine}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.{Environment.NewLine}{Environment.NewLine}"; + + public static string ToPsBool(this bool value) => $"${value.ToString().ToLowerInvariant()}"; + + public static string ToPsType(this Type type) + { + var regex = new Regex(@"^(.*)`{1}\d+(.*)$"); + var typeText = type.ToString(); + var match = regex.Match(typeText); + return match.Success ? $"{match.Groups[1]}{match.Groups[2]}" : typeText; + } + + public static string ToPsAttributeType(this Type type) => type.ToPsType().RemoveEnd("Attribute"); + + // https://stackoverflow.com/a/5284606/294804 + private static string RemoveEnd(this string text, string suffix) => text.EndsWith(suffix) ? text.Substring(0, text.Length - suffix.Length) : text; + + public static string ToPsSingleLine(this string value, string replacer = " ") => value.ReplaceNewLines(replacer, new[] { "
", "\r\n", "\n" }); + + public static string ToPsStringLiteral(this string value) => value?.Replace("'", "''").Replace("‘", "''").Replace("’", "''").ToPsSingleLine().Trim() ?? String.Empty; + + public static string JoinIgnoreEmpty(this IEnumerable values, string separator) => String.Join(separator, values?.Where(v => !String.IsNullOrEmpty(v))); + + // https://stackoverflow.com/a/41961738/294804 + public static string ToSyntaxTypeName(this Type type) + { + if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + return $"{type.GetGenericArguments().First().ToSyntaxTypeName()}?"; + } + + if (type.IsGenericType) + { + var genericTypes = String.Join(ItemSeparator, type.GetGenericArguments().Select(ToSyntaxTypeName)); + return $"{type.Name.Split('`').First()}<{genericTypes}>"; + } + + return type.Name; + } + + public static OutputTypeOutput ToOutputTypeOutput(this IEnumerable outputTypes) => new OutputTypeOutput(outputTypes); + + public static CmdletBindingOutput ToCmdletBindingOutput(this VariantGroup variantGroup) => new CmdletBindingOutput(variantGroup); + + public static ParameterOutput ToParameterOutput(this Parameter parameter, bool hasMultipleVariantsInVariantGroup, bool hasAllVariantsInParameterGroup) => new ParameterOutput(parameter, hasMultipleVariantsInVariantGroup, hasAllVariantsInParameterGroup); + + public static AliasOutput ToAliasOutput(this string[] aliases, bool includeIndent = false) => new AliasOutput(aliases, includeIndent); + + public static ValidateNotNullOutput ToValidateNotNullOutput(this bool hasValidateNotNull) => new ValidateNotNullOutput(hasValidateNotNull); + + public static AllowEmptyArrayOutput ToAllowEmptyArray(this bool hasAllowEmptyArray) => new AllowEmptyArrayOutput(hasAllowEmptyArray); + + public static ArgumentCompleterOutput ToArgumentCompleterOutput(this CompleterInfo completerInfo) => new ArgumentCompleterOutput(completerInfo); + + public static DefaultInfoOutput ToDefaultInfoOutput(this ParameterGroup parameterGroup) => new DefaultInfoOutput(parameterGroup); + + public static ParameterTypeOutput ToParameterTypeOutput(this Type parameterType) => new ParameterTypeOutput(parameterType); + + public static ParameterNameOutput ToParameterNameOutput(this string parameterName, bool isLast) => new ParameterNameOutput(parameterName, isLast); + + public static BeginOutput ToBeginOutput(this VariantGroup variantGroup) => new BeginOutput(variantGroup); + + public static ProcessOutput ToProcessOutput(this VariantGroup variantGroup) => new ProcessOutput(variantGroup); + + public static EndOutput ToEndOutput(this VariantGroup variantGroup) => new EndOutput(variantGroup); + + public static HelpCommentOutput ToHelpCommentOutput(this VariantGroup variantGroup) => new HelpCommentOutput(variantGroup); + + public static ParameterDescriptionOutput ToParameterDescriptionOutput(this string description) => new ParameterDescriptionOutput(description); + + public static ProfileOutput ToProfileOutput(this string profileName) => new ProfileOutput(profileName); + + public static DescriptionOutput ToDescriptionOutput(this string description) => new DescriptionOutput(description); + + public static ParameterCategoryOutput ToParameterCategoryOutput(this ParameterCategory category) => new ParameterCategoryOutput(category); + + public static PropertySyntaxOutput ToPropertySyntaxOutput(this Parameter parameter) => new PropertySyntaxOutput(parameter); + + public static PropertySyntaxOutput ToPropertySyntaxOutput(this ComplexInterfaceInfo complexInterfaceInfo) => new PropertySyntaxOutput(complexInterfaceInfo); + + public static InfoOutput ToInfoOutput(this InfoAttribute info, Type parameterType) => new InfoOutput(info, parameterType); + + public static string ToNoteOutput(this ComplexInterfaceInfo complexInterfaceInfo, string currentIndent = "", bool includeDashes = false, bool includeBackticks = false, bool isFirst = true) + { + string RenderProperty(ComplexInterfaceInfo info, string indent, bool dash, bool backtick) => + $"{indent}{(dash ? "- " : String.Empty)}{(backtick ? "`" : String.Empty)}{info.ToPropertySyntaxOutput()}{(backtick ? "`" : String.Empty)}: {info.Description}"; + + var nested = complexInterfaceInfo.NestedInfos.Select(ni => + { + var nestedIndent = $"{currentIndent}{HalfIndent}"; + return ni.IsComplexInterface + ? ni.ToNoteOutput(nestedIndent, includeDashes, includeBackticks, false) + : RenderProperty(ni, nestedIndent, includeDashes, includeBackticks); + }).Prepend(RenderProperty(complexInterfaceInfo, currentIndent, !isFirst && includeDashes, includeBackticks)); + return String.Join(Environment.NewLine, nested); + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsProxyTypes.cs b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsProxyTypes.cs new file mode 100644 index 000000000000..d547eb987bac --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/Models/PsProxyTypes.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell.PsProxyTypeExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal class ProfileGroup + { + public string ProfileName { get; } + public Variant[] Variants { get; } + public string ProfileFolder { get; } + + public ProfileGroup(Variant[] variants, string profileName = NoProfiles) + { + ProfileName = profileName; + Variants = variants; + ProfileFolder = ProfileName != NoProfiles ? ProfileName : String.Empty; + } + } + + internal class VariantGroup + { + public string ModuleName { get; } + + public string RootModuleName {get => @"";} + public string CmdletName { get; } + public string CmdletVerb { get; } + public string CmdletNoun { get; } + public string ProfileName { get; } + public Variant[] Variants { get; } + public ParameterGroup[] ParameterGroups { get; } + public ComplexInterfaceInfo[] ComplexInterfaceInfos { get; } + + public string[] Aliases { get; } + public PSTypeName[] OutputTypes { get; } + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + public string DefaultParameterSetName { get; } + public bool HasMultipleVariants { get; } + public PsHelpInfo HelpInfo { get; } + public bool IsGenerated { get; } + public bool IsInternal { get; } + + public string OutputFolder { get; } + public string FileName { get; } + public string FilePath { get; } + + public CommentInfo CommentInfo { get; } + + public VariantGroup(string moduleName, string cmdletName, Variant[] variants, string outputFolder, string profileName = NoProfiles, bool isTest = false, bool isInternal = false) + { + ModuleName = moduleName; + CmdletName = cmdletName; + var cmdletNameParts = CmdletName.Split('-'); + CmdletVerb = cmdletNameParts.First(); + CmdletNoun = cmdletNameParts.Last(); + ProfileName = profileName; + Variants = variants; + ParameterGroups = Variants.ToParameterGroups().OrderBy(pg => pg.OrderCategory).ThenByDescending(pg => pg.IsMandatory).ToArray(); + var aliasDuplicates = ParameterGroups.SelectMany(pg => pg.Aliases) + //https://stackoverflow.com/a/18547390/294804 + .GroupBy(a => a).Where(g => g.Count() > 1).Select(g => g.Key).ToArray(); + if (aliasDuplicates.Any()) + { + throw new ParsingMetadataException($"The alias(es) [{String.Join(", ", aliasDuplicates)}] are defined on multiple parameters for cmdlet '{CmdletName}', which is not supported."); + } + ComplexInterfaceInfos = ParameterGroups.Where(pg => !pg.DontShow && pg.IsComplexInterface).OrderBy(pg => pg.ParameterName).Select(pg => pg.ComplexInterfaceInfo).ToArray(); + + Aliases = Variants.SelectMany(v => v.Attributes).ToAliasNames().ToArray(); + OutputTypes = Variants.SelectMany(v => v.Info.OutputType).Where(ot => ot.Type != null).GroupBy(ot => ot.Type).Select(otg => otg.First()).ToArray(); + SupportsShouldProcess = Variants.Any(v => v.SupportsShouldProcess); + SupportsPaging = Variants.Any(v => v.SupportsPaging); + DefaultParameterSetName = DetermineDefaultParameterSetName(); + HasMultipleVariants = Variants.Length > 1; + HelpInfo = Variants.Select(v => v.HelpInfo).FirstOrDefault() ?? new PsHelpInfo(); + IsGenerated = Variants.All(v => v.Attributes.OfType().Any()); + IsInternal = isInternal; + + OutputFolder = outputFolder; + FileName = $"{CmdletName}{(isTest ? ".Tests" : String.Empty)}.ps1"; + FilePath = Path.Combine(OutputFolder, FileName); + + CommentInfo = new CommentInfo(this); + } + + private string DetermineDefaultParameterSetName() + { + var defaultParameterSet = Variants + .Select(v => v.Metadata.DefaultParameterSetName) + .LastOrDefault(dpsn => dpsn.IsValidDefaultParameterSetName()); + + if (String.IsNullOrEmpty(defaultParameterSet)) + { + var variantParamCountGroups = Variants + .Select(v => ( + variant: v.VariantName, + paramCount: v.CmdletOnlyParameters.Count(p => p.IsMandatory), + isSimple: v.CmdletOnlyParameters.Where(p => p.IsMandatory).All(p => p.ParameterType.IsPsSimple()))) + .GroupBy(vpc => vpc.isSimple) + .ToArray(); + var variantParameterCounts = (variantParamCountGroups.Any(g => g.Key) ? variantParamCountGroups.Where(g => g.Key) : variantParamCountGroups).SelectMany(g => g).ToArray(); + var smallestParameterCount = variantParameterCounts.Min(vpc => vpc.paramCount); + defaultParameterSet = variantParameterCounts.First(vpc => vpc.paramCount == smallestParameterCount).variant; + } + + return defaultParameterSet; + } + } + + internal class Variant + { + public string CmdletName { get; } + public string VariantName { get; } + public CommandInfo Info { get; } + public CommandMetadata Metadata { get; } + public PsHelpInfo HelpInfo { get; } + public bool HasParameterSets { get; } + public bool IsFunction { get; } + public string PrivateModuleName { get; } + public string PrivateCmdletName { get; } + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + + public Attribute[] Attributes { get; } + public Parameter[] Parameters { get; } + public Parameter[] CmdletOnlyParameters { get; } + public bool IsInternal { get; } + public bool IsDoNotExport { get; } + public string[] Profiles { get; } + + public Variant(string cmdletName, string variantName, CommandInfo info, CommandMetadata metadata, bool hasParameterSets = false, PsHelpInfo helpInfo = null) + { + CmdletName = cmdletName; + VariantName = variantName; + Info = info; + HelpInfo = helpInfo ?? new PsHelpInfo(); + Metadata = metadata; + HasParameterSets = hasParameterSets; + IsFunction = Info.CommandType == CommandTypes.Function; + PrivateModuleName = Info.Source; + PrivateCmdletName = Metadata.Name; + SupportsShouldProcess = Metadata.SupportsShouldProcess; + SupportsPaging = Metadata.SupportsPaging; + + Attributes = this.ToAttributes(); + Parameters = this.ToParameters().OrderBy(p => p.OrderCategory).ThenByDescending(p => p.IsMandatory).ToArray(); + IsInternal = Attributes.OfType().Any(); + IsDoNotExport = Attributes.OfType().Any(); + CmdletOnlyParameters = Parameters.Where(p => !p.Categories.Any(c => c == ParameterCategory.Azure || c == ParameterCategory.Runtime)).ToArray(); + Profiles = Attributes.OfType().SelectMany(pa => pa.Profiles).ToArray(); + } + } + + internal class ParameterGroup + { + public string ParameterName { get; } + public Parameter[] Parameters { get; } + + public string[] VariantNames { get; } + public string[] AllVariantNames { get; } + public bool HasAllVariants { get; } + public Type ParameterType { get; } + public string Description { get; } + + public string[] Aliases { get; } + public bool HasValidateNotNull { get; } + public bool HasAllowEmptyArray { get; } + public CompleterInfo CompleterInfo { get; } + public DefaultInfo DefaultInfo { get; } + public bool HasDefaultInfo { get; } + public ParameterCategory OrderCategory { get; } + public bool DontShow { get; } + public bool IsMandatory { get; } + public bool SupportsWildcards { get; } + public bool IsComplexInterface { get; } + public ComplexInterfaceInfo ComplexInterfaceInfo { get; } + public InfoAttribute InfoAttribute { get; } + + public int? FirstPosition { get; } + public bool ValueFromPipeline { get; } + public bool ValueFromPipelineByPropertyName { get; } + public bool IsInputType { get; } + + public ParameterGroup(string parameterName, Parameter[] parameters, string[] allVariantNames) + { + ParameterName = parameterName; + Parameters = parameters; + + VariantNames = Parameters.Select(p => p.VariantName).ToArray(); + AllVariantNames = allVariantNames; + HasAllVariants = VariantNames.Any(vn => vn == AllParameterSets) || !AllVariantNames.Except(VariantNames).Any(); + var types = Parameters.Select(p => p.ParameterType).Distinct().ToArray(); + if (types.Length > 1) + { + throw new ParsingMetadataException($"The parameter '{ParameterName}' has multiple parameter types [{String.Join(", ", types.Select(t => t.Name))}] defined, which is not supported."); + } + ParameterType = types.First(); + Description = Parameters.Select(p => p.Description).FirstOrDefault(d => !String.IsNullOrEmpty(d)).EmptyIfNull(); + + Aliases = Parameters.SelectMany(p => p.Attributes).ToAliasNames().ToArray(); + HasValidateNotNull = Parameters.SelectMany(p => p.Attributes.OfType()).Any(); + HasAllowEmptyArray = Parameters.SelectMany(p => p.Attributes.OfType()).Any(); + CompleterInfo = Parameters.Select(p => p.CompleterInfoAttribute).FirstOrDefault()?.ToCompleterInfo() + ?? Parameters.Select(p => p.ArgumentCompleterAttribute).FirstOrDefault()?.ToCompleterInfo(); + DefaultInfo = Parameters.Select(p => p.DefaultInfoAttribute).FirstOrDefault()?.ToDefaultInfo(this) + ?? Parameters.Select(p => p.DefaultValueAttribute).FirstOrDefault(dv => dv != null)?.ToDefaultInfo(this); + HasDefaultInfo = DefaultInfo != null && !String.IsNullOrEmpty(DefaultInfo.Script); + // When DefaultInfo is present, force all parameters from this group to be optional. + if (HasDefaultInfo) + { + foreach (var parameter in Parameters) + { + parameter.IsMandatory = false; + } + } + OrderCategory = Parameters.Select(p => p.OrderCategory).Distinct().DefaultIfEmpty(ParameterCategory.Body).Min(); + DontShow = Parameters.All(p => p.DontShow); + IsMandatory = HasAllVariants && Parameters.Any(p => p.IsMandatory); + SupportsWildcards = Parameters.Any(p => p.SupportsWildcards); + IsComplexInterface = Parameters.Any(p => p.IsComplexInterface); + ComplexInterfaceInfo = Parameters.Where(p => p.IsComplexInterface).Select(p => p.ComplexInterfaceInfo).FirstOrDefault(); + InfoAttribute = Parameters.Select(p => p.InfoAttribute).First(); + + FirstPosition = Parameters.Select(p => p.Position).FirstOrDefault(p => p != null); + ValueFromPipeline = Parameters.Any(p => p.ValueFromPipeline); + ValueFromPipelineByPropertyName = Parameters.Any(p => p.ValueFromPipelineByPropertyName); + IsInputType = ValueFromPipeline || ValueFromPipelineByPropertyName; + } + } + + internal class Parameter + { + public string VariantName { get; } + public string ParameterName { get; } + public ParameterMetadata Metadata { get; } + public PsParameterHelpInfo HelpInfo { get; } + public Type ParameterType { get; } + + public Attribute[] Attributes { get; } + public ParameterCategory[] Categories { get; } + public ParameterCategory OrderCategory { get; } + public PSDefaultValueAttribute DefaultValueAttribute { get; } + public DefaultInfoAttribute DefaultInfoAttribute { get; } + public ParameterAttribute ParameterAttribute { get; } + public bool SupportsWildcards { get; } + public CompleterInfoAttribute CompleterInfoAttribute { get; } + public ArgumentCompleterAttribute ArgumentCompleterAttribute { get; } + + public bool ValueFromPipeline { get; } + public bool ValueFromPipelineByPropertyName { get; } + public int? Position { get; } + public bool DontShow { get; } + public bool IsMandatory { get; set; } + + public InfoAttribute InfoAttribute { get; } + public ComplexInterfaceInfo ComplexInterfaceInfo { get; } + public bool IsComplexInterface { get; } + public string Description { get; } + + public Parameter(string variantName, string parameterName, ParameterMetadata metadata, PsParameterHelpInfo helpInfo = null) + { + VariantName = variantName; + ParameterName = parameterName; + Metadata = metadata; + HelpInfo = helpInfo ?? new PsParameterHelpInfo(); + + Attributes = Metadata.Attributes.ToArray(); + ParameterType = Attributes.OfType().FirstOrDefault()?.Type ?? Metadata.ParameterType; + Categories = Attributes.OfType().SelectMany(ca => ca.Categories).Distinct().ToArray(); + OrderCategory = Categories.DefaultIfEmpty(ParameterCategory.Body).Min(); + DefaultValueAttribute = Attributes.OfType().FirstOrDefault(); + DefaultInfoAttribute = Attributes.OfType().FirstOrDefault(); + ParameterAttribute = Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == VariantName || pa.ParameterSetName == AllParameterSets); + if (ParameterAttribute == null) + { + throw new ParsingMetadataException($"The variant '{VariantName}' has multiple parameter sets defined, which is not supported."); + } + SupportsWildcards = Attributes.OfType().Any(); + CompleterInfoAttribute = Attributes.OfType().FirstOrDefault(); + ArgumentCompleterAttribute = Attributes.OfType().FirstOrDefault(); + + ValueFromPipeline = ParameterAttribute.ValueFromPipeline; + ValueFromPipelineByPropertyName = ParameterAttribute.ValueFromPipelineByPropertyName; + Position = ParameterAttribute.Position == Int32.MinValue ? (int?)null : ParameterAttribute.Position; + DontShow = ParameterAttribute.DontShow; + IsMandatory = ParameterAttribute.Mandatory; + + var complexParameterName = ParameterName.ToUpperInvariant(); + var complexMessage = $"{Environment.NewLine}To construct, see NOTES section for {complexParameterName} properties and create a hash table."; + var description = ParameterAttribute.HelpMessage.NullIfEmpty() ?? HelpInfo.Description.NullIfEmpty() ?? InfoAttribute?.Description.NullIfEmpty() ?? String.Empty; + // Remove the complex type message as it will be reinserted if this is a complex type + description = description.NormalizeNewLines().Replace(complexMessage, String.Empty).Replace(complexMessage.ToPsSingleLine(), String.Empty); + // Make an InfoAttribute for processing only if one isn't provided + InfoAttribute = Attributes.OfType().FirstOrDefault() ?? new InfoAttribute { PossibleTypes = new[] { ParameterType.Unwrap() }, Required = IsMandatory }; + // Set the description if the InfoAttribute does not have one since they are exported without a description + InfoAttribute.Description = String.IsNullOrEmpty(InfoAttribute.Description) ? description : InfoAttribute.Description; + ComplexInterfaceInfo = InfoAttribute.ToComplexInterfaceInfo(complexParameterName, ParameterType, true); + IsComplexInterface = ComplexInterfaceInfo.IsComplexInterface; + Description = $"{description}{(IsComplexInterface ? complexMessage : String.Empty)}"; + } + } + + internal class ComplexInterfaceInfo + { + public InfoAttribute InfoAttribute { get; } + + public string Name { get; } + public Type Type { get; } + public bool Required { get; } + public bool ReadOnly { get; } + public string Description { get; } + + public ComplexInterfaceInfo[] NestedInfos { get; } + public bool IsComplexInterface { get; } + + public ComplexInterfaceInfo(string name, Type type, InfoAttribute infoAttribute, bool? required, List seenTypes) + { + Name = name; + Type = type; + InfoAttribute = infoAttribute; + + Required = required ?? InfoAttribute.Required; + ReadOnly = InfoAttribute.ReadOnly; + Description = InfoAttribute.Description.ToPsSingleLine(); + + var unwrappedType = Type.Unwrap(); + var hasBeenSeen = seenTypes?.Contains(unwrappedType) ?? false; + (seenTypes ?? (seenTypes = new List())).Add(unwrappedType); + NestedInfos = hasBeenSeen ? new ComplexInterfaceInfo[]{} : + unwrappedType.GetInterfaces() + .Concat(InfoAttribute.PossibleTypes) + .SelectMany(pt => pt.GetProperties() + .SelectMany(pi => pi.GetCustomAttributes(true).OfType() + .Select(ia => ia.ToComplexInterfaceInfo(pi.Name, pi.PropertyType, seenTypes: seenTypes)))) + .Where(cii => !cii.ReadOnly).OrderByDescending(cii => cii.Required).ToArray(); + // https://stackoverflow.com/a/503359/294804 + var associativeArrayInnerType = Type.GetInterfaces() + .FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IAssociativeArray<>)) + ?.GetTypeInfo().GetGenericArguments().First(); + if (!hasBeenSeen && associativeArrayInnerType != null) + { + var anyInfo = new InfoAttribute { Description = "This indicates any property can be added to this object." }; + NestedInfos = NestedInfos.Prepend(anyInfo.ToComplexInterfaceInfo("(Any)", associativeArrayInnerType)).ToArray(); + } + IsComplexInterface = NestedInfos.Any(); + } + } + + internal class CommentInfo + { + public string Description { get; } + public string Synopsis { get; } + + public string[] Examples { get; } + public string[] Inputs { get; } + public string[] Outputs { get; } + + public string OnlineVersion { get; } + public string[] RelatedLinks { get; } + + private const string HelpLinkPrefix = @"https://docs.microsoft.com/en-us/powershell/module/"; + + public CommentInfo(VariantGroup variantGroup) + { + var helpInfo = variantGroup.HelpInfo; + Description = variantGroup.Variants.SelectMany(v => v.Attributes).OfType().FirstOrDefault()?.Description.NullIfEmpty() + ?? helpInfo.Description.EmptyIfNull(); + // If there is no Synopsis, PowerShell may put in the Syntax string as the Synopsis. This seems unintended, so we remove the Synopsis in this situation. + var synopsis = helpInfo.Synopsis.EmptyIfNull().Trim().StartsWith(variantGroup.CmdletName) ? String.Empty : helpInfo.Synopsis; + Synopsis = synopsis.NullIfEmpty() ?? Description; + + Examples = helpInfo.Examples.Select(rl => rl.Code).ToArray(); + + Inputs = (variantGroup.ParameterGroups.Where(pg => pg.IsInputType).Select(pg => pg.ParameterType.FullName).ToArray().NullIfEmpty() ?? + helpInfo.InputTypes.Where(it => it.Name.NullIfWhiteSpace() != null).Select(it => it.Name).ToArray()) + .Where(i => i != "None").Distinct().OrderBy(i => i).ToArray(); + Outputs = (variantGroup.OutputTypes.Select(ot => ot.Type.FullName).ToArray().NullIfEmpty() ?? + helpInfo.OutputTypes.Where(it => it.Name.NullIfWhiteSpace() != null).Select(ot => ot.Name).ToArray()) + .Where(o => o != "None").Distinct().OrderBy(o => o).ToArray(); + + // Use root module name in the help link + var moduleName = variantGroup.RootModuleName == "" ? variantGroup.ModuleName.ToLowerInvariant() : variantGroup.RootModuleName.ToLowerInvariant(); + OnlineVersion = helpInfo.OnlineVersion?.Uri.NullIfEmpty() ?? $@"{HelpLinkPrefix}{moduleName}/{variantGroup.CmdletName.ToLowerInvariant()}"; + RelatedLinks = helpInfo.RelatedLinks.Select(rl => rl.Text).ToArray(); + } + } + + internal class CompleterInfo + { + public string Name { get; } + public string Description { get; } + public string Script { get; } + public Type Type { get; } + public bool IsTypeCompleter { get; } + + public CompleterInfo(CompleterInfoAttribute infoAttribute) + { + Name = infoAttribute.Name; + Description = infoAttribute.Description; + Script = infoAttribute.Script; + } + + public CompleterInfo(ArgumentCompleterAttribute completerAttribute) + { + Script = completerAttribute.ScriptBlock?.ToString(); + if (completerAttribute.Type != null) + { + Type = completerAttribute.Type; + IsTypeCompleter = true; + } + } + } + + internal class DefaultInfo + { + public string Name { get; } + public string Description { get; } + public string Script { get; } + public ParameterGroup ParameterGroup { get; } + + public DefaultInfo(DefaultInfoAttribute infoAttribute, ParameterGroup parameterGroup) + { + Name = infoAttribute.Name; + Description = infoAttribute.Description; + Script = infoAttribute.Script; + ParameterGroup = parameterGroup; + } + + public DefaultInfo(PSDefaultValueAttribute defaultValueAttribute, ParameterGroup parameterGroup) + { + Description = defaultValueAttribute.Help; + ParameterGroup = parameterGroup; + if (defaultValueAttribute.Value != null) + { + Script = defaultValueAttribute.Value.ToString(); + } + } + } + + internal static class PsProxyTypeExtensions + { + public const string NoProfiles = "__NoProfiles"; + + public static bool IsValidDefaultParameterSetName(this string parameterSetName) => + !String.IsNullOrEmpty(parameterSetName) && parameterSetName != AllParameterSets; + + public static Variant[] ToVariants(this CommandInfo info, PsHelpInfo helpInfo) + { + var metadata = new CommandMetadata(info); + var privateCmdletName = metadata.Name.Split('!').First(); + var parts = privateCmdletName.Split('_'); + return parts.Length > 1 + ? new[] { new Variant(parts[0], parts[1], info, metadata, helpInfo: helpInfo) } + // Process multiple parameter sets, so we declare a variant per parameter set. + : info.ParameterSets.Select(ps => new Variant(privateCmdletName, ps.Name, info, metadata, true, helpInfo)).ToArray(); + } + + public static Variant[] ToVariants(this CmdletAndHelpInfo info) => info.CommandInfo.ToVariants(info.HelpInfo); + + public static Variant[] ToVariants(this CommandInfo info, PSObject helpInfo = null) => info.ToVariants(helpInfo?.ToPsHelpInfo()); + + public static Parameter[] ToParameters(this Variant variant) + { + var parameters = variant.Metadata.Parameters.AsEnumerable(); + var parameterHelp = variant.HelpInfo.Parameters.AsEnumerable(); + + if (variant.HasParameterSets) + { + parameters = parameters.Where(p => p.Value.ParameterSets.Keys.Any(k => k == variant.VariantName || k == AllParameterSets)); + parameterHelp = parameterHelp.Where(ph => (!ph.ParameterSetNames.Any() || ph.ParameterSetNames.Any(psn => psn == variant.VariantName || psn == AllParameterSets)) && ph.Name != "IncludeTotalCount"); + } + var result = parameters.Select(p => new Parameter(variant.VariantName, p.Key, p.Value, parameterHelp.FirstOrDefault(ph => ph.Name == p.Key))); + if (variant.SupportsPaging) { + // If supportsPaging is set, we will need to add First and Skip parameters since they are treated as common parameters which as not contained on Metadata>parameters + variant.Info.Parameters["First"].Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == variant.VariantName || pa.ParameterSetName == AllParameterSets).HelpMessage = "Gets only the first 'n' objects."; + variant.Info.Parameters["Skip"].Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == variant.VariantName || pa.ParameterSetName == AllParameterSets).HelpMessage = "Ignores the first 'n' objects and then gets the remaining objects."; + result = result.Append(new Parameter(variant.VariantName, "First", variant.Info.Parameters["First"], parameterHelp.FirstOrDefault(ph => ph.Name == "First"))); + result = result.Append(new Parameter(variant.VariantName, "Skip", variant.Info.Parameters["Skip"], parameterHelp.FirstOrDefault(ph => ph.Name == "Skip"))); + } + return result.ToArray(); + } + + public static Attribute[] ToAttributes(this Variant variant) => variant.IsFunction + ? ((FunctionInfo)variant.Info).ScriptBlock.Attributes.ToArray() + : variant.Metadata.CommandType.GetCustomAttributes(false).Cast().ToArray(); + + public static IEnumerable ToParameterGroups(this Variant[] variants) + { + var allVariantNames = variants.Select(vg => vg.VariantName).ToArray(); + return variants + .SelectMany(v => v.Parameters) + .GroupBy(p => p.ParameterName, StringComparer.InvariantCultureIgnoreCase) + .Select(pg => new ParameterGroup(pg.Key, pg.Select(p => p).ToArray(), allVariantNames)); + } + + public static ComplexInterfaceInfo ToComplexInterfaceInfo(this InfoAttribute infoAttribute, string name, Type type, bool? required = null, List seenTypes = null) + => new ComplexInterfaceInfo(name, type, infoAttribute, required, seenTypes); + + public static CompleterInfo ToCompleterInfo(this CompleterInfoAttribute infoAttribute) => new CompleterInfo(infoAttribute); + public static CompleterInfo ToCompleterInfo(this ArgumentCompleterAttribute completerAttribute) => new CompleterInfo(completerAttribute); + + public static DefaultInfo ToDefaultInfo(this DefaultInfoAttribute infoAttribute, ParameterGroup parameterGroup) => new DefaultInfo(infoAttribute, parameterGroup); + public static DefaultInfo ToDefaultInfo(this PSDefaultValueAttribute defaultValueAttribute, ParameterGroup parameterGroup) => new DefaultInfo(defaultValueAttribute, parameterGroup); + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/PsAttributes.cs b/swaggerci/appplatform/generated/runtime/BuildTime/PsAttributes.cs new file mode 100644 index 000000000000..32ed9913ab5c --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/PsAttributes.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform +{ + [AttributeUsage(AttributeTargets.Class)] + public class DescriptionAttribute : Attribute + { + public string Description { get; } + + public DescriptionAttribute(string description) + { + Description = description; + } + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)] + public class DoNotExportAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class InternalExportAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class GeneratedAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)] + public class DoNotFormatAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class ProfileAttribute : Attribute + { + public string[] Profiles { get; } + + public ProfileAttribute(params string[] profiles) + { + Profiles = profiles; + } + } + + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public class CategoryAttribute : Attribute + { + public ParameterCategory[] Categories { get; } + + public CategoryAttribute(params ParameterCategory[] categories) + { + Categories = categories; + } + } + + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public class ExportAsAttribute : Attribute + { + public Type Type { get; set; } + + public ExportAsAttribute(Type type) + { + Type = type; + } + } + + public enum ParameterCategory + { + // Note: Order is significant + Uri = 0, + Path, + Query, + Header, + Cookie, + Body, + Azure, + Runtime + } + + [AttributeUsage(AttributeTargets.Property)] + public class OriginAttribute : Attribute + { + public PropertyOrigin Origin { get; } + + public OriginAttribute(PropertyOrigin origin) + { + Origin = origin; + } + } + + public enum PropertyOrigin + { + // Note: Order is significant + Inherited = 0, + Owned, + Inlined + } + + [AttributeUsage(AttributeTargets.Property)] + public class FormatTableAttribute : Attribute + { + public int Index { get; set; } = -1; + public bool HasIndex => Index != -1; + public string Label { get; set; } + public int Width { get; set; } = -1; + public bool HasWidth => Width != -1; + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/PsExtensions.cs b/swaggerci/appplatform/generated/runtime/BuildTime/PsExtensions.cs new file mode 100644 index 000000000000..879ecd96f991 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/PsExtensions.cs @@ -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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal static class PsExtensions + { + // https://stackoverflow.com/a/863944/294804 + // https://stackoverflow.com/a/4452598/294804 + // https://stackoverflow.com/a/28701974/294804 + // Note: This will unwrap nested collections, but we don't generate nested collections. + public static Type Unwrap(this Type type) + { + if (type.IsArray) + { + return type.GetElementType().Unwrap(); + } + + var typeInfo = type.GetTypeInfo(); + if (typeInfo.IsGenericType + && (typeInfo.GetGenericTypeDefinition() == typeof(Nullable<>) || typeof(IEnumerable<>).IsAssignableFrom(type))) + { + return typeInfo.GetGenericArguments().First().Unwrap(); + } + + return type; + } + + // https://stackoverflow.com/a/863944/294804 + private static bool IsSimple(this Type type) + { + var typeInfo = type.GetTypeInfo(); + return typeInfo.IsPrimitive + || typeInfo.IsEnum + || type == typeof(string) + || type == typeof(decimal); + } + + // https://stackoverflow.com/a/32025393/294804 + private static bool HasImplicitConversion(this Type baseType, Type targetType) => + baseType.GetMethods(BindingFlags.Public | BindingFlags.Static) + .Where(mi => mi.Name == "op_Implicit" && mi.ReturnType == targetType) + .Any(mi => mi.GetParameters().FirstOrDefault()?.ParameterType == baseType); + + public static bool IsPsSimple(this Type type) + { + var unwrappedType = type.Unwrap(); + return unwrappedType.IsSimple() + || unwrappedType == typeof(SwitchParameter) + || unwrappedType == typeof(Hashtable) + || unwrappedType == typeof(PSCredential) + || unwrappedType == typeof(ScriptBlock) + || unwrappedType == typeof(DateTime) + || unwrappedType == typeof(Uri) + || unwrappedType.HasImplicitConversion(typeof(string)); + } + + public static string ToPsList(this IEnumerable items) => String.Join(", ", items.Select(i => $"'{i}'")); + + public static IEnumerable ToAliasNames(this IEnumerable attributes) => attributes.OfType().SelectMany(aa => aa.AliasNames).Distinct(); + + public static bool IsArrayAndElementTypeIsT(this object item) + { + var itemType = item.GetType(); + var tType = typeof(T); + return itemType.IsArray && !tType.IsArray && tType.IsAssignableFrom(itemType.GetElementType()); + } + + public static bool IsTArrayAndElementTypeIsItem(this object item) + { + var itemType = item.GetType(); + var tType = typeof(T); + return !itemType.IsArray && tType.IsArray && (tType.GetElementType()?.IsAssignableFrom(itemType) ?? false); + } + + public static bool IsTypeOrArrayOfType(this object item) => item is T || item.IsArrayAndElementTypeIsT() || item.IsTArrayAndElementTypeIsItem(); + + public static T NormalizeArrayType(this object item) + { + if (item is T result) + { + return result; + } + + if (item.IsArrayAndElementTypeIsT()) + { + var array = (T[])Convert.ChangeType(item, typeof(T[])); + return array.FirstOrDefault(); + } + + if (item.IsTArrayAndElementTypeIsItem()) + { + var tType = typeof(T); + var array = Array.CreateInstance(tType.GetElementType(), 1); + array.SetValue(item, 0); + return (T)Convert.ChangeType(array, tType); + } + + return default(T); + } + + public static T GetNestedProperty(this PSObject psObject, params string[] names) => psObject.Properties.GetNestedProperty(names); + + public static T GetNestedProperty(this PSMemberInfoCollection properties, params string[] names) + { + var lastName = names.Last(); + var nestedProperties = names.Take(names.Length - 1).Aggregate(properties, (p, n) => p?.GetProperty(n)?.Properties); + return nestedProperties != null ? nestedProperties.GetProperty(lastName) : default(T); + } + + public static T GetProperty(this PSObject psObject, string name) => psObject.Properties.GetProperty(name); + + public static T GetProperty(this PSMemberInfoCollection properties, string name) + { + switch (properties[name]?.Value) + { + case PSObject psObject when psObject.BaseObject is PSCustomObject && psObject.ImmediateBaseObject.IsTypeOrArrayOfType(): + return psObject.ImmediateBaseObject.NormalizeArrayType(); + case PSObject psObject when psObject.BaseObject.IsTypeOrArrayOfType(): + return psObject.BaseObject.NormalizeArrayType(); + case object value when value.IsTypeOrArrayOfType(): + return value.NormalizeArrayType(); + default: + return default(T); + } + } + + public static IEnumerable RunScript(this PSCmdlet cmdlet, string script) + => PsHelpers.RunScript(cmdlet.InvokeCommand, script); + + public static void RunScript(this PSCmdlet cmdlet, string script) + => cmdlet.RunScript(script); + + public static IEnumerable RunScript(this EngineIntrinsics engineIntrinsics, string script) + => PsHelpers.RunScript(engineIntrinsics.InvokeCommand, script); + + public static void RunScript(this EngineIntrinsics engineIntrinsics, string script) + => engineIntrinsics.RunScript(script); + + public static IEnumerable RunScript(this PSCmdlet cmdlet, ScriptBlock block) + => PsHelpers.RunScript(cmdlet.InvokeCommand, block.ToString()); + + public static void RunScript(this PSCmdlet cmdlet, ScriptBlock block) + => cmdlet.RunScript(block.ToString()); + + public static IEnumerable RunScript(this EngineIntrinsics engineIntrinsics, ScriptBlock block) + => PsHelpers.RunScript(engineIntrinsics.InvokeCommand, block.ToString()); + + public static void RunScript(this EngineIntrinsics engineIntrinsics, ScriptBlock block) + => engineIntrinsics.RunScript(block.ToString()); + + /// + /// Returns if a parameter should be hidden by checking for . + /// + /// A PowerShell parameter. + public static bool IsHidden(this Parameter parameter) + { + return parameter.Attributes.Any(attr => attr is DoNotExportAttribute); + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/PsHelpers.cs b/swaggerci/appplatform/generated/runtime/BuildTime/PsHelpers.cs new file mode 100644 index 000000000000..ffc987470aed --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/PsHelpers.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using Pwsh = System.Management.Automation.PowerShell; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal static class PsHelpers + { + public static IEnumerable RunScript(string script) + => Pwsh.Create().AddScript(script).Invoke(); + + public static void RunScript(string script) + => RunScript(script); + + public static IEnumerable RunScript(CommandInvocationIntrinsics cii, string script) + => cii.InvokeScript(script).Select(o => o?.BaseObject).Where(o => o != null).OfType(); + + public static void RunScript(CommandInvocationIntrinsics cii, string script) + => RunScript(cii, script); + + public static IEnumerable GetModuleCmdlets(PSCmdlet cmdlet, params string[] modulePaths) + { + var getCmdletsCommand = String.Join(" + ", modulePaths.Select(mp => $"(Get-Command -Module (Import-Module '{mp}' -PassThru))")); + return (cmdlet?.RunScript(getCmdletsCommand) ?? RunScript(getCmdletsCommand)) + .Where(ci => ci.CommandType != CommandTypes.Alias); + } + + public static IEnumerable GetModuleCmdlets(params string[] modulePaths) + => GetModuleCmdlets(null, modulePaths); + + public static IEnumerable GetScriptCmdlets(PSCmdlet cmdlet, string scriptFolder) + { + // https://stackoverflow.com/a/40969712/294804 + var wrappedFolder = scriptFolder.Contains("'") ? $@"""{scriptFolder}""" : $@"'{scriptFolder}'"; + var getCmdletsCommand = $@" +$currentFunctions = Get-ChildItem function: +Get-ChildItem -Path {wrappedFolder} -Recurse -Include '*.ps1' -File | ForEach-Object {{ . $_.FullName }} +Get-ChildItem function: | Where-Object {{ ($currentFunctions -notcontains $_) -and $_.CmdletBinding }} +"; + return cmdlet?.RunScript(getCmdletsCommand) ?? RunScript(getCmdletsCommand); + } + + public static IEnumerable GetScriptCmdlets(string scriptFolder) + => GetScriptCmdlets(null, scriptFolder); + + public static IEnumerable GetScriptHelpInfo(PSCmdlet cmdlet, params string[] modulePaths) + { + var importModules = String.Join(Environment.NewLine, modulePaths.Select(mp => $"Import-Module '{mp}'")); + var getHelpCommand = $@" +$currentFunctions = Get-ChildItem function: +{importModules} +Get-ChildItem function: | Where-Object {{ ($currentFunctions -notcontains $_) -and $_.CmdletBinding }} | ForEach-Object {{ Get-Help -Name $_.Name -Full }} +"; + return cmdlet?.RunScript(getHelpCommand) ?? RunScript(getHelpCommand); + } + + public static IEnumerable GetScriptHelpInfo(params string[] modulePaths) + => GetScriptHelpInfo(null, modulePaths); + + public static IEnumerable GetModuleCmdletsAndHelpInfo(PSCmdlet cmdlet, params string[] modulePaths) + { + var getCmdletAndHelp = String.Join(" + ", modulePaths.Select(mp => + $@"(Get-Command -Module (Import-Module '{mp}' -PassThru) | Where-Object {{ $_.CommandType -ne 'Alias' }} | ForEach-Object {{ @{{ CommandInfo = $_; HelpInfo = ( invoke-command {{ try {{ Get-Help -Name $_.Name -Full }} catch{{ '' }} }} ) }} }})" + )); + return (cmdlet?.RunScript(getCmdletAndHelp) ?? RunScript(getCmdletAndHelp)) + .Select(h => new CmdletAndHelpInfo { CommandInfo = (h["CommandInfo"] as PSObject)?.BaseObject as CommandInfo, HelpInfo = h["HelpInfo"] as PSObject }); + } + + public static IEnumerable GetModuleCmdletsAndHelpInfo(params string[] modulePaths) + => GetModuleCmdletsAndHelpInfo(null, modulePaths); + + public static CmdletAndHelpInfo ToCmdletAndHelpInfo(this CommandInfo commandInfo, PSObject helpInfo) => new CmdletAndHelpInfo { CommandInfo = commandInfo, HelpInfo = helpInfo }; + + public const string Psd1Indent = " "; + public const string GuidStart = Psd1Indent + "GUID"; + + public static Guid ReadGuidFromPsd1(string psd1Path) + { + var guid = Guid.NewGuid(); + if (File.Exists(psd1Path)) + { + var currentGuid = File.ReadAllLines(psd1Path) + .FirstOrDefault(l => l.StartsWith(GuidStart))?.Split(new[] { " = " }, StringSplitOptions.RemoveEmptyEntries) + .LastOrDefault()?.Replace("'", String.Empty); + guid = currentGuid != null ? Guid.Parse(currentGuid) : guid; + } + + return guid; + } + } + + internal class CmdletAndHelpInfo + { + public CommandInfo CommandInfo { get; set; } + public PSObject HelpInfo { get; set; } + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/StringExtensions.cs b/swaggerci/appplatform/generated/runtime/BuildTime/StringExtensions.cs new file mode 100644 index 000000000000..58e931498017 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/StringExtensions.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal static class StringExtensions + { + public static string NullIfEmpty(this string text) => String.IsNullOrEmpty(text) ? null : text; + public static string NullIfWhiteSpace(this string text) => String.IsNullOrWhiteSpace(text) ? null : text; + public static string EmptyIfNull(this string text) => text ?? String.Empty; + + public static bool? ToNullableBool(this string text) => String.IsNullOrEmpty(text) ? (bool?)null : Convert.ToBoolean(text.ToLowerInvariant()); + + public static string ToUpperFirstCharacter(this string text) => String.IsNullOrEmpty(text) ? text : $"{text[0].ToString().ToUpperInvariant()}{text.Remove(0, 1)}"; + + public static string ReplaceNewLines(this string value, string replacer = " ", string[] newLineSymbols = null) + => (newLineSymbols ?? new []{ "\r\n", "\n" }).Aggregate(value.EmptyIfNull(), (current, symbol) => current.Replace(symbol, replacer)); + public static string NormalizeNewLines(this string value) => value.ReplaceNewLines("\u00A0").Replace("\u00A0", Environment.NewLine); + } +} diff --git a/swaggerci/appplatform/generated/runtime/BuildTime/XmlExtensions.cs b/swaggerci/appplatform/generated/runtime/BuildTime/XmlExtensions.cs new file mode 100644 index 000000000000..1848651c953c --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/BuildTime/XmlExtensions.cs @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.IO; +using System.Xml; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal static class XmlExtensions + { + public static string ToXmlString(this T inputObject, bool excludeDeclaration = false) + { + var serializer = new XmlSerializer(typeof(T)); + //https://stackoverflow.com/a/760290/294804 + //https://stackoverflow.com/a/3732234/294804 + var namespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); + var xmlSettings = new XmlWriterSettings { OmitXmlDeclaration = excludeDeclaration, Indent = true }; + using (var stringWriter = new StringWriter()) + using (var xmlWriter = XmlWriter.Create(stringWriter, xmlSettings)) + { + serializer.Serialize(xmlWriter, inputObject, namespaces); + return stringWriter.ToString(); + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/CmdInfoHandler.cs b/swaggerci/appplatform/generated/runtime/CmdInfoHandler.cs new file mode 100644 index 000000000000..43c377b6d622 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/CmdInfoHandler.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Management.Automation; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using NextDelegate = Func, Task>, Task>; + using SignalDelegate = Func, Task>; + + public class CmdInfoHandler + { + private readonly string processRecordId; + private readonly string parameterSetName; + private readonly InvocationInfo invocationInfo; + + public CmdInfoHandler(string processRecordId, InvocationInfo invocationInfo, string parameterSetName) + { + this.processRecordId = processRecordId; + this.parameterSetName = parameterSetName; + this.invocationInfo = invocationInfo; + } + + public Task SendAsync(HttpRequestMessage request, CancellationToken token, Action cancel, SignalDelegate signal, NextDelegate next) + { + request.Headers.Add("x-ms-client-request-id", processRecordId); + request.Headers.Add("CommandName", invocationInfo?.InvocationName); + request.Headers.Add("FullCommandName", invocationInfo?.MyCommand?.Name); + request.Headers.Add("ParameterSetName", parameterSetName); + + // continue with pipeline. + return next(request, token, cancel, signal); + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/Conversions/ConversionException.cs b/swaggerci/appplatform/generated/runtime/Conversions/ConversionException.cs new file mode 100644 index 000000000000..a1d081320ff0 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/ConversionException.cs @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal class ConversionException : Exception + { + internal ConversionException(string message) + : base(message) { } + + internal ConversionException(JsonNode node, Type targetType) + : base($"Cannot convert '{node.Type}' to a {targetType.Name}") { } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/IJsonConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/IJsonConverter.cs new file mode 100644 index 000000000000..8b0164054ac2 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/IJsonConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal interface IJsonConverter + { + JsonNode ToJson(object value); + + object FromJson(JsonNode node); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/BinaryConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/BinaryConverter.cs new file mode 100644 index 000000000000..bdcf64a63e8c --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/BinaryConverter.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class BinaryConverter : JsonConverter + { + internal override JsonNode ToJson(byte[] value) => new XBinary(value); + + internal override byte[] FromJson(JsonNode node) + { + switch (node.Type) + { + case JsonType.String : return Convert.FromBase64String(node.ToString()); // Base64 Encoded + case JsonType.Binary : return ((XBinary)node).Value; + } + + throw new ConversionException(node, typeof(byte[])); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/BooleanConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/BooleanConverter.cs new file mode 100644 index 000000000000..1b00363df998 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/BooleanConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class BooleanConverter : JsonConverter + { + internal override JsonNode ToJson(bool value) => new JsonBoolean(value); + + internal override bool FromJson(JsonNode node) => (bool)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/DateTimeConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/DateTimeConverter.cs new file mode 100644 index 000000000000..aeef8e18ec5f --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/DateTimeConverter.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class DateTimeConverter : JsonConverter + { + internal override JsonNode ToJson(DateTime value) + { + return new JsonDate(value); + } + + internal override DateTime FromJson(JsonNode node) => (DateTime)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs new file mode 100644 index 000000000000..aeda96e74835 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class DateTimeOffsetConverter : JsonConverter + { + internal override JsonNode ToJson(DateTimeOffset value) => new JsonDate(value); + + internal override DateTimeOffset FromJson(JsonNode node) => (DateTimeOffset)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/DecimalConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/DecimalConverter.cs new file mode 100644 index 000000000000..fb2f9b36cd38 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/DecimalConverter.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class DecimalConverter : JsonConverter + { + internal override JsonNode ToJson(decimal value) => new JsonNumber(value.ToString()); + + internal override decimal FromJson(JsonNode node) + { + return (decimal)node; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/DoubleConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/DoubleConverter.cs new file mode 100644 index 000000000000..346e71e1901e --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/DoubleConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class DoubleConverter : JsonConverter + { + internal override JsonNode ToJson(double value) => new JsonNumber(value); + + internal override double FromJson(JsonNode node) => (double)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/EnumConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/EnumConverter.cs new file mode 100644 index 000000000000..559d7c9a10aa --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/EnumConverter.cs @@ -0,0 +1,30 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class EnumConverter : IJsonConverter + { + private readonly Type type; + + internal EnumConverter(Type type) + { + this.type = type ?? throw new ArgumentNullException(nameof(type)); + } + + public JsonNode ToJson(object value) => new JsonString(value.ToString()); + + public object FromJson(JsonNode node) + { + if (node.Type == JsonType.Number) + { + return Enum.ToObject(type, (int)node); + } + + return Enum.Parse(type, node.ToString(), ignoreCase: true); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/GuidConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/GuidConverter.cs new file mode 100644 index 000000000000..e01af613ed5e --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/GuidConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class GuidConverter : JsonConverter + { + internal override JsonNode ToJson(Guid value) => new JsonString(value.ToString()); + + internal override Guid FromJson(JsonNode node) => (Guid)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/HashSet'1Converter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/HashSet'1Converter.cs new file mode 100644 index 000000000000..3b0c740d1b65 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/HashSet'1Converter.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class HashSetConverter : JsonConverter> + { + internal override JsonNode ToJson(HashSet value) + { + return new XSet(value); + } + + internal override HashSet FromJson(JsonNode node) + { + var collection = node as ICollection; + + if (collection.Count == 0) return null; + + // TODO: Remove Linq depedency + return new HashSet(collection.Cast()); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int16Converter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int16Converter.cs new file mode 100644 index 000000000000..173ccfd2d92b --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int16Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class Int16Converter : JsonConverter + { + internal override JsonNode ToJson(short value) => new JsonNumber(value); + + internal override short FromJson(JsonNode node) => (short)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int32Converter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int32Converter.cs new file mode 100644 index 000000000000..547cb9b9da8f --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int32Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class Int32Converter : JsonConverter + { + internal override JsonNode ToJson(int value) => new JsonNumber(value); + + internal override int FromJson(JsonNode node) => (int)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int64Converter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int64Converter.cs new file mode 100644 index 000000000000..c0d94e67c98c --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/Int64Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class Int64Converter : JsonConverter + { + internal override JsonNode ToJson(long value) => new JsonNumber(value); + + internal override long FromJson(JsonNode node) => (long)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/JsonArrayConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/JsonArrayConverter.cs new file mode 100644 index 000000000000..012829628ef1 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/JsonArrayConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class JsonArrayConverter : JsonConverter + { + internal override JsonNode ToJson(JsonArray value) => value; + + internal override JsonArray FromJson(JsonNode node) => (JsonArray)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/JsonObjectConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/JsonObjectConverter.cs new file mode 100644 index 000000000000..747f7caf7ca9 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/JsonObjectConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class JsonObjectConverter : JsonConverter + { + internal override JsonNode ToJson(JsonObject value) => value; + + internal override JsonObject FromJson(JsonNode node) => (JsonObject)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/SingleConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/SingleConverter.cs new file mode 100644 index 000000000000..414322afc8ac --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/SingleConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class SingleConverter : JsonConverter + { + internal override JsonNode ToJson(float value) => new JsonNumber(value.ToString()); + + internal override float FromJson(JsonNode node) => (float)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/StringConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/StringConverter.cs new file mode 100644 index 000000000000..05b55177db2d --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/StringConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class StringConverter : JsonConverter + { + internal override JsonNode ToJson(string value) => new JsonString(value); + + internal override string FromJson(JsonNode node) => node.ToString(); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/TimeSpanConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/TimeSpanConverter.cs new file mode 100644 index 000000000000..2280f962991c --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/TimeSpanConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class TimeSpanConverter : JsonConverter + { + internal override JsonNode ToJson(TimeSpan value) => new JsonString(value.ToString()); + + internal override TimeSpan FromJson(JsonNode node) => (TimeSpan)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt16Converter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt16Converter.cs new file mode 100644 index 000000000000..1fcfa44f37f3 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt16Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class UInt16Converter : JsonConverter + { + internal override JsonNode ToJson(ushort value) => new JsonNumber(value); + + internal override ushort FromJson(JsonNode node) => (ushort)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt32Converter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt32Converter.cs new file mode 100644 index 000000000000..c615ed5c2ddb --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt32Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class UInt32Converter : JsonConverter + { + internal override JsonNode ToJson(uint value) => new JsonNumber(value); + + internal override uint FromJson(JsonNode node) => (uint)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt64Converter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt64Converter.cs new file mode 100644 index 000000000000..ea4e0b64d579 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/UInt64Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class UInt64Converter : JsonConverter + { + internal override JsonNode ToJson(ulong value) => new JsonNumber(value.ToString()); + + internal override ulong FromJson(JsonNode node) => (ulong)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/Instances/UriConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/Instances/UriConverter.cs new file mode 100644 index 000000000000..1ddedbf20ec4 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/Instances/UriConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class UriConverter : JsonConverter + { + internal override JsonNode ToJson(Uri value) => new JsonString(value.AbsoluteUri); + + internal override Uri FromJson(JsonNode node) => (Uri)node; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/JsonConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/JsonConverter.cs new file mode 100644 index 000000000000..effb5f645c6f --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/JsonConverter.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public abstract class JsonConverter : IJsonConverter + { + internal abstract T FromJson(JsonNode node); + + internal abstract JsonNode ToJson(T value); + + #region IConverter + + object IJsonConverter.FromJson(JsonNode node) => FromJson(node); + + JsonNode IJsonConverter.ToJson(object value) => ToJson((T)value); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/JsonConverterAttribute.cs b/swaggerci/appplatform/generated/runtime/Conversions/JsonConverterAttribute.cs new file mode 100644 index 000000000000..543fa26d0815 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/JsonConverterAttribute.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class JsonConverterAttribute : Attribute + { + internal JsonConverterAttribute(Type type) + { + Converter = (IJsonConverter)Activator.CreateInstance(type); + } + + internal IJsonConverter Converter { get; } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/JsonConverterFactory.cs b/swaggerci/appplatform/generated/runtime/Conversions/JsonConverterFactory.cs new file mode 100644 index 000000000000..dc75cf0838f3 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/JsonConverterFactory.cs @@ -0,0 +1,91 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class JsonConverterFactory + { + private static readonly Dictionary converters = new Dictionary(); + + static JsonConverterFactory() + { + AddInternal(new BooleanConverter()); + AddInternal(new DateTimeConverter()); + AddInternal(new DateTimeOffsetConverter()); + AddInternal(new BinaryConverter()); + AddInternal(new DecimalConverter()); + AddInternal(new DoubleConverter()); + AddInternal(new GuidConverter()); + AddInternal(new Int16Converter()); + AddInternal(new Int32Converter()); + AddInternal(new Int64Converter()); + AddInternal(new SingleConverter()); + AddInternal(new StringConverter()); + AddInternal(new TimeSpanConverter()); + AddInternal(new UInt16Converter()); + AddInternal(new UInt32Converter()); + AddInternal(new UInt64Converter()); + AddInternal(new UriConverter()); + + // Hash sets + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + + // JSON + + AddInternal(new JsonObjectConverter()); + AddInternal(new JsonArrayConverter()); + } + + internal static Dictionary Instances => converters; + + internal static IJsonConverter Get(Type type) + { + var details = TypeDetails.Get(type); + + if (details.JsonConverter == null) + { + throw new ConversionException($"No converter found for '{type.Name}'."); + } + + return details.JsonConverter; + } + + internal static bool TryGet(Type type, out IJsonConverter converter) + { + var typeDetails = TypeDetails.Get(type); + + converter = typeDetails.JsonConverter; + + return converter != null; + } + + private static void AddInternal(JsonConverter converter) + => converters.Add(typeof(T), converter); + + private static void AddInternal(IJsonConverter converter) + => converters.Add(typeof(T), converter); + + internal static void Add(JsonConverter converter) + { + if (converter == null) + { + throw new ArgumentNullException(nameof(converter)); + } + + AddInternal(converter); + + var type = TypeDetails.Get(); + + type.JsonConverter = converter; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Conversions/StringLikeConverter.cs b/swaggerci/appplatform/generated/runtime/Conversions/StringLikeConverter.cs new file mode 100644 index 000000000000..8d0e6a921544 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Conversions/StringLikeConverter.cs @@ -0,0 +1,45 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class StringLikeConverter : IJsonConverter + { + private readonly Type type; + private readonly MethodInfo parseMethod; + + internal StringLikeConverter(Type type) + { + this.type = type ?? throw new ArgumentNullException(nameof(type)); + this.parseMethod = StringLikeHelper.GetParseMethod(type); + } + + public object FromJson(JsonNode node) => + parseMethod.Invoke(null, new[] { node.ToString() }); + + public JsonNode ToJson(object value) => new JsonString(value.ToString()); + } + + internal static class StringLikeHelper + { + private static readonly Type[] parseMethodParamaterTypes = new[] { typeof(string) }; + + internal static bool IsStringLike(Type type) + { + return GetParseMethod(type) != null; + } + + internal static MethodInfo GetParseMethod(Type type) + { + MethodInfo method = type.GetMethod("Parse", parseMethodParamaterTypes); + + if (method?.IsPublic != true) return null; + + return method; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Customizations/IJsonSerializable.cs b/swaggerci/appplatform/generated/runtime/Customizations/IJsonSerializable.cs new file mode 100644 index 000000000000..e7187f2b8ec0 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Customizations/IJsonSerializable.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. + *--------------------------------------------------------------------------------------------*/ + +using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json; +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + public interface IJsonSerializable + { + JsonNode ToJson(JsonObject container = null, SerializationMode serializationMode = SerializationMode.None); + } + internal static class JsonSerializable + { + /// + /// Serializes an enumerable and returns a JsonNode. + /// + /// an IEnumerable collection of items + /// A JsonNode that contains the collection of items serialized. + private static JsonNode ToJsonValue(System.Collections.IEnumerable enumerable) + { + if (enumerable != null) + { + // is it a byte array of some kind? + if (enumerable is System.Collections.Generic.IEnumerable byteEnumerable) + { + return new XBinary(System.Linq.Enumerable.ToArray(byteEnumerable)); + } + + var hasValues = false; + // just create an array of value nodes. + var result = new XNodeArray(); + foreach (var each in enumerable) + { + // we had at least one value. + hasValues = true; + + // try to serialize it. + var node = ToJsonValue(each); + if (null != node) + { + result.Add(node); + } + } + + // if we were able to add values, (or it was just empty), return it. + if (result.Count > 0 || !hasValues) + { + return result; + } + } + + // we couldn't serialize the values. Sorry. + return null; + } + + /// + /// Serializes a valuetype to a JsonNode. + /// + /// a ValueType (ie, a primitive, enum or struct) to be serialized + /// a JsonNode with the serialized value + private static JsonNode ToJsonValue(ValueType vValue) + { + // numeric type + if (vValue is SByte || vValue is Int16 || vValue is Int32 || vValue is Int64 || vValue is Byte || vValue is UInt16 || vValue is UInt32 || vValue is UInt64 || vValue is decimal || vValue is float || vValue is double) + { + return new JsonNumber(vValue.ToString()); + } + + // boolean type + if (vValue is bool bValue) + { + return new JsonBoolean(bValue); + } + + // dates + if (vValue is DateTime dtValue) + { + return new JsonDate(dtValue); + } + + // DictionaryEntity struct type + if (vValue is System.Collections.DictionaryEntry deValue) + { + return new JsonObject { { deValue.Key.ToString(), ToJsonValue(deValue.Value) } }; + } + + // sorry, no idea. + return null; + } + /// + /// Attempts to serialize an object by using ToJson() or ToJsonString() if they exist. + /// + /// the object to be serialized. + /// the serialized JsonNode (if successful), otherwise, null + private static JsonNode TryToJsonValue(dynamic oValue) + { + object jsonValue = null; + dynamic v = oValue; + try + { + jsonValue = v.ToJson().ToString(); + } + catch + { + // no harm... + try + { + jsonValue = v.ToJsonString().ToString(); + } + catch + { + // no worries here either. + } + } + + // if we got something out, let's use it. + if (null != jsonValue) + { + // JsonNumber is really a literal json value. Just don't try to cast that back to an actual number, ok? + return new JsonNumber(jsonValue.ToString()); + } + + return null; + } + + /// + /// Serialize an object by using a variety of methods. + /// + /// the object to be serialized. + /// the serialized JsonNode (if successful), otherwise, null + internal static JsonNode ToJsonValue(object value) + { + // things that implement our interface are preferred. + if (value is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable jsonSerializable) + { + return jsonSerializable.ToJson(); + } + + // strings are easy. + if (value is string || value is char) + { + return new JsonString(value.ToString()); + } + + // value types are fairly straightforward (fallback to ToJson()/ToJsonString() or literal JsonString ) + if (value is System.ValueType vValue) + { + return ToJsonValue(vValue) ?? TryToJsonValue(vValue) ?? new JsonString(vValue.ToString()); + } + + // dictionaries are objects that should be able to serialize + if (value is System.Collections.Generic.IDictionary dictionary) + { + return Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson(dictionary, null); + } + + // hashtables are converted to dictionaries for serialization + if (value is System.Collections.Hashtable hashtable) + { + var dict = new System.Collections.Generic.Dictionary(); + DictionaryExtensions.HashTableToDictionary(hashtable, dict); + return Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.ToJson(dict, null); + } + + // enumerable collections are handled like arrays (again, fallback to ToJson()/ToJsonString() or literal JsonString) + if (value is System.Collections.IEnumerable enumerableValue) + { + // some kind of enumerable value + return ToJsonValue(enumerableValue) ?? TryToJsonValue(value) ?? new JsonString(value.ToString()); + } + + // at this point, we're going to fallback to a string literal here, since we really have no idea what it is. + return new JsonString(value.ToString()); + } + + internal static JsonObject ToJson(System.Collections.Generic.Dictionary dictionary, JsonObject container) => ToJson((System.Collections.Generic.IDictionary)dictionary, container); + + /// + /// Serializes a dictionary into a JsonObject container. + /// + /// The dictionary to serailize + /// the container to serialize the dictionary into + /// the container + internal static JsonObject ToJson(System.Collections.Generic.IDictionary dictionary, JsonObject container) + { + container = container ?? new JsonObject(); + if (dictionary != null && dictionary.Count > 0) + { + foreach (var key in dictionary) + { + // currently, we don't serialize null values. + if (null != key.Value) + { + container.Add(key.Key, ToJsonValue(key.Value)); + continue; + } + } + } + return container; + } + + internal static Func> DeserializeDictionary(Func> dictionaryFactory) + { + return (node) => FromJson(node, dictionaryFactory(), (object)(DeserializeDictionary(dictionaryFactory)) as Func); + } + + internal static System.Collections.Generic.IDictionary FromJson(JsonObject json, System.Collections.Generic.Dictionary container, System.Func objectFactory, System.Collections.Generic.HashSet excludes = null) => FromJson(json, (System.Collections.Generic.IDictionary)container, objectFactory, excludes); + + + internal static System.Collections.Generic.IDictionary FromJson(JsonObject json, System.Collections.Generic.IDictionary container, System.Func objectFactory, System.Collections.Generic.HashSet excludes = null) + { + if (null == json) + { + return container; + } + + foreach (var key in json.Keys) + { + if (true == excludes?.Contains(key)) + { + continue; + } + + var value = json[key]; + try + { + switch (value.Type) + { + case JsonType.Null: + // skip null values. + continue; + + case JsonType.Array: + case JsonType.Boolean: + case JsonType.Date: + case JsonType.Binary: + case JsonType.Number: + case JsonType.String: + container.Add(key, (V)value.ToValue()); + break; + case JsonType.Object: + if (objectFactory != null) + { + var v = objectFactory(value as JsonObject); + if (null != v) + { + container.Add(key, v); + } + } + break; + } + } + catch + { + } + } + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Customizations/JsonArray.cs b/swaggerci/appplatform/generated/runtime/Customizations/JsonArray.cs new file mode 100644 index 000000000000..3a76e16e186b --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Customizations/JsonArray.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public partial class JsonArray + { + internal override object ToValue() => Count == 0 ? new object[0] : System.Linq.Enumerable.ToArray(System.Linq.Enumerable.Select(this, each => each.ToValue())); + } + + +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Customizations/JsonBoolean.cs b/swaggerci/appplatform/generated/runtime/Customizations/JsonBoolean.cs new file mode 100644 index 000000000000..9e562e9b0d42 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Customizations/JsonBoolean.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal partial class JsonBoolean + { + internal static JsonBoolean Create(bool? value) => value is bool b ? new JsonBoolean(b) : null; + internal bool ToBoolean() => Value; + + internal override object ToValue() => Value; + } + + +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Customizations/JsonNode.cs b/swaggerci/appplatform/generated/runtime/Customizations/JsonNode.cs new file mode 100644 index 000000000000..85a0011d933b --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Customizations/JsonNode.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + using System; + using System.Collections.Generic; + + public partial class JsonNode + { + /// + /// Returns the content of this node as the underlying value. + /// Will default to the string representation if not overridden in child classes. + /// + /// an object with the underlying value of the node. + internal virtual object ToValue() { + return this.ToString(); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Customizations/JsonNumber.cs b/swaggerci/appplatform/generated/runtime/Customizations/JsonNumber.cs new file mode 100644 index 000000000000..ca7fa21dbe9b --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Customizations/JsonNumber.cs @@ -0,0 +1,78 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + using System; + + public partial class JsonNumber + { + internal static readonly DateTime EpochDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + private static long ToUnixTime(DateTime dateTime) + { + return (long)dateTime.Subtract(EpochDate).TotalSeconds; + } + private static DateTime FromUnixTime(long totalSeconds) + { + return EpochDate.AddSeconds(totalSeconds); + } + internal byte ToByte() => this; + internal int ToInt() => this; + internal long ToLong() => this; + internal short ToShort() => this; + internal UInt16 ToUInt16() => this; + internal UInt32 ToUInt32() => this; + internal UInt64 ToUInt64() => this; + internal decimal ToDecimal() => this; + internal double ToDouble() => this; + internal float ToFloat() => this; + + internal static JsonNumber Create(int? value) => value is int n ? new JsonNumber(n) : null; + internal static JsonNumber Create(long? value) => value is long n ? new JsonNumber(n) : null; + internal static JsonNumber Create(float? value) => value is float n ? new JsonNumber(n) : null; + internal static JsonNumber Create(double? value) => value is double n ? new JsonNumber(n) : null; + internal static JsonNumber Create(decimal? value) => value is decimal n ? new JsonNumber(n) : null; + internal static JsonNumber Create(DateTime? value) => value is DateTime date ? new JsonNumber(ToUnixTime(date)) : null; + + public static implicit operator DateTime(JsonNumber number) => FromUnixTime(number); + internal DateTime ToDateTime() => this; + + internal JsonNumber(decimal value) + { + this.value = value.ToString(); + } + internal override object ToValue() + { + if (IsInteger) + { + if (int.TryParse(this.value, out int iValue)) + { + return iValue; + } + if (long.TryParse(this.value, out long lValue)) + { + return lValue; + } + } + else + { + if (float.TryParse(this.value, out float fValue)) + { + return fValue; + } + if (double.TryParse(this.value, out double dValue)) + { + return dValue; + } + if (decimal.TryParse(this.value, out decimal dcValue)) + { + return dcValue; + } + } + return null; + } + } + + +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Customizations/JsonObject.cs b/swaggerci/appplatform/generated/runtime/Customizations/JsonObject.cs new file mode 100644 index 000000000000..80750a728dee --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Customizations/JsonObject.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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + using System; + using System.Collections.Generic; + + public partial class JsonObject + { + internal override object ToValue() => Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.JsonSerializable.FromJson(this, new System.Collections.Generic.Dictionary(), (obj) => obj.ToValue()); + + internal void SafeAdd(string name, Func valueFn) + { + if (valueFn != null) + { + var value = valueFn(); + if (null != value) + { + items.Add(name, value); + } + } + } + + internal void SafeAdd(string name, JsonNode value) + { + if (null != value) + { + items.Add(name, value); + } + } + + internal T NullableProperty(string propertyName) where T : JsonNode + { + if (this.TryGetValue(propertyName, out JsonNode value)) + { + if (value.IsNull) + { + return null; + } + if (value is T tval) + { + return tval; + } + /* it's present, but not the correct type... */ + //throw new Exception($"Property {propertyName} in object expected type {typeof(T).Name} but value of type {value.Type.ToString()} was found."); + } + return null; + } + + internal JsonObject Property(string propertyName) + { + return PropertyT(propertyName); + } + + internal T PropertyT(string propertyName) where T : JsonNode + { + if (this.TryGetValue(propertyName, out JsonNode value)) + { + if (value.IsNull) + { + return null; // we're going to assume that the consumer knows what to do if null is explicity returned? + } + + if (value is T tval) + { + return tval; + } + /* it's present, but not the correct type... */ + // throw new Exception($"Property {propertyName} in object expected type {typeof(T).Name} but value of type {value.Type.ToString()} was found."); + } + return null; + } + + internal int NumberProperty(string propertyName, ref int output) => output = this.PropertyT(propertyName)?.ToInt() ?? output; + internal float NumberProperty(string propertyName, ref float output) => output = this.PropertyT(propertyName)?.ToFloat() ?? output; + internal byte NumberProperty(string propertyName, ref byte output) => output = this.PropertyT(propertyName)?.ToByte() ?? output; + internal long NumberProperty(string propertyName, ref long output) => output = this.PropertyT(propertyName)?.ToLong() ?? output; + internal double NumberProperty(string propertyName, ref double output) => output = this.PropertyT(propertyName)?.ToDouble() ?? output; + internal decimal NumberProperty(string propertyName, ref decimal output) => output = this.PropertyT(propertyName)?.ToDecimal() ?? output; + internal short NumberProperty(string propertyName, ref short output) => output = this.PropertyT(propertyName)?.ToShort() ?? output; + internal DateTime NumberProperty(string propertyName, ref DateTime output) => output = this.PropertyT(propertyName)?.ToDateTime() ?? output; + + internal int? NumberProperty(string propertyName, ref int? output) => output = this.NullableProperty(propertyName)?.ToInt() ?? null; + internal float? NumberProperty(string propertyName, ref float? output) => output = this.NullableProperty(propertyName)?.ToFloat() ?? null; + internal byte? NumberProperty(string propertyName, ref byte? output) => output = this.NullableProperty(propertyName)?.ToByte() ?? null; + internal long? NumberProperty(string propertyName, ref long? output) => output = this.NullableProperty(propertyName)?.ToLong() ?? null; + internal double? NumberProperty(string propertyName, ref double? output) => output = this.NullableProperty(propertyName)?.ToDouble() ?? null; + internal decimal? NumberProperty(string propertyName, ref decimal? output) => output = this.NullableProperty(propertyName)?.ToDecimal() ?? null; + internal short? NumberProperty(string propertyName, ref short? output) => output = this.NullableProperty(propertyName)?.ToShort() ?? null; + + internal DateTime? NumberProperty(string propertyName, ref DateTime? output) => output = this.NullableProperty(propertyName)?.ToDateTime() ?? null; + + + internal string StringProperty(string propertyName) => this.PropertyT(propertyName)?.ToString(); + internal string StringProperty(string propertyName, ref string output) => output = this.PropertyT(propertyName)?.ToString() ?? output; + internal char StringProperty(string propertyName, ref char output) => output = this.PropertyT(propertyName)?.ToChar() ?? output; + internal char? StringProperty(string propertyName, ref char? output) => output = this.PropertyT(propertyName)?.ToChar() ?? null; + + internal DateTime StringProperty(string propertyName, ref DateTime output) => DateTime.TryParse(this.PropertyT(propertyName)?.ToString(), out output) ? output : output; + internal DateTime? StringProperty(string propertyName, ref DateTime? output) => output = DateTime.TryParse(this.PropertyT(propertyName)?.ToString(), out var o) ? o : output; + + + internal bool BooleanProperty(string propertyName, ref bool output) => output = this.PropertyT(propertyName)?.ToBoolean() ?? output; + internal bool? BooleanProperty(string propertyName, ref bool? output) => output = this.PropertyT(propertyName)?.ToBoolean() ?? null; + + internal T[] ArrayProperty(string propertyName, ref T[] output, Func deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + output = new T[array.Count]; + for (var i = 0; i < output.Length; i++) + { + output[i] = deserializer(array[i]); + } + } + return output; + } + internal T[] ArrayProperty(string propertyName, Func deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + var output = new T[array.Count]; + for (var i = 0; i < output.Length; i++) + { + output[i] = deserializer(array[i]); + } + return output; + } + return new T[0]; + } + internal void IterateArrayProperty(string propertyName, Action deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + for (var i = 0; i < array.Count; i++) + { + deserializer(array[i]); + } + } + } + + internal Dictionary DictionaryProperty(string propertyName, ref Dictionary output, Func deserializer) + { + var dictionary = this.PropertyT(propertyName); + if (output == null) + { + output = new Dictionary(); + } + else + { + output.Clear(); + } + if (dictionary != null) + { + foreach (var key in dictionary.Keys) + { + output[key] = deserializer(dictionary[key]); + } + } + return output; + } + + internal static JsonObject Create(IDictionary source, Func selector) + { + if (source == null || selector == null) + { + return null; + } + var result = new JsonObject(); + + foreach (var key in source.Keys) + { + result.SafeAdd(key, selector(source[key])); + } + return result; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Customizations/JsonString.cs b/swaggerci/appplatform/generated/runtime/Customizations/JsonString.cs new file mode 100644 index 000000000000..ffefb61abc75 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Customizations/JsonString.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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + using System; + using System.Globalization; + using System.Linq; + + public partial class JsonString + { + internal static string DateFormat = "yyyy-MM-dd"; + internal static string DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"; + internal static string DateTimeRfc1123Format = "R"; + + internal static JsonString Create(string value) => value == null ? null : new JsonString(value); + internal static JsonString Create(char? value) => value is char c ? new JsonString(c.ToString()) : null; + + internal static JsonString CreateDate(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateFormat, CultureInfo.CurrentCulture)) : null; + internal static JsonString CreateDateTime(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateTimeFormat, CultureInfo.CurrentCulture)) : null; + internal static JsonString CreateDateTimeRfc1123(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateTimeRfc1123Format, CultureInfo.CurrentCulture)) : null; + + internal char ToChar() => this.Value?.ToString()?.FirstOrDefault() ?? default(char); + public static implicit operator char(JsonString value) => value?.ToString()?.FirstOrDefault() ?? default(char); + public static implicit operator char? (JsonString value) => value?.ToString()?.FirstOrDefault(); + + public static implicit operator DateTime(JsonString value) => DateTime.TryParse(value, out var output) ? output : default(DateTime); + public static implicit operator DateTime? (JsonString value) => DateTime.TryParse(value, out var output) ? output : default(DateTime?); + + } + + +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Customizations/XNodeArray.cs b/swaggerci/appplatform/generated/runtime/Customizations/XNodeArray.cs new file mode 100644 index 000000000000..99630bee971e --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Customizations/XNodeArray.cs @@ -0,0 +1,44 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + using System; + using System.Linq; + + public partial class XNodeArray + { + internal static XNodeArray Create(T[] source, Func selector) + { + if (source == null || selector == null) + { + return null; + } + var result = new XNodeArray(); + foreach (var item in source.Select(selector)) + { + result.SafeAdd(item); + } + return result; + } + internal void SafeAdd(JsonNode item) + { + if (item != null) + { + items.Add(item); + } + } + internal void SafeAdd(Func itemFn) + { + if (itemFn != null) + { + var item = itemFn(); + if (item != null) + { + items.Add(item); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Debugging.cs b/swaggerci/appplatform/generated/runtime/Debugging.cs new file mode 100644 index 000000000000..dd57a11c67d8 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Debugging.cs @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + internal static class AttachDebugger + { + internal static void Break() + { + while (!System.Diagnostics.Debugger.IsAttached) + { + System.Console.Error.WriteLine($"Waiting for debugger to attach to process {System.Diagnostics.Process.GetCurrentProcess().Id}"); + for (int i = 0; i < 50; i++) + { + if (System.Diagnostics.Debugger.IsAttached) + { + break; + } + System.Threading.Thread.Sleep(100); + System.Console.Error.Write("."); + } + System.Console.Error.WriteLine(); + } + System.Diagnostics.Debugger.Break(); + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/DictionaryExtensions.cs b/swaggerci/appplatform/generated/runtime/DictionaryExtensions.cs new file mode 100644 index 000000000000..fc2b49c98d92 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/DictionaryExtensions.cs @@ -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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + internal static class DictionaryExtensions + { + internal static void HashTableToDictionary(System.Collections.Hashtable hashtable, System.Collections.Generic.IDictionary dictionary) + { + if (null == hashtable) + { + return; + } + foreach (var each in hashtable.Keys) + { + var key = each.ToString(); + var value = hashtable[key]; + if (null != value) + { + try + { + dictionary[key] = (V)value; + } + catch + { + // Values getting dropped; not compatible with target dictionary. Not sure what to do here. + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/EventData.cs b/swaggerci/appplatform/generated/runtime/EventData.cs new file mode 100644 index 000000000000..c672a9192191 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/EventData.cs @@ -0,0 +1,78 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + + using System; + using System.Threading; + + ///Represents the data in signaled event. + public partial class EventData + { + /// + /// The type of the event being signaled + /// + public string Id; + + /// + /// The user-ready message from the event. + /// + public string Message; + + /// + /// When the event is about a parameter, this is the parameter name. + /// Used in Validation Events + /// + public string Parameter; + + /// + /// This represents a numeric value associated with the event. + /// Use for progress-style events + /// + public double Value; + + /// + /// Any extended data for an event should be serialized and stored here. + /// + public string ExtendedData; + + /// + /// If the event triggers after the request message has been created, this will contain the Request Message (which in HTTP calls would be HttpRequestMessage) + /// + /// Typically you'd cast this to the expected type to use it: + /// + /// if(eventData.RequestMessgae is HttpRequestMessage httpRequest) + /// { + /// httpRequest.Headers.Add("x-request-flavor", "vanilla"); + /// } + /// + /// + public object RequestMessage; + + /// + /// If the event triggers after the response is back, this will contain the Response Message (which in HTTP calls would be HttpResponseMessage) + /// + /// Typically you'd cast this to the expected type to use it: + /// + /// if(eventData.ResponseMessage is HttpResponseMessage httpResponse){ + /// var flavor = httpResponse.Headers.GetValue("x-request-flavor"); + /// } + /// + /// + public object ResponseMessage; + + /// + /// Cancellation method for this event. + /// + /// If the event consumer wishes to cancel the request that initiated this event, call Cancel() + /// + /// + /// The original initiator of the request must provide the implementation of this. + /// + public System.Action Cancel; + } + +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/EventDataExtensions.cs b/swaggerci/appplatform/generated/runtime/EventDataExtensions.cs new file mode 100644 index 000000000000..a1663ad73bcf --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/EventDataExtensions.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. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System; + + /// + /// PowerShell-specific data on top of the llc# EventData + /// + /// + /// In PowerShell, we add on the EventDataConverter to support sending events between modules. + /// Obviously, this code would need to be duplcated on both modules. + /// This is preferable to sharing a common library, as versioning makes that problematic. + /// + [System.ComponentModel.TypeConverter(typeof(EventDataConverter))] + public partial class EventData : EventArgs + { + } + + /// + /// A PowerShell PSTypeConverter to adapt an EventData object that has been passed. + /// Usually used between modules. + /// + public class EventDataConverter : System.Management.Automation.PSTypeConverter + { + public override bool CanConvertTo(object sourceValue, Type destinationType) => false; + public override object ConvertTo(object sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase) => null; + public override bool CanConvertFrom(dynamic sourceValue, Type destinationType) => destinationType == typeof(EventData) && CanConvertFrom(sourceValue); + public override object ConvertFrom(dynamic sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Verifies that a given object has the required members to convert it to the target type (EventData) + /// + /// Uses a dynamic type so that it is able to use the simplest code without excessive checking. + /// + /// The instance to verify + /// True, if the object has all the required parameters. + public static bool CanConvertFrom(dynamic sourceValue) + { + try + { + // check if this has *required* parameters... + sourceValue?.Id?.GetType(); + sourceValue?.Message?.GetType(); + sourceValue?.Cancel?.GetType(); + + // remaining parameters are not *required*, + // and if they have values, it will copy them at conversion time. + } + catch + { + // if anything throws an exception (because it's null, or doesn't have that member) + return false; + } + return true; + } + + /// + /// Returns result of the delegate as the expected type, or default(T) + /// + /// This isolates any exceptions from the consumer. + /// + /// A delegate that returns a value + /// The desired output type + /// The value from the function if the type is correct + private static T To(Func srcValue) + { + try { return srcValue(); } + catch { return default(T); } + } + + /// + /// Converts an incoming object to the expected type by treating the incoming object as a dynamic, and coping the expected values. + /// + /// the incoming object + /// EventData + public static EventData ConvertFrom(dynamic sourceValue) + { + return new EventData + { + Id = To(() => sourceValue.Id), + Message = To(() => sourceValue.Message), + Parameter = To(() => sourceValue.Parameter), + Value = To(() => sourceValue.Value), + RequestMessage = To(() => sourceValue.RequestMessage), + ResponseMessage = To(() => sourceValue.ResponseMessage), + Cancel = To(() => sourceValue.Cancel) + }; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/EventListener.cs b/swaggerci/appplatform/generated/runtime/EventListener.cs new file mode 100644 index 000000000000..31da8a2afad3 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/EventListener.cs @@ -0,0 +1,247 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + + using System; + using System.Linq; + using System.Collections; + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using GetEventData = System.Func; + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public interface IValidates + { + Task Validate(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener listener); + } + + /// + /// The IEventListener Interface defines the communication mechanism for Signaling events during a remote call. + /// + /// + /// The interface is designed to be as minimal as possible, allow for quick peeking of the event type (id) + /// and the cancellation status and provides a delegate for retrieving the event details themselves. + /// + public interface IEventListener + { + Task Signal(string id, CancellationToken token, GetEventData createMessage); + CancellationToken Token { get; } + System.Action Cancel { get; } + } + + internal static partial class Extensions + { + public static Task Signal(this IEventListener instance, string id, CancellationToken token, Func createMessage) => instance.Signal(id, token, createMessage); + public static Task Signal(this IEventListener instance, string id, CancellationToken token) => instance.Signal(id, token, () => new EventData { Id = id, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpRequestMessage request, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = request, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, EventData message) => instance.Signal(id, token, () => { message.Id = id; message.Cancel = instance.Cancel; return message; }); + + public static Task Signal(this IEventListener instance, string id, Func createMessage) => instance.Signal(id, instance.Token, createMessage); + public static Task Signal(this IEventListener instance, string id) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpRequestMessage request, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = request, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, EventData message) => instance.Signal(id, instance.Token, () => { message.Id = id; message.Cancel = instance.Cancel; return message; }); + + public static Task Signal(this IEventListener instance, string id, System.Uri uri) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = uri.ToString(), Cancel = instance.Cancel }); + + public static async Task AssertNotNull(this IEventListener instance, string parameterName, object value) + { + if (value == null) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' should not be null", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertMinimumLength(this IEventListener instance, string parameterName, string value, int length) + { + if (value != null && value.Length < length) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Length of '{parameterName}' is less than {length}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertMaximumLength(this IEventListener instance, string parameterName, string value, int length) + { + if (value != null && value.Length > length) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Length of '{parameterName}' is greater than {length}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + + public static async Task AssertRegEx(this IEventListener instance, string parameterName, string value, string regularExpression) + { + if (value != null && !System.Text.RegularExpressions.Regex.Match(value, regularExpression).Success) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' does not validate against pattern /{regularExpression}/", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertEnum(this IEventListener instance, string parameterName, string value, params string[] values) + { + if (!values.Any(each => each.Equals(value))) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' is not one of ({values.Aggregate((c, e) => $"'{e}',{c}")}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertObjectIsValid(this IEventListener instance, string parameterName, object inst) + { + await (inst as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates)?.Validate(instance); + } + + public static async Task AssertIsLessThan(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) >= 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be less than {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsGreaterThan(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) <= 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be greater than {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsLessThanOrEqual(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) > 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be less than or equal to {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsGreaterThanOrEqual(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) < 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be greater than or equal to {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, Int64? value, Int64 multiple) + { + if (null != value && value % multiple != 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, double? value, double multiple) + { + if (null != value) + { + var i = (Int64)(value / multiple); + if (i != value / multiple) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, decimal? value, decimal multiple) + { + if (null != value) + { + var i = (Int64)(value / multiple); + if (i != value / multiple) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + } + } + + /// + /// An Implementation of the IEventListener that supports subscribing to events and dispatching them + /// (used for manually using the lowlevel interface) + /// + public class EventListener : CancellationTokenSource, IEnumerable>, IEventListener + { + private Dictionary calls = new Dictionary(); + public IEnumerator> GetEnumerator() => calls.GetEnumerator(); + IEnumerator IEnumerable.GetEnumerator() => calls.GetEnumerator(); + public EventListener() + { + } + + public new Action Cancel => base.Cancel; + private Event tracer; + + public EventListener(params (string name, Event callback)[] initializer) + { + foreach (var each in initializer) + { + Add(each.name, each.callback); + } + } + + public void Add(string name, SynchEvent callback) + { + Add(name, (message) => { callback(message); return Task.CompletedTask; }); + } + + public void Add(string name, Event callback) + { + if (callback != null) + { + if (string.IsNullOrEmpty(name)) + { + if (calls.ContainsKey(name)) + { + tracer += callback; + } + else + { + tracer = callback; + } + } + else + { + if (calls.ContainsKey(name)) + { + calls[name ?? System.String.Empty] += callback; + } + else + { + calls[name ?? System.String.Empty] = callback; + } + } + } + } + + + public async Task Signal(string id, CancellationToken token, GetEventData createMessage) + { + using (NoSynchronizationContext) + { + if (!string.IsNullOrEmpty(id) && (calls.TryGetValue(id, out Event listener) || tracer != null)) + { + var message = createMessage(); + message.Id = id; + + await listener?.Invoke(message); + await tracer?.Invoke(message); + + if (token.IsCancellationRequested) + { + throw new OperationCanceledException($"Canceled by event {id} ", this.Token); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Events.cs b/swaggerci/appplatform/generated/runtime/Events.cs new file mode 100644 index 000000000000..008adf845bed --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Events.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + public static partial class Events + { + public const string Log = nameof(Log); + public const string Validation = nameof(Validation); + public const string ValidationWarning = nameof(ValidationWarning); + public const string AfterValidation = nameof(AfterValidation); + public const string RequestCreated = nameof(RequestCreated); + public const string ResponseCreated = nameof(ResponseCreated); + public const string URLCreated = nameof(URLCreated); + public const string Finally = nameof(Finally); + public const string HeaderParametersAdded = nameof(HeaderParametersAdded); + public const string BodyContentSet = nameof(BodyContentSet); + public const string BeforeCall = nameof(BeforeCall); + public const string BeforeResponseDispatch = nameof(BeforeResponseDispatch); + public const string FollowingNextLink = nameof(FollowingNextLink); + public const string DelayBeforePolling = nameof(DelayBeforePolling); + public const string Polling = nameof(Polling); + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/EventsExtensions.cs b/swaggerci/appplatform/generated/runtime/EventsExtensions.cs new file mode 100644 index 000000000000..4f56ba5636a4 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/EventsExtensions.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + public static partial class Events + { + public const string CmdletProcessRecordStart = nameof(CmdletProcessRecordStart); + public const string CmdletProcessRecordAsyncStart = nameof(CmdletProcessRecordAsyncStart); + public const string CmdletException = nameof(CmdletException); + public const string CmdletGetPipeline = nameof(CmdletGetPipeline); + public const string CmdletBeforeAPICall = nameof(CmdletBeforeAPICall); + public const string CmdletBeginProcessing = nameof(CmdletBeginProcessing); + public const string CmdletEndProcessing = nameof(CmdletEndProcessing); + public const string CmdletProcessRecordEnd = nameof(CmdletProcessRecordEnd); + public const string CmdletProcessRecordAsyncEnd = nameof(CmdletProcessRecordAsyncEnd); + public const string CmdletAfterAPICall = nameof(CmdletAfterAPICall); + + public const string Verbose = nameof(Verbose); + public const string Debug = nameof(Debug); + public const string Information = nameof(Information); + public const string Error = nameof(Error); + public const string Warning = nameof(Warning); + } + +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Extensions.cs b/swaggerci/appplatform/generated/runtime/Extensions.cs new file mode 100644 index 000000000000..7031568568f0 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Extensions.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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System.Linq; + using System; + + internal static partial class Extensions + { + public static T[] SubArray(this T[] array, int offset, int length) + { + return new ArraySegment(array, offset, length) + .ToArray(); + } + + public static T ReadHeaders(this T instance, global::System.Net.Http.Headers.HttpResponseHeaders headers) where T : class + { + (instance as IHeaderSerializable)?.ReadHeaders(headers); + return instance; + } + + internal static bool If(T input, out T output) + { + if (null == input) + { + output = default(T); + return false; + } + output = input; + return true; + } + + internal static void AddIf(T value, System.Action addMethod) + { + // if value is present (and it's not just an empty JSON Object) + if (null != value && (value as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject)?.Keys.Count != 0) + { + addMethod(value); + } + } + + internal static void AddIf(T value, string serializedName, System.Action addMethod) + { + // if value is present (and it's not just an empty JSON Object) + if (null != value && (value as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject)?.Keys.Count != 0) + { + addMethod(serializedName, value); + } + } + + /// + /// Returns the first header value as a string from an HttpReponseMessage. + /// + /// the HttpResponseMessage to fetch a header from + /// the header name + /// the first header value as a string from an HttpReponseMessage. string.empty if there is no header value matching + internal static string GetFirstHeader(this System.Net.Http.HttpResponseMessage response, string headerName) => response.Headers.FirstOrDefault(each => string.Equals(headerName, each.Key, System.StringComparison.OrdinalIgnoreCase)).Value?.FirstOrDefault() ?? string.Empty; + + /// + /// Sets the Synchronization Context to null, and returns an IDisposable that when disposed, + /// will restore the synchonization context to the original value. + /// + /// This is used a less-invasive means to ensure that code in the library that doesn't + /// need to be continued in the original context doesn't have to have ConfigureAwait(false) + /// on every single await + /// + /// If the SynchronizationContext is null when this is used, the resulting IDisposable + /// will not do anything (this prevents excessive re-setting of the SynchronizationContext) + /// + /// Usage: + /// + /// using(NoSynchronizationContext) { + /// await SomeAsyncOperation(); + /// await SomeOtherOperation(); + /// } + /// + /// + /// + /// An IDisposable that will return the SynchronizationContext to original state + internal static System.IDisposable NoSynchronizationContext => System.Threading.SynchronizationContext.Current == null ? Dummy : new NoSyncContext(); + + /// + /// An instance of the Dummy IDispoable. + /// + /// + internal static System.IDisposable Dummy = new DummyDisposable(); + + /// + /// An IDisposable that does absolutely nothing. + /// + internal class DummyDisposable : System.IDisposable + { + public void Dispose() + { + } + } + /// + /// An IDisposable that saves the SynchronizationContext,sets it to null and + /// restores it to the original upon Dispose(). + /// + /// NOTE: This is designed to be less invasive than using .ConfigureAwait(false) + /// on every single await in library code (ie, places where we know we don't need + /// to continue in the same context as we went async) + /// + internal class NoSyncContext : System.IDisposable + { + private System.Threading.SynchronizationContext original = System.Threading.SynchronizationContext.Current; + internal NoSyncContext() + { + System.Threading.SynchronizationContext.SetSynchronizationContext(null); + } + public void Dispose() => System.Threading.SynchronizationContext.SetSynchronizationContext(original); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs b/swaggerci/appplatform/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs new file mode 100644 index 000000000000..3156b9b63b89 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs @@ -0,0 +1,23 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal static class StringBuilderExtensions + { + /// + /// Extracts the buffered value and resets the buffer + /// + internal static string Extract(this StringBuilder builder) + { + var text = builder.ToString(); + + builder.Clear(); + + return text; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Helpers/Extensions/TypeExtensions.cs b/swaggerci/appplatform/generated/runtime/Helpers/Extensions/TypeExtensions.cs new file mode 100644 index 000000000000..18bbab6ec556 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Helpers/Extensions/TypeExtensions.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal static class TypeExtensions + { + internal static bool IsNullable(this Type type) => + type.IsGenericType && type.GetGenericTypeDefinition().Equals(typeof(Nullable<>)); + + internal static Type GetOpenGenericInterface(this Type candidateType, Type openGenericInterfaceType) + { + + if (candidateType.IsGenericType && candidateType.GetGenericTypeDefinition() == openGenericInterfaceType) + { + return candidateType; + } + + // Check if it references it's own converter.... + + foreach (Type interfaceType in candidateType.GetInterfaces()) + { + if (interfaceType.IsGenericType + && interfaceType.GetGenericTypeDefinition().Equals(openGenericInterfaceType)) + { + return interfaceType; + } + } + + return null; + } + + // Author: Sebastian Good + // http://stackoverflow.com/questions/503263/how-to-determine-if-a-type-implements-a-specific-generic-interface-type + internal static bool ImplementsOpenGenericInterface(this Type candidateType, Type openGenericInterfaceType) + { + if (candidateType.Equals(openGenericInterfaceType)) + { + return true; + } + + if (candidateType.IsGenericType && candidateType.GetGenericTypeDefinition().Equals(openGenericInterfaceType)) + { + return true; + } + + foreach (Type i in candidateType.GetInterfaces()) + { + if (i.IsGenericType && i.ImplementsOpenGenericInterface(openGenericInterfaceType)) + { + return true; + } + } + + return false; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Helpers/Seperator.cs b/swaggerci/appplatform/generated/runtime/Helpers/Seperator.cs new file mode 100644 index 000000000000..e3d9f51b8b4b --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Helpers/Seperator.cs @@ -0,0 +1,11 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal static class Seperator + { + internal static readonly char[] Dash = { '-' }; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Helpers/TypeDetails.cs b/swaggerci/appplatform/generated/runtime/Helpers/TypeDetails.cs new file mode 100644 index 000000000000..9399c9584c0e --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Helpers/TypeDetails.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + + + + internal class TypeDetails + { + private readonly Type info; + + internal TypeDetails(Type info) + { + this.info = info ?? throw new ArgumentNullException(nameof(info)); + } + + internal Type NonNullType { get; set; } + + internal object DefaultValue { get; set; } + + internal bool IsNullable { get; set; } + + internal bool IsList { get; set; } + + internal bool IsStringLike { get; set; } + + internal bool IsEnum => info.IsEnum; + + internal bool IsArray => info.IsArray; + + internal bool IsValueType => info.IsValueType; + + internal Type ElementType { get; set; } + + internal IJsonConverter JsonConverter { get; set; } + + #region Creation + + private static readonly ConcurrentDictionary cache = new ConcurrentDictionary(); + + internal static TypeDetails Get() => Get(typeof(T)); + + internal static TypeDetails Get(Type type) => cache.GetOrAdd(type, Create); + + private static TypeDetails Create(Type type) + { + var isGenericList = !type.IsPrimitive && type.ImplementsOpenGenericInterface(typeof(IList<>)); + var isList = !type.IsPrimitive && (isGenericList || typeof(IList).IsAssignableFrom(type)); + + var isNullable = type.IsNullable(); + + Type elementType; + + if (type.IsArray) + { + elementType = type.GetElementType(); + } + else if (isGenericList) + { + var iList = type.GetOpenGenericInterface(typeof(IList<>)); + + elementType = iList.GetGenericArguments()[0]; + } + else + { + elementType = null; + } + + var nonNullType = isNullable ? type.GetGenericArguments()[0] : type; + + var isStringLike = false; + + IJsonConverter converter; + + var jsonConverterAttribute = type.GetCustomAttribute(); + + if (jsonConverterAttribute != null) + { + converter = jsonConverterAttribute.Converter; + } + else if (nonNullType.IsEnum) + { + converter = new EnumConverter(nonNullType); + } + else if (JsonConverterFactory.Instances.TryGetValue(nonNullType, out converter)) + { + } + else if (StringLikeHelper.IsStringLike(nonNullType)) + { + isStringLike = true; + + converter = new StringLikeConverter(nonNullType); + } + + return new TypeDetails(nonNullType) { + NonNullType = nonNullType, + DefaultValue = type.IsValueType ? Activator.CreateInstance(type) : null, + IsNullable = isNullable, + IsList = isList, + IsStringLike = isStringLike, + ElementType = elementType, + JsonConverter = converter + }; + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Helpers/XHelper.cs b/swaggerci/appplatform/generated/runtime/Helpers/XHelper.cs new file mode 100644 index 000000000000..9cd3e1a33c71 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Helpers/XHelper.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal static class XHelper + { + internal static JsonNode Create(JsonType type, TypeCode code, object value) + { + switch (type) + { + case JsonType.Binary : return new XBinary((byte[])value); + case JsonType.Boolean : return new JsonBoolean((bool)value); + case JsonType.Number : return new JsonNumber(value.ToString()); + case JsonType.String : return new JsonString((string)value); + } + + throw new Exception($"JsonType '{type}' does not have a fast conversion"); + } + + internal static bool TryGetElementType(TypeCode code, out JsonType type) + { + switch (code) + { + case TypeCode.Boolean : type = JsonType.Boolean; return true; + case TypeCode.Byte : type = JsonType.Number; return true; + case TypeCode.DateTime : type = JsonType.Date; return true; + case TypeCode.Decimal : type = JsonType.Number; return true; + case TypeCode.Double : type = JsonType.Number; return true; + case TypeCode.Empty : type = JsonType.Null; return true; + case TypeCode.Int16 : type = JsonType.Number; return true; + case TypeCode.Int32 : type = JsonType.Number; return true; + case TypeCode.Int64 : type = JsonType.Number; return true; + case TypeCode.SByte : type = JsonType.Number; return true; + case TypeCode.Single : type = JsonType.Number; return true; + case TypeCode.String : type = JsonType.String; return true; + case TypeCode.UInt16 : type = JsonType.Number; return true; + case TypeCode.UInt32 : type = JsonType.Number; return true; + case TypeCode.UInt64 : type = JsonType.Number; return true; + } + + type = default; + + return false; + } + + internal static JsonType GetElementType(TypeCode code) + { + switch (code) + { + case TypeCode.Boolean : return JsonType.Boolean; + case TypeCode.Byte : return JsonType.Number; + case TypeCode.DateTime : return JsonType.Date; + case TypeCode.Decimal : return JsonType.Number; + case TypeCode.Double : return JsonType.Number; + case TypeCode.Empty : return JsonType.Null; + case TypeCode.Int16 : return JsonType.Number; + case TypeCode.Int32 : return JsonType.Number; + case TypeCode.Int64 : return JsonType.Number; + case TypeCode.SByte : return JsonType.Number; + case TypeCode.Single : return JsonType.Number; + case TypeCode.String : return JsonType.String; + case TypeCode.UInt16 : return JsonType.Number; + case TypeCode.UInt32 : return JsonType.Number; + case TypeCode.UInt64 : return JsonType.Number; + default : return JsonType.Object; + } + + throw new Exception($"TypeCode '{code}' does not have a fast converter"); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/HttpPipeline.cs b/swaggerci/appplatform/generated/runtime/HttpPipeline.cs new file mode 100644 index 000000000000..d9dc96d9e62a --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/HttpPipeline.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. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System.Net.Http; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + using System.Collections; + using System.Linq; + + using GetEventData = System.Func; + using NextDelegate = System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>; + + using SignalDelegate = System.Func, System.Threading.Tasks.Task>; + using GetParameterDelegate = System.Func, string, object>; + using SendAsyncStepDelegate = System.Func, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>; + using PipelineChangeDelegate = System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>; + using ModuleLoadPipelineDelegate = System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>>; + using NewRequestPipelineDelegate = System.Action, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>>; + +/* + public class DelegateBasedEventListener : IEventListener + { + private EventListenerDelegate _listener; + public DelegateBasedEventListener(EventListenerDelegate listener) + { + _listener = listener; + } + public CancellationToken Token => CancellationToken.None; + public System.Action Cancel => () => { }; + + + public Task Signal(string id, CancellationToken token, GetEventData createMessage) + { + return _listener(id, token, () => createMessage()); + } + } +*/ + /// + /// This is a necessary extension to the SendAsyncFactory to support the 'generic' delegate format. + /// + public partial class SendAsyncFactory + { + /// + /// This translates a generic-defined delegate for a listener into one that fits our ISendAsync pattern. + /// (Provided to support out-of-module delegation for Azure Cmdlets) + /// + /// The Pipeline Step as a delegate + public SendAsyncFactory(SendAsyncStepDelegate step) => this.implementation = (request, listener, next) => + step( + request, + listener.Token, + listener.Cancel, + (id, token, getEventData) => listener.Signal(id, token, () => { + var data = EventDataConverter.ConvertFrom( getEventData() ) as EventData; + data.Id = id; + data.Cancel = listener.Cancel; + data.RequestMessage = request; + return data; + }), + (req, token, cancel, listenerDelegate) => next.SendAsync(req, listener)); + } + + public partial class HttpPipeline : ISendAsync + { + public HttpPipeline Append(SendAsyncStepDelegate item) + { + if (item != null) + { + Append(new SendAsyncFactory(item)); + } + return this; + } + + public HttpPipeline Prepend(SendAsyncStepDelegate item) + { + if (item != null) + { + Prepend(new SendAsyncFactory(item)); + } + return this; + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/HttpPipelineMocking.ps1 b/swaggerci/appplatform/generated/runtime/HttpPipelineMocking.ps1 new file mode 100644 index 000000000000..8df771357cff --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/HttpPipelineMocking.ps1 @@ -0,0 +1,110 @@ +$ErrorActionPreference = "Stop" + +# get the recording path +if (-not $TestRecordingFile) { + $TestRecordingFile = Join-Path $PSScriptRoot 'recording.json' +} + +# create the Http Pipeline Recorder +$Mock = New-Object -Type Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PipelineMock $TestRecordingFile + +# set the recorder to the appropriate mode (default to 'live') +Write-Host -ForegroundColor Green "Running '$TestMode' mode..." +switch ($TestMode) { + 'record' { + Write-Host -ForegroundColor Green "Recording to $TestRecordingFile" + $Mock.SetRecord() + $null = erase -ea 0 $TestRecordingFile + } + 'playback' { + if (-not (Test-Path $TestRecordingFile)) { + Write-Host -fore:yellow "Recording file '$TestRecordingFile' is not present. Tests expecting recorded responses will fail" + } else { + Write-Host -ForegroundColor Green "Using recording $TestRecordingFile" + } + $Mock.SetPlayback() + $Mock.ForceResponseHeaders["Retry-After"] = "0"; + } + default: { + $Mock.SetLive() + } +} + +# overrides for Pester Describe/Context/It + +function Describe( + [Parameter(Mandatory = $true, Position = 0)] + [string] $Name, + + [Alias('Tags')] + [string[]] $Tag = @(), + + [Parameter(Position = 1)] + [ValidateNotNull()] + [ScriptBlock] $Fixture = $(Throw "No test script block is provided. (Have you put the open curly brace on the next line?)") +) { + $Mock.PushDescription($Name) + try { + return pester\Describe -Name $Name -Tag $Tag -Fixture $fixture + } + finally { + $Mock.PopDescription() + } +} + +function Context( + [Parameter(Mandatory = $true, Position = 0)] + [string] $Name, + + [Alias('Tags')] + [string[]] $Tag = @(), + + [Parameter(Position = 1)] + [ValidateNotNull()] + [ScriptBlock] $Fixture = $(Throw "No test script block is provided. (Have you put the open curly brace on the next line?)") +) { + $Mock.PushContext($Name) + try { + return pester\Context -Name $Name -Tag $Tag -Fixture $fixture + } + finally { + $Mock.PopContext() + } +} + +function It { + [CmdletBinding(DefaultParameterSetName = 'Normal')] + param( + [Parameter(Mandatory = $true, Position = 0)] + [string]$Name, + + [Parameter(Position = 1)] + [ScriptBlock] $Test = { }, + + [System.Collections.IDictionary[]] $TestCases, + + [Parameter(ParameterSetName = 'Pending')] + [Switch] $Pending, + + [Parameter(ParameterSetName = 'Skip')] + [Alias('Ignore')] + [Switch] $Skip + ) + $Mock.PushScenario($Name) + + try { + if ($skip) { + return pester\It -Name $Name -Test $Test -TestCases $TestCases -Skip + } + if ($pending) { + return pester\It -Name $Name -Test $Test -TestCases $TestCases -Pending + } + return pester\It -Name $Name -Test $Test -TestCases $TestCases + } + finally { + $null = $Mock.PopScenario() + } +} + +# set the HttpPipelineAppend for all the cmdlets +$PSDefaultParameterValues["*:HttpPipelinePrepend"] = $Mock diff --git a/swaggerci/appplatform/generated/runtime/IAssociativeArray.cs b/swaggerci/appplatform/generated/runtime/IAssociativeArray.cs new file mode 100644 index 000000000000..48cdcd0e2acc --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/IAssociativeArray.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +#define DICT_PROPERTIES +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + /// A subset of IDictionary that doesn't implement IEnumerable or IDictionary to work around PowerShell's aggressive formatter + public interface IAssociativeArray + { +#if DICT_PROPERTIES + System.Collections.Generic.IEnumerable Keys { get; } + System.Collections.Generic.IEnumerable Values { get; } + int Count { get; } +#endif + System.Collections.Generic.IDictionary AdditionalProperties { get; } + T this[string index] { get; set; } + void Add(string key, T value); + bool ContainsKey(string key); + bool Remove(string key); + bool TryGetValue(string key, out T value); + void Clear(); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/IHeaderSerializable.cs b/swaggerci/appplatform/generated/runtime/IHeaderSerializable.cs new file mode 100644 index 000000000000..12929942b868 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/IHeaderSerializable.cs @@ -0,0 +1,14 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + public interface IHeaderSerializable + { + void ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/ISendAsync.cs b/swaggerci/appplatform/generated/runtime/ISendAsync.cs new file mode 100644 index 000000000000..7b6759faa2cb --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/ISendAsync.cs @@ -0,0 +1,300 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System.Net.Http; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + using System.Collections; + using System.Linq; + + /// + /// The interface for sending an HTTP request across the wire. + /// + public interface ISendAsync + { + Task SendAsync(HttpRequestMessage request, IEventListener callback); + } + + public class SendAsyncTerminalFactory : ISendAsyncTerminalFactory, ISendAsync + { + SendAsync implementation; + + public SendAsyncTerminalFactory(SendAsync implementation) => this.implementation = implementation; + public SendAsyncTerminalFactory(ISendAsync implementation) => this.implementation = implementation.SendAsync; + public ISendAsync Create() => this; + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => implementation(request, callback); + } + + public partial class SendAsyncFactory : ISendAsyncFactory + { + public class Sender : ISendAsync + { + internal ISendAsync next; + internal SendAsyncStep implementation; + + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => implementation(request, callback, next); + } + SendAsyncStep implementation; + + public SendAsyncFactory(SendAsyncStep implementation) => this.implementation = implementation; + public ISendAsync Create(ISendAsync next) => new Sender { next = next, implementation = implementation }; + + } + + public class HttpClientFactory : ISendAsyncTerminalFactory, ISendAsync + { + HttpClient client; + public HttpClientFactory() : this(new HttpClient()) + { + } + public HttpClientFactory(HttpClient client) => this.client = client; + public ISendAsync Create() => this; + + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, callback.Token); + } + + public interface ISendAsyncFactory + { + ISendAsync Create(ISendAsync next); + } + + public interface ISendAsyncTerminalFactory + { + ISendAsync Create(); + } + + public partial class HttpPipeline : ISendAsync + { + private ISendAsync pipeline; + private ISendAsyncTerminalFactory terminal; + private List steps = new List(); + + public HttpPipeline() : this(new HttpClientFactory()) + { + } + + public HttpPipeline(ISendAsyncTerminalFactory terminalStep) + { + if (terminalStep == null) + { + throw new System.ArgumentNullException(nameof(terminalStep), "Terminal Step Factory in HttpPipeline may not be null"); + } + TerminalFactory = terminalStep; + } + + /// + /// Returns an HttpPipeline with the current state of this pipeline. + /// + public HttpPipeline Clone() => new HttpPipeline(terminal) { steps = this.steps.ToList(), pipeline = this.pipeline }; + + public ISendAsyncTerminalFactory TerminalFactory + { + get => terminal; + set + { + if (value == null) + { + throw new System.ArgumentNullException("TerminalFactory in HttpPipeline may not be null"); + } + terminal = value; + } + } + + public ISendAsync Pipeline + { + get + { + // if the pipeline has been created and not invalidated, return it. + if (this.pipeline != null) + { + return this.pipeline; + } + + // create the pipeline from scratch. + var next = terminal.Create(); + foreach (var factory in steps) + { + // skip factories that return null. + next = factory.Create(next) ?? next; + } + return this.pipeline = next; + } + } + + public int Count => steps.Count; + + public HttpPipeline Prepend(ISendAsyncFactory item) + { + if (item != null) + { + steps.Add(item); + pipeline = null; + } + return this; + } + + public HttpPipeline Append(SendAsyncStep item) + { + if (item != null) + { + Append(new SendAsyncFactory(item)); + } + return this; + } + + public HttpPipeline Prepend(SendAsyncStep item) + { + if (item != null) + { + Prepend(new SendAsyncFactory(item)); + } + return this; + } + public HttpPipeline Append(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Append(new SendAsyncFactory(item)); + } + } + return this; + } + + public HttpPipeline Prepend(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Prepend(new SendAsyncFactory(item)); + } + } + return this; + } + + public HttpPipeline Append(ISendAsyncFactory item) + { + if (item != null) + { + steps.Insert(0, item); + pipeline = null; + } + return this; + } + public HttpPipeline Prepend(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Prepend(item); + } + } + return this; + } + + public HttpPipeline Append(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Append(item); + } + } + return this; + } + + // you can use this as the ISendAsync Implementation + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => Pipeline.SendAsync(request, callback); + } + + internal static partial class Extensions + { + internal static HttpRequestMessage CloneAndDispose(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + using (original) + { + return original.Clone(requestUri, method); + } + } + + internal static Task CloneWithContentAndDispose(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + using (original) + { + return original.CloneWithContent(requestUri, method); + } + } + + /// + /// Clones an HttpRequestMessage (without the content) + /// + /// Original HttpRequestMessage (Will be diposed before returning) + /// + /// + /// A clone of the HttpRequestMessage + internal static HttpRequestMessage Clone(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + var clone = new HttpRequestMessage + { + Method = method ?? original.Method, + RequestUri = requestUri ?? original.RequestUri, + Version = original.Version, + }; + + foreach (KeyValuePair prop in original.Properties) + { + clone.Properties.Add(prop); + } + + foreach (KeyValuePair> header in original.Headers) + { + /* + **temporarily skip cloning telemetry related headers** + clone.Headers.TryAddWithoutValidation(header.Key, header.Value); + */ + if (!"x-ms-unique-id".Equals(header.Key) && !"x-ms-client-request-id".Equals(header.Key) && !"CommandName".Equals(header.Key) && !"FullCommandName".Equals(header.Key) && !"ParameterSetName".Equals(header.Key) && !"User-Agent".Equals(header.Key)) + { + clone.Headers.TryAddWithoutValidation(header.Key, header.Value); + } + } + + return clone; + } + + /// + /// Clones an HttpRequestMessage (including the content stream and content headers) + /// + /// Original HttpRequestMessage (Will be diposed before returning) + /// + /// + /// A clone of the HttpRequestMessage + internal static async Task CloneWithContent(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + var clone = original.Clone(requestUri, method); + var stream = new System.IO.MemoryStream(); + if (original.Content != null) + { + await original.Content.CopyToAsync(stream).ConfigureAwait(false); + stream.Position = 0; + clone.Content = new StreamContent(stream); + if (original.Content.Headers != null) + { + foreach (var h in original.Content.Headers) + { + clone.Content.Headers.Add(h.Key, h.Value); + } + } + } + return clone; + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/InfoAttribute.cs b/swaggerci/appplatform/generated/runtime/InfoAttribute.cs new file mode 100644 index 000000000000..1bcb841985fe --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/InfoAttribute.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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System; + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Class)] + public class InfoAttribute : Attribute + { + public bool Required { get; set; } = false; + public bool ReadOnly { get; set; } = false; + public Type[] PossibleTypes { get; set; } = new Type[0]; + public string Description { get; set; } = ""; + public string SerializedName { get; set; } = ""; + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class CompleterInfoAttribute : Attribute + { + public string Script { get; set; } = ""; + public string Name { get; set; } = ""; + public string Description { get; set; } = ""; + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class DefaultInfoAttribute : Attribute + { + public string Script { get; set; } = ""; + public string Name { get; set; } = ""; + public string Description { get; set; } = ""; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Iso/IsoDate.cs b/swaggerci/appplatform/generated/runtime/Iso/IsoDate.cs new file mode 100644 index 000000000000..99796949b29f --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Iso/IsoDate.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal struct IsoDate + { + internal int Year { get; set; } // 0-3000 + + internal int Month { get; set; } // 1-12 + + internal int Day { get; set; } // 1-31 + + internal int Hour { get; set; } // 0-24 + + internal int Minute { get; set; } // 0-60 (60 is a special case) + + internal int Second { get; set; } // 0-60 (60 is used for leap seconds) + + internal double Millisecond { get; set; } // 0-999.9... + + internal TimeSpan Offset { get; set; } + + internal DateTimeKind Kind { get; set; } + + internal TimeSpan TimeOfDay => new TimeSpan(Hour, Minute, Second); + + internal DateTime ToDateTime() + { + if (Kind == DateTimeKind.Utc || Offset == TimeSpan.Zero) + { + return new DateTime(Year, Month, Day, Hour, Minute, Second, (int)Millisecond, DateTimeKind.Utc); + } + + return ToDateTimeOffset().DateTime; + } + + internal DateTimeOffset ToDateTimeOffset() + { + return new DateTimeOffset( + Year, + Month, + Day, + Hour, + Minute, + Second, + (int)Millisecond, + Offset + ); + } + + internal DateTime ToUtcDateTime() + { + return ToDateTimeOffset().UtcDateTime; + } + + public override string ToString() + { + var sb = new StringBuilder(); + + // yyyy-MM-dd + sb.Append($"{Year}-{Month:00}-{Day:00}"); + + if (TimeOfDay > new TimeSpan(0)) + { + sb.Append($"T{Hour:00}:{Minute:00}"); + + if (TimeOfDay.Seconds > 0) + { + sb.Append($":{Second:00}"); + } + } + + if (Offset.Ticks == 0) + { + sb.Append('Z'); // UTC + } + else + { + if (Offset.Ticks >= 0) + { + sb.Append('+'); + } + + sb.Append($"{Offset.Hours:00}:{Offset.Minutes:00}"); + } + + return sb.ToString(); + } + + internal static IsoDate FromDateTimeOffset(DateTimeOffset date) + { + return new IsoDate { + Year = date.Year, + Month = date.Month, + Day = date.Day, + Hour = date.Hour, + Minute = date.Minute, + Second = date.Second, + Offset = date.Offset, + Kind = date.Offset == TimeSpan.Zero ? DateTimeKind.Utc : DateTimeKind.Unspecified + }; + } + + private static readonly char[] timeSeperators = { ':', '.' }; + + internal static IsoDate Parse(string text) + { + var tzIndex = -1; + var timeIndex = text.IndexOf('T'); + + var builder = new IsoDate { Day = 1, Month = 1 }; + + // TODO: strip the time zone offset off the end + string dateTime = text; + string timeZone = null; + + if (dateTime.IndexOf('Z') > -1) + { + tzIndex = dateTime.LastIndexOf('Z'); + + builder.Kind = DateTimeKind.Utc; + } + else if (dateTime.LastIndexOf('+') > 10) + { + tzIndex = dateTime.LastIndexOf('+'); + } + else if (dateTime.LastIndexOf('-') > 10) + { + tzIndex = dateTime.LastIndexOf('-'); + } + + if (tzIndex > -1) + { + timeZone = dateTime.Substring(tzIndex); + dateTime = dateTime.Substring(0, tzIndex); + } + + string date = (timeIndex == -1) ? dateTime : dateTime.Substring(0, timeIndex); + + var dateParts = date.Split(Seperator.Dash); // '-' + + for (int i = 0; i < dateParts.Length; i++) + { + var part = dateParts[i]; + + switch (i) + { + case 0: builder.Year = int.Parse(part); break; + case 1: builder.Month = int.Parse(part); break; + case 2: builder.Day = int.Parse(part); break; + } + } + + if (timeIndex > -1) + { + string[] timeParts = dateTime.Substring(timeIndex + 1).Split(timeSeperators); + + for (int i = 0; i < timeParts.Length; i++) + { + var part = timeParts[i]; + + switch (i) + { + case 0: builder.Hour = int.Parse(part); break; + case 1: builder.Minute = int.Parse(part); break; + case 2: builder.Second = int.Parse(part); break; + case 3: builder.Millisecond = double.Parse("0." + part) * 1000; break; + } + } + } + + if (timeZone != null && timeZone != "Z") + { + var hours = int.Parse(timeZone.Substring(1, 2)); + var minutes = int.Parse(timeZone.Substring(4, 2)); + + if (timeZone[0] == '-') + { + hours = -hours; + minutes = -minutes; + } + + builder.Offset = new TimeSpan(hours, minutes, 0); + } + + return builder; + } + } + + /* + YYYY # eg 1997 + YYYY-MM # eg 1997-07 + YYYY-MM-DD # eg 1997-07-16 + YYYY-MM-DDThh:mmTZD # eg 1997-07-16T19:20+01:00 + YYYY-MM-DDThh:mm:ssTZD # eg 1997-07-16T19:20:30+01:00 + YYYY-MM-DDThh:mm:ss.sTZD # eg 1997-07-16T19:20:30.45+01:00 + + where: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) (am/pm NOT allowed) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + */ +} diff --git a/swaggerci/appplatform/generated/runtime/JsonType.cs b/swaggerci/appplatform/generated/runtime/JsonType.cs new file mode 100644 index 000000000000..856e9af1520a --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/JsonType.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal enum JsonType + { + Null = 0, + Object = 1, + Array = 2, + Binary = 3, + Boolean = 4, + Date = 5, + Number = 6, + String = 7 + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/MessageAttribute.cs b/swaggerci/appplatform/generated/runtime/MessageAttribute.cs new file mode 100644 index 000000000000..674bc4968c10 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/MessageAttribute.cs @@ -0,0 +1,360 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.generated.runtime.Properties; + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Linq; + using System.Management.Automation; + using System.Text; + + [AttributeUsage(AttributeTargets.All)] + public class GenericBreakingChangeAttribute : Attribute + { + private string _message; + //A dexcription of what the change is about, non mandatory + public string ChangeDescription { get; set; } = null; + + //The version the change is effective from, non mandatory + public string DeprecateByVersion { get; } + public bool DeprecateByVersionSet { get; } = false; + + //The date on which the change comes in effect + public DateTime ChangeInEfectByDate { get; } + public bool ChangeInEfectByDateSet { get; } = false; + + //Old way of calling the cmdlet + public string OldWay { get; set; } + //New way fo calling the cmdlet + public string NewWay { get; set; } + + public GenericBreakingChangeAttribute(string message) + { + _message = message; + } + + public GenericBreakingChangeAttribute(string message, string deprecateByVersion) + { + _message = message; + this.DeprecateByVersion = deprecateByVersion; + this.DeprecateByVersionSet = true; + } + + public GenericBreakingChangeAttribute(string message, string deprecateByVersion, string changeInEfectByDate) + { + _message = message; + this.DeprecateByVersion = deprecateByVersion; + this.DeprecateByVersionSet = true; + + if (DateTime.TryParse(changeInEfectByDate, new CultureInfo("en-US"), DateTimeStyles.None, out DateTime result)) + { + this.ChangeInEfectByDate = result; + this.ChangeInEfectByDateSet = true; + } + } + + public DateTime getInEffectByDate() + { + return this.ChangeInEfectByDate.Date; + } + + + /** + * This function prints out the breaking change message for the attribute on the cmdline + * */ + public void PrintCustomAttributeInfo(Action writeOutput) + { + + if (!GetAttributeSpecificMessage().StartsWith(Environment.NewLine)) + { + writeOutput(Environment.NewLine); + } + writeOutput(string.Format(Resources.BreakingChangesAttributesDeclarationMessage, GetAttributeSpecificMessage())); + + + if (!string.IsNullOrWhiteSpace(ChangeDescription)) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesChangeDescriptionMessage, this.ChangeDescription)); + } + + if (ChangeInEfectByDateSet) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesInEffectByDateMessage, this.ChangeInEfectByDate.ToString("d"))); + } + + if (DeprecateByVersionSet) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesInEffectByVersion, this.DeprecateByVersion)); + } + + if (OldWay != null && NewWay != null) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesUsageChangeMessageConsole, OldWay, NewWay)); + } + } + + public virtual bool IsApplicableToInvocation(InvocationInfo invocation) + { + return true; + } + + protected virtual string GetAttributeSpecificMessage() + { + return _message; + } + } + + [AttributeUsage(AttributeTargets.All)] + public class CmdletBreakingChangeAttribute : GenericBreakingChangeAttribute + { + + public string ReplacementCmdletName { get; set; } + + public CmdletBreakingChangeAttribute() : + base(string.Empty) + { + } + + public CmdletBreakingChangeAttribute(string deprecateByVersione) : + base(string.Empty, deprecateByVersione) + { + } + + public CmdletBreakingChangeAttribute(string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + } + + protected override string GetAttributeSpecificMessage() + { + if (string.IsNullOrWhiteSpace(ReplacementCmdletName)) + { + return Resources.BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement; + } + else + { + return string.Format(Resources.BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement, ReplacementCmdletName); + } + } + } + + [AttributeUsage(AttributeTargets.All)] + public class ParameterSetBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string[] ChangedParameterSet { set; get; } + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet) : + base(string.Empty) + { + ChangedParameterSet = changedParameterSet; + } + + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet, string deprecateByVersione) : + base(string.Empty, deprecateByVersione) + { + ChangedParameterSet = changedParameterSet; + } + + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + ChangedParameterSet = changedParameterSet; + } + + protected override string GetAttributeSpecificMessage() + { + + return Resources.BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement; + + } + + public bool IsApplicableToInvocation(InvocationInfo invocation, string parameterSetName) + { + if (ChangedParameterSet != null) + return ChangedParameterSet.Contains(parameterSetName); + return false; + } + + } + + [AttributeUsage(AttributeTargets.All)] + public class PreviewMessageAttribute : Attribute + { + public string _message; + + public PreviewMessageAttribute() + { + this._message = Resources.PreviewCmdletMessage; + } + + public PreviewMessageAttribute(string message) + { + this._message = message; + } + + public void PrintCustomAttributeInfo(System.Management.Automation.PSCmdlet psCmdlet) + { + psCmdlet.WriteWarning(this._message); + } + + public virtual bool IsApplicableToInvocation(InvocationInfo invocation) + { + return true; + } + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class ParameterBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string NameOfParameterChanging { get; } + + public string ReplaceMentCmdletParameterName { get; set; } = null; + + public bool IsBecomingMandatory { get; set; } = false; + + public String OldParamaterType { get; set; } + + public String NewParameterType { get; set; } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging) : + base(string.Empty) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging, string deprecateByVersion) : + base(string.Empty, deprecateByVersion) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + protected override string GetAttributeSpecificMessage() + { + StringBuilder message = new StringBuilder(); + if (!string.IsNullOrWhiteSpace(ReplaceMentCmdletParameterName)) + { + if (IsBecomingMandatory) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterReplacedMandatory, NameOfParameterChanging, ReplaceMentCmdletParameterName)); + } + else + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterReplaced, NameOfParameterChanging, ReplaceMentCmdletParameterName)); + } + } + else + { + if (IsBecomingMandatory) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterMandatoryNow, NameOfParameterChanging)); + } + else + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterChanging, NameOfParameterChanging)); + } + } + + //See if the type of the param is changing + if (OldParamaterType != null && !string.IsNullOrWhiteSpace(NewParameterType)) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterTypeChange, OldParamaterType, NewParameterType)); + } + return message.ToString(); + } + + /// + /// See if the bound parameters contain the current parameter, if they do + /// then the attribbute is applicable + /// If the invocationInfo is null we return true + /// + /// + /// bool + public override bool IsApplicableToInvocation(InvocationInfo invocationInfo) + { + bool? applicable = invocationInfo == null ? true : invocationInfo.BoundParameters?.Keys?.Contains(this.NameOfParameterChanging); + return applicable.HasValue ? applicable.Value : false; + } + } + + [AttributeUsage(AttributeTargets.All)] + public class OutputBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string DeprecatedCmdLetOutputType { get; } + + //This is still a String instead of a Type as this + //might be undefined at the time of adding the attribute + public string ReplacementCmdletOutputType { get; set; } + + public string[] DeprecatedOutputProperties { get; set; } + + public string[] NewOutputProperties { get; set; } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType) : + base(string.Empty) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType, string deprecateByVersion) : + base(string.Empty, deprecateByVersion) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + protected override string GetAttributeSpecificMessage() + { + StringBuilder message = new StringBuilder(); + + //check for the deprecation scenario + if (string.IsNullOrWhiteSpace(ReplacementCmdletOutputType) && NewOutputProperties == null && DeprecatedOutputProperties == null && string.IsNullOrWhiteSpace(ChangeDescription)) + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputTypeDeprecated, DeprecatedCmdLetOutputType)); + } + else + { + if (!string.IsNullOrWhiteSpace(ReplacementCmdletOutputType)) + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputChange1, DeprecatedCmdLetOutputType, ReplacementCmdletOutputType)); + } + else + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputChange2, DeprecatedCmdLetOutputType)); + } + + if (DeprecatedOutputProperties != null && DeprecatedOutputProperties.Length > 0) + { + message.Append(Resources.BreakingChangesAttributesCmdLetOutputPropertiesRemoved); + foreach (string property in DeprecatedOutputProperties) + { + message.Append(" '" + property + "'"); + } + } + + if (NewOutputProperties != null && NewOutputProperties.Length > 0) + { + message.Append(Resources.BreakingChangesAttributesCmdLetOutputPropertiesAdded); + foreach (string property in NewOutputProperties) + { + message.Append(" '" + property + "'"); + } + } + } + return message.ToString(); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/MessageAttributeHelper.cs b/swaggerci/appplatform/generated/runtime/MessageAttributeHelper.cs new file mode 100644 index 000000000000..7d3226730035 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/MessageAttributeHelper.cs @@ -0,0 +1,161 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.generated.runtime.Properties; + using System; + using System.Collections.Generic; + using System.Linq; + using System.Management.Automation; + using System.Reflection; + using System.Text; + using System.Threading.Tasks; + public class MessageAttributeHelper + { + public const string BREAKING_CHANGE_ATTRIBUTE_INFORMATION_LINK = "https://aka.ms/azps-changewarnings"; + public const string SUPPRESS_ERROR_OR_WARNING_MESSAGE_ENV_VARIABLE_NAME = "SuppressAzurePowerShellBreakingChangeWarnings"; + + /** + * This function takes in a CommandInfo (CmdletInfo or FunctionInfo) + * And reads all the deprecation attributes attached to it + * Prints a message on the cmdline For each of the attribute found + * + * the boundParameterNames is a list of parameters bound to the cmdlet at runtime, + * We only process the Parameter beaking change attributes attached only params listed in this list (if present) + * */ + public static void ProcessCustomAttributesAtRuntime(CommandInfo commandInfo, InvocationInfo invocationInfo, String parameterSet, System.Management.Automation.PSCmdlet psCmdlet) + { + bool supressWarningOrError = false; + + try + { + supressWarningOrError = bool.Parse(System.Environment.GetEnvironmentVariable(SUPPRESS_ERROR_OR_WARNING_MESSAGE_ENV_VARIABLE_NAME)); + } + catch (Exception) + { + //no action + } + + if (supressWarningOrError) + { + //Do not process the attributes at runtime... The env variable to override the warning messages is set + return; + } + + List attributes = new List(GetAllBreakingChangeAttributesInType(commandInfo, invocationInfo, parameterSet)); + StringBuilder sb = new StringBuilder(); + Action appendBreakingChangeInfo = (string s) => sb.Append(s); + + if (attributes != null && attributes.Count > 0) + { + appendBreakingChangeInfo(string.Format(Resources.BreakingChangesAttributesHeaderMessage, commandInfo.Name.Split('_')[0])); + + foreach (GenericBreakingChangeAttribute attribute in attributes) + { + attribute.PrintCustomAttributeInfo(appendBreakingChangeInfo); + } + + appendBreakingChangeInfo(string.Format(Resources.BreakingChangesAttributesFooterMessage, BREAKING_CHANGE_ATTRIBUTE_INFORMATION_LINK)); + + psCmdlet.WriteWarning(sb.ToString()); + } + + List previewAttributes = new List(GetAllPreviewAttributesInType(commandInfo, invocationInfo)); + + if (previewAttributes != null && previewAttributes.Count > 0) + { + foreach (PreviewMessageAttribute attribute in previewAttributes) + { + attribute.PrintCustomAttributeInfo(psCmdlet); + } + } + } + + + /** + * This function takes in a CommandInfo (CmdletInfo or FunctionInfo) + * And returns all the deprecation attributes attached to it + * + * the boundParameterNames is a list of parameters bound to the cmdlet at runtime, + * We only process the Parameter beaking change attributes attached only params listed in this list (if present) + **/ + private static IEnumerable GetAllBreakingChangeAttributesInType(CommandInfo commandInfo, InvocationInfo invocationInfo, String parameterSet) + { + List attributeList = new List(); + + if (commandInfo.GetType() == typeof(CmdletInfo)) + { + var type = ((CmdletInfo)commandInfo).ImplementingType; + attributeList.AddRange(type.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + + foreach (MethodInfo m in type.GetRuntimeMethods()) + { + attributeList.AddRange((m.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast())); + } + + foreach (FieldInfo f in type.GetRuntimeFields()) + { + attributeList.AddRange(f.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + } + + foreach (PropertyInfo p in type.GetRuntimeProperties()) + { + attributeList.AddRange(p.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + } + } + else if (commandInfo.GetType() == typeof(FunctionInfo)) + { + attributeList.AddRange(((FunctionInfo)commandInfo).ScriptBlock.Attributes.Where(e => typeof(GenericBreakingChangeAttribute).IsAssignableFrom(e.GetType())).Cast()); + foreach (var parameter in ((FunctionInfo)commandInfo).Parameters) + { + attributeList.AddRange(parameter.Value.Attributes.Where(e => typeof(GenericBreakingChangeAttribute).IsAssignableFrom(e.GetType())).Cast()); + } + } + return invocationInfo == null ? attributeList : attributeList.Where(e => e.GetType() == typeof(ParameterSetBreakingChangeAttribute) ? ((ParameterSetBreakingChangeAttribute)e).IsApplicableToInvocation(invocationInfo, parameterSet) : e.IsApplicableToInvocation(invocationInfo)); + } + private static IEnumerable GetAllPreviewAttributesInType(CommandInfo commandInfo, InvocationInfo invocationInfo) + { + List attributeList = new List(); + if (commandInfo.GetType() == typeof(CmdletInfo)) + { + var type = ((CmdletInfo)commandInfo).ImplementingType; + attributeList.AddRange(type.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + + foreach (MethodInfo m in type.GetRuntimeMethods()) + { + attributeList.AddRange((m.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast())); + } + + foreach (FieldInfo f in type.GetRuntimeFields()) + { + attributeList.AddRange(f.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + } + + foreach (PropertyInfo p in type.GetRuntimeProperties()) + { + attributeList.AddRange(p.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + } + } + else if (commandInfo.GetType() == typeof(FunctionInfo)) + { + attributeList.AddRange(((FunctionInfo)commandInfo).ScriptBlock.Attributes.Where(e => typeof(PreviewMessageAttribute).IsAssignableFrom(e.GetType())).Cast()); + foreach (var parameter in ((FunctionInfo)commandInfo).Parameters) + { + attributeList.AddRange(parameter.Value.Attributes.Where(e => typeof(PreviewMessageAttribute).IsAssignableFrom(e.GetType())).Cast()); + } + } + return invocationInfo == null ? attributeList : attributeList.Where(e => e.IsApplicableToInvocation(invocationInfo)); + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/Method.cs b/swaggerci/appplatform/generated/runtime/Method.cs new file mode 100644 index 000000000000..761b3234dff4 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Method.cs @@ -0,0 +1,19 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + internal static class Method + { + internal static System.Net.Http.HttpMethod Get = System.Net.Http.HttpMethod.Get; + internal static System.Net.Http.HttpMethod Put = System.Net.Http.HttpMethod.Put; + internal static System.Net.Http.HttpMethod Head = System.Net.Http.HttpMethod.Head; + internal static System.Net.Http.HttpMethod Post = System.Net.Http.HttpMethod.Post; + internal static System.Net.Http.HttpMethod Delete = System.Net.Http.HttpMethod.Delete; + internal static System.Net.Http.HttpMethod Options = System.Net.Http.HttpMethod.Options; + internal static System.Net.Http.HttpMethod Trace = System.Net.Http.HttpMethod.Trace; + internal static System.Net.Http.HttpMethod Patch = new System.Net.Http.HttpMethod("PATCH"); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Models/JsonMember.cs b/swaggerci/appplatform/generated/runtime/Models/JsonMember.cs new file mode 100644 index 000000000000..629c3f90557b --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Models/JsonMember.cs @@ -0,0 +1,83 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Reflection; +using System.Runtime.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + + + internal sealed class JsonMember + { + private readonly TypeDetails type; + + private readonly Func getter; + private readonly Action setter; + + internal JsonMember(PropertyInfo property, int defaultOrder) + { + getter = property.GetValue; + setter = property.SetValue; + + var dataMember = property.GetCustomAttribute(); + + Name = dataMember?.Name ?? property.Name; + Order = dataMember?.Order ?? defaultOrder; + EmitDefaultValue = dataMember?.EmitDefaultValue ?? true; + + this.type = TypeDetails.Get(property.PropertyType); + + CanRead = property.CanRead; + } + + internal JsonMember(FieldInfo field, int defaultOrder) + { + getter = field.GetValue; + setter = field.SetValue; + + var dataMember = field.GetCustomAttribute(); + + Name = dataMember?.Name ?? field.Name; + Order = dataMember?.Order ?? defaultOrder; + EmitDefaultValue = dataMember?.EmitDefaultValue ?? true; + + this.type = TypeDetails.Get(field.FieldType); + + CanRead = true; + } + + internal string Name { get; } + + internal int Order { get; } + + internal TypeDetails TypeDetails => type; + + internal Type Type => type.NonNullType; + + internal bool IsList => type.IsList; + + // Arrays, Sets, ... + internal Type ElementType => type.ElementType; + + internal IJsonConverter Converter => type.JsonConverter; + + internal bool EmitDefaultValue { get; } + + internal bool IsStringLike => type.IsStringLike; + + internal object DefaultValue => type.DefaultValue; + + internal bool CanRead { get; } + + #region Helpers + + internal object GetValue(object instance) => getter(instance); + + internal void SetValue(object instance, object value) => setter(instance, value); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Models/JsonModel.cs b/swaggerci/appplatform/generated/runtime/Models/JsonModel.cs new file mode 100644 index 000000000000..3df16da8af40 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Models/JsonModel.cs @@ -0,0 +1,89 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal class JsonModel + { + private Dictionary map; + private readonly object _sync = new object(); + + private JsonModel(Type type, List members) + { + Type = type ?? throw new ArgumentNullException(nameof(type)); + Members = members ?? throw new ArgumentNullException(nameof(members)); + } + + internal string Name => Type.Name; + + internal Type Type { get; } + + internal List Members { get; } + + internal JsonMember this[string name] + { + get + { + if (map == null) + { + lock (_sync) + { + if (map == null) + { + map = new Dictionary(); + + foreach (JsonMember m in Members) + { + map[m.Name.ToLower()] = m; + } + } + } + } + + + map.TryGetValue(name.ToLower(), out JsonMember member); + + return member; + } + } + + internal static JsonModel FromType(Type type) + { + var members = new List(); + + int i = 0; + + // BindingFlags.Instance | BindingFlags.Public + + foreach (var member in type.GetFields()) + { + if (member.IsStatic) continue; + + if (member.IsDefined(typeof(IgnoreDataMemberAttribute))) continue; + + members.Add(new JsonMember(member, i)); + + i++; + } + + foreach (var member in type.GetProperties(BindingFlags.Public | BindingFlags.Instance)) + { + if (member.IsDefined(typeof(IgnoreDataMemberAttribute))) continue; + + members.Add(new JsonMember(member, i)); + + i++; + } + + members.Sort((a, b) => a.Order.CompareTo(b.Order)); // inline sort + + return new JsonModel(type, members); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Models/JsonModelCache.cs b/swaggerci/appplatform/generated/runtime/Models/JsonModelCache.cs new file mode 100644 index 000000000000..eab7e70ed7fa --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Models/JsonModelCache.cs @@ -0,0 +1,19 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Runtime.CompilerServices; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal static class JsonModelCache + { + private static readonly ConditionalWeakTable cache + = new ConditionalWeakTable(); + + internal static JsonModel Get(Type type) => cache.GetValue(type, Create); + + private static JsonModel Create(Type type) => JsonModel.FromType(type); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/Collections/JsonArray.cs b/swaggerci/appplatform/generated/runtime/Nodes/Collections/JsonArray.cs new file mode 100644 index 000000000000..fa10fb597e79 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/Collections/JsonArray.cs @@ -0,0 +1,65 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public abstract partial class JsonArray : JsonNode, IEnumerable + { + internal override JsonType Type => JsonType.Array; + + internal abstract JsonType? ElementType { get; } + + public abstract int Count { get; } + + internal virtual bool IsSet => false; + + internal bool IsEmpty => Count == 0; + + #region IEnumerable + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + + #endregion + + #region Static Helpers + + internal static JsonArray Create(short[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(int[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(long[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(decimal[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(float[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(string[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(XBinary[] values) + => new XImmutableArray(values); + + #endregion + + internal static new JsonArray Parse(string text) + => (JsonArray)JsonNode.Parse(text); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/Collections/XImmutableArray.cs b/swaggerci/appplatform/generated/runtime/Nodes/Collections/XImmutableArray.cs new file mode 100644 index 000000000000..f2032c48a2b9 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/Collections/XImmutableArray.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal sealed class XImmutableArray : JsonArray, IEnumerable + { + private readonly T[] values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XImmutableArray(T[] values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + public override JsonNode this[int index] => + XHelper.Create(elementType, elementCode, values[index]); + + internal override JsonType? ElementType => elementType; + + public override int Count => values.Length; + + public bool IsReadOnly => true; + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (T value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (T value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + + #region Static Constructor + + internal XImmutableArray Create(T[] items) + { + return new XImmutableArray(items); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/Collections/XList.cs b/swaggerci/appplatform/generated/runtime/Nodes/Collections/XList.cs new file mode 100644 index 000000000000..65442a4036af --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/Collections/XList.cs @@ -0,0 +1,64 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal sealed class XList : JsonArray, IEnumerable + { + private readonly IList values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XList(IList values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + public override JsonNode this[int index] => + XHelper.Create(elementType, elementCode, values[index]); + + internal override JsonType? ElementType => elementType; + + public override int Count => values.Count; + + public bool IsReadOnly => values.IsReadOnly; + + #region IList + + public void Add(T value) + { + values.Add(value); + } + + public bool Contains(T value) => values.Contains(value); + + #endregion + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/Collections/XNodeArray.cs b/swaggerci/appplatform/generated/runtime/Nodes/Collections/XNodeArray.cs new file mode 100644 index 000000000000..c147c77e2145 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/Collections/XNodeArray.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. + *--------------------------------------------------------------------------------------------*/ +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed partial class XNodeArray : JsonArray, ICollection + { + private readonly List items; + + internal XNodeArray() + { + items = new List(); + } + + internal XNodeArray(params JsonNode[] values) + { + items = new List(values); + } + + public override JsonNode this[int index] => items[index]; + + internal override JsonType? ElementType => null; + + public bool IsReadOnly => false; + + public override int Count => items.Count; + + #region ICollection Members + + public void Add(JsonNode item) + { + items.Add(item); + } + + void ICollection.Clear() + { + items.Clear(); + } + + public bool Contains(JsonNode item) => items.Contains(item); + + void ICollection.CopyTo(JsonNode[] array, int arrayIndex) + { + items.CopyTo(array, arrayIndex); + } + + public bool Remove(JsonNode item) + { + return items.Remove(item); + } + + #endregion + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/Collections/XSet.cs b/swaggerci/appplatform/generated/runtime/Nodes/Collections/XSet.cs new file mode 100644 index 000000000000..8c160513c9cd --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/Collections/XSet.cs @@ -0,0 +1,60 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal sealed class XSet : JsonArray, IEnumerable + { + private readonly HashSet values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XSet(IEnumerable values) + : this(new HashSet(values)) + { } + + internal XSet(HashSet values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + internal override JsonType Type => JsonType.Array; + + internal override JsonType? ElementType => elementType; + + public bool IsReadOnly => true; + + public override int Count => values.Count; + + internal override bool IsSet => true; + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + + internal HashSet AsHashSet() => values; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/JsonBoolean.cs b/swaggerci/appplatform/generated/runtime/Nodes/JsonBoolean.cs new file mode 100644 index 000000000000..8259ca5a5c7b --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/JsonBoolean.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal sealed partial class JsonBoolean : JsonNode + { + internal static readonly JsonBoolean True = new JsonBoolean(true); + internal static readonly JsonBoolean False = new JsonBoolean(false); + + internal JsonBoolean(bool value) + { + Value = value; + } + + internal bool Value { get; } + + internal override JsonType Type => JsonType.Boolean; + + internal static new JsonBoolean Parse(string text) + { + switch (text) + { + case "false": return False; + case "true": return True; + + default: throw new ArgumentException($"Expected true or false. Was {text}."); + } + } + + #region Implicit Casts + + public static implicit operator bool(JsonBoolean data) => data.Value; + + public static implicit operator JsonBoolean(bool data) => new JsonBoolean(data); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/JsonDate.cs b/swaggerci/appplatform/generated/runtime/Nodes/JsonDate.cs new file mode 100644 index 000000000000..a55a9dc90bf1 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/JsonDate.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + + + internal sealed partial class JsonDate : JsonNode, IEquatable, IComparable + { + internal static bool AssumeUtcWhenKindIsUnspecified = true; + + private readonly DateTimeOffset value; + + internal JsonDate(DateTime value) + { + if (value.Kind == DateTimeKind.Unspecified && AssumeUtcWhenKindIsUnspecified) + { + value = DateTime.SpecifyKind(value, DateTimeKind.Utc); + } + + this.value = value; + } + + internal JsonDate(DateTimeOffset value) + { + this.value = value; + } + + internal override JsonType Type => JsonType.Date; + + #region Helpers + + internal DateTimeOffset ToDateTimeOffset() + { + return value; + } + + internal DateTime ToDateTime() + { + if (value.Offset == TimeSpan.Zero) + { + return value.UtcDateTime; + } + + return value.DateTime; + } + + internal DateTime ToUtcDateTime() => value.UtcDateTime; + + internal int ToUnixTimeSeconds() + { + return (int)value.ToUnixTimeSeconds(); + } + + internal long ToUnixTimeMilliseconds() + { + return (int)value.ToUnixTimeMilliseconds(); + } + + internal string ToIsoString() + { + return IsoDate.FromDateTimeOffset(value).ToString(); + } + + #endregion + + public override string ToString() + { + return ToIsoString(); + } + + internal static new JsonDate Parse(string text) + { + if (text == null) throw new ArgumentNullException(nameof(text)); + + // TODO support: unixtimeseconds.partialseconds + + if (text.Length > 4 && _IsNumber(text)) // UnixTime + { + var date = DateTimeOffset.FromUnixTimeSeconds(long.Parse(text)); + + return new JsonDate(date); + } + else if (text.Length <= 4 || text[4] == '-') // ISO: 2012- + { + return new JsonDate(IsoDate.Parse(text).ToDateTimeOffset()); + } + else + { + // NOT ISO ENCODED + // "Thu, 5 Apr 2012 16:59:01 +0200", + return new JsonDate(DateTimeOffset.Parse(text)); + } + } + + private static bool _IsNumber(string text) + { + foreach (var c in text) + { + if (!char.IsDigit(c)) return false; + } + + return true; + } + + internal static JsonDate FromUnixTime(int seconds) + { + return new JsonDate(DateTimeOffset.FromUnixTimeSeconds(seconds)); + } + + internal static JsonDate FromUnixTime(double seconds) + { + var milliseconds = (long)(seconds * 1000d); + + return new JsonDate(DateTimeOffset.FromUnixTimeMilliseconds(milliseconds)); + } + + #region Implicit Casts + + public static implicit operator DateTimeOffset(JsonDate value) + => value.ToDateTimeOffset(); + + public static implicit operator DateTime(JsonDate value) + => value.ToDateTime(); + + // From Date + public static implicit operator JsonDate(DateTimeOffset value) + { + return new JsonDate(value); + } + + public static implicit operator JsonDate(DateTime value) + { + return new JsonDate(value); + } + + // From String + public static implicit operator JsonDate(string value) + { + return Parse(value); + } + + #endregion + + #region Equality + + public override bool Equals(object obj) + { + return obj is JsonDate date && date.value == this.value; + } + + public bool Equals(JsonDate other) + { + return this.value == other.value; + } + + public override int GetHashCode() => value.GetHashCode(); + + #endregion + + #region IComparable Members + + int IComparable.CompareTo(JsonDate other) + { + return value.CompareTo(other.value); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/JsonNode.cs b/swaggerci/appplatform/generated/runtime/Nodes/JsonNode.cs new file mode 100644 index 000000000000..b8aee6cc616a --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/JsonNode.cs @@ -0,0 +1,250 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + + + public abstract partial class JsonNode + { + internal abstract JsonType Type { get; } + + public virtual JsonNode this[int index] => throw new NotImplementedException(); + + public virtual JsonNode this[string name] + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + #region Type Helpers + + internal bool IsArray => Type == JsonType.Array; + + internal bool IsDate => Type == JsonType.Date; + + internal bool IsObject => Type == JsonType.Object; + + internal bool IsNumber => Type == JsonType.Number; + + internal bool IsNull => Type == JsonType.Null; + + #endregion + + internal void WriteTo(TextWriter textWriter, bool pretty = true) + { + var writer = new JsonWriter(textWriter, pretty); + + writer.WriteNode(this); + } + + internal T As() + where T : new() + => new JsonSerializer().Deseralize((JsonObject)this); + + internal T[] ToArrayOf() + { + return (T[])new JsonSerializer().DeserializeArray(typeof(T[]), (JsonArray)this); + } + + #region ToString Overrides + + public override string ToString() => ToString(pretty: true); + + internal string ToString(bool pretty) + { + var sb = new StringBuilder(); + + using (var writer = new StringWriter(sb)) + { + WriteTo(writer, pretty); + + return sb.ToString(); + } + } + + #endregion + + #region Static Constructors + + internal static JsonNode Parse(string text) + { + return Parse(new SourceReader(new StringReader(text))); + } + + internal static JsonNode Parse(TextReader textReader) + => Parse(new SourceReader(textReader)); + + private static JsonNode Parse(SourceReader sourceReader) + { + using (var parser = new JsonParser(sourceReader)) + { + return parser.ReadNode(); + } + } + + internal static JsonNode FromObject(object instance) + => new JsonSerializer().Serialize(instance); + + #endregion + + #region Implict Casts + + public static implicit operator string(JsonNode node) => node.ToString(); + + #endregion + + #region Explict Casts + + public static explicit operator DateTime(JsonNode node) + { + switch (node.Type) + { + case JsonType.Date: + return ((JsonDate)node).ToDateTime(); + + case JsonType.String: + return JsonDate.Parse(node.ToString()).ToDateTime(); + + case JsonType.Number: + var num = (JsonNumber)node; + + if (num.IsInteger) + { + return DateTimeOffset.FromUnixTimeSeconds(num).UtcDateTime; + } + else + { + return DateTimeOffset.FromUnixTimeMilliseconds((long)((double)num * 1000)).UtcDateTime; + } + } + + throw new ConversionException(node, typeof(DateTime)); + } + + public static explicit operator DateTimeOffset(JsonNode node) + { + switch (node.Type) + { + case JsonType.Date : return ((JsonDate)node).ToDateTimeOffset(); + case JsonType.String : return JsonDate.Parse(node.ToString()).ToDateTimeOffset(); + + case JsonType.Number: + var num = (JsonNumber)node; + + if (num.IsInteger) + { + return DateTimeOffset.FromUnixTimeSeconds(num); + } + else + { + return DateTimeOffset.FromUnixTimeMilliseconds((long)((double)num * 1000)); + } + + } + + throw new ConversionException(node, typeof(DateTimeOffset)); + } + + public static explicit operator float(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return float.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(float)); + } + + public static explicit operator double(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return double.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(double)); + } + + public static explicit operator decimal(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number: return (JsonNumber)node; + case JsonType.String: return decimal.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(decimal)); + } + + public static explicit operator Guid(JsonNode node) + => new Guid(node.ToString()); + + public static explicit operator short(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return short.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(short)); + } + + public static explicit operator int(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return int.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(int)); + } + + public static explicit operator long(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number: return (JsonNumber)node; + case JsonType.String: return long.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(long)); + } + + public static explicit operator bool(JsonNode node) + => ((JsonBoolean)node).Value; + + public static explicit operator ushort(JsonNode node) + => (JsonNumber)node; + + public static explicit operator uint(JsonNode node) + => (JsonNumber)node; + + public static explicit operator ulong(JsonNode node) + => (JsonNumber)node; + + public static explicit operator TimeSpan(JsonNode node) + => TimeSpan.Parse(node.ToString()); + + public static explicit operator Uri(JsonNode node) + { + if (node.Type == JsonType.String) + { + return new Uri(node.ToString()); + } + + throw new ConversionException(node, typeof(Uri)); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/JsonNumber.cs b/swaggerci/appplatform/generated/runtime/Nodes/JsonNumber.cs new file mode 100644 index 000000000000..88993ad1523b --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/JsonNumber.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed partial class JsonNumber : JsonNode + { + private readonly string value; + private readonly bool overflows = false; + + internal JsonNumber(string value) + { + this.value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal JsonNumber(int value) + { + this.value = value.ToString(); + } + + internal JsonNumber(long value) + { + this.value = value.ToString(); + + if (value > 9007199254740991) + { + overflows = true; + } + } + + internal JsonNumber(float value) + { + this.value = value.ToString(System.Globalization.CultureInfo.InvariantCulture); + } + + internal JsonNumber(double value) + { + this.value = value.ToString(System.Globalization.CultureInfo.InvariantCulture); + } + + internal override JsonType Type => JsonType.Number; + + internal string Value => value; + + #region Helpers + + internal bool Overflows => overflows; + + internal bool IsInteger => !value.Contains("."); + + internal bool IsFloat => value.Contains("."); + + #endregion + + #region Casting + + public static implicit operator byte(JsonNumber number) + => byte.Parse(number.Value); + + public static implicit operator short(JsonNumber number) + => short.Parse(number.Value); + + public static implicit operator int(JsonNumber number) + => int.Parse(number.Value); + + public static implicit operator long(JsonNumber number) + => long.Parse(number.value); + + public static implicit operator UInt16(JsonNumber number) + => ushort.Parse(number.Value); + + public static implicit operator UInt32(JsonNumber number) + => uint.Parse(number.Value); + + public static implicit operator UInt64(JsonNumber number) + => ulong.Parse(number.Value); + + public static implicit operator decimal(JsonNumber number) + => decimal.Parse(number.Value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator Double(JsonNumber number) + => double.Parse(number.value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator float(JsonNumber number) + => float.Parse(number.value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator JsonNumber(short data) + => new JsonNumber(data.ToString()); + + public static implicit operator JsonNumber(int data) + => new JsonNumber(data); + + public static implicit operator JsonNumber(long data) + => new JsonNumber(data); + + public static implicit operator JsonNumber(Single data) + => new JsonNumber(data.ToString()); + + public static implicit operator JsonNumber(double data) + => new JsonNumber(data.ToString()); + + #endregion + + public override string ToString() => value; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/JsonObject.cs b/swaggerci/appplatform/generated/runtime/Nodes/JsonObject.cs new file mode 100644 index 000000000000..a7568619ef91 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/JsonObject.cs @@ -0,0 +1,172 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public partial class JsonObject : JsonNode, IDictionary + { + private readonly Dictionary items; + + internal JsonObject() + { + items = new Dictionary(); + } + + internal JsonObject(IEnumerable> properties) + { + if (properties == null) throw new ArgumentNullException(nameof(properties)); + + items = new Dictionary(); + + foreach (var field in properties) + { + items.Add(field.Key, field.Value); + } + } + + #region IDictionary Constructors + + internal JsonObject(IDictionary dic) + { + items = new Dictionary(dic.Count); + + foreach (var pair in dic) + { + Add(pair.Key, pair.Value); + } + } + + #endregion + + internal override JsonType Type => JsonType.Object; + + #region Add Overloads + + public void Add(string name, JsonNode value) => + items.Add(name, value); + + public void Add(string name, byte[] value) => + items.Add(name, new XBinary(value)); + + public void Add(string name, DateTime value) => + items.Add(name, new JsonDate(value)); + + public void Add(string name, int value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, long value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, float value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, double value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, string value) => + items.Add(name, new JsonString(value)); + + public void Add(string name, bool value) => + items.Add(name, new JsonBoolean(value)); + + public void Add(string name, Uri url) => + items.Add(name, new JsonString(url.AbsoluteUri)); + + public void Add(string name, string[] values) => + items.Add(name, new XImmutableArray(values)); + + public void Add(string name, int[] values) => + items.Add(name, new XImmutableArray(values)); + + #endregion + + #region ICollection> Members + + void ICollection>.Add(KeyValuePair item) + { + items.Add(item.Key, item.Value); + } + + void ICollection>.Clear() + { + items.Clear(); + } + + bool ICollection>.Contains(KeyValuePair item) => + throw new NotImplementedException(); + + void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) => + throw new NotImplementedException(); + + + int ICollection>.Count => items.Count; + + bool ICollection>.IsReadOnly => false; + + bool ICollection>.Remove(KeyValuePair item) => + throw new NotImplementedException(); + + #endregion + + #region IDictionary Members + + public bool ContainsKey(string key) => items.ContainsKey(key); + + public ICollection Keys => items.Keys; + + public bool Remove(string key) => items.Remove(key); + + public bool TryGetValue(string key, out JsonNode value) => + items.TryGetValue(key, out value); + + public ICollection Values => items.Values; + + public override JsonNode this[string key] + { + get => items[key]; + set => items[key] = value; + } + + #endregion + + #region IEnumerable + + IEnumerator> IEnumerable>.GetEnumerator() + => items.GetEnumerator(); + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + #endregion + + #region Helpers + + internal static new JsonObject FromObject(object instance) => + (JsonObject)new JsonSerializer().Serialize(instance); + + #endregion + + #region Static Constructors + + internal static JsonObject FromStream(Stream stream) + { + using (var tr = new StreamReader(stream)) + { + return (JsonObject)Parse(tr); + } + } + + internal static new JsonObject Parse(string text) + { + return (JsonObject)JsonNode.Parse(text); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/JsonString.cs b/swaggerci/appplatform/generated/runtime/Nodes/JsonString.cs new file mode 100644 index 000000000000..fe4b523375fd --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/JsonString.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed partial class JsonString : JsonNode, IEquatable + { + private readonly string value; + + internal JsonString(string value) + { + this.value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal override JsonType Type => JsonType.String; + + internal string Value => value; + + internal int Length => value.Length; + + #region #region Implicit Casts + + public static implicit operator string(JsonString data) => data.Value; + + public static implicit operator JsonString(string value) => new JsonString(value); + + #endregion + + public override int GetHashCode() => value.GetHashCode(); + + public override string ToString() => value; + + #region IEquatable + + bool IEquatable.Equals(JsonString other) => this.Value == other.Value; + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/XBinary.cs b/swaggerci/appplatform/generated/runtime/Nodes/XBinary.cs new file mode 100644 index 000000000000..befd48232511 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/XBinary.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal sealed class XBinary : JsonNode + { + private readonly byte[] _value; + private readonly string _base64; + + internal XBinary(byte[] value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal XBinary(string base64EncodedString) + { + _base64 = base64EncodedString ?? throw new ArgumentNullException(nameof(base64EncodedString)); + } + + internal override JsonType Type => JsonType.Binary; + + internal byte[] Value => _value ?? Convert.FromBase64String(_base64); + + #region #region Implicit Casts + + public static implicit operator byte[] (XBinary data) => data.Value; + + public static implicit operator XBinary(byte[] data) => new XBinary(data); + + #endregion + + public override int GetHashCode() => Value.GetHashCode(); + + public override string ToString() => _base64 ?? Convert.ToBase64String(_value); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Nodes/XNull.cs b/swaggerci/appplatform/generated/runtime/Nodes/XNull.cs new file mode 100644 index 000000000000..46c0755ae7c0 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Nodes/XNull.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal sealed class XNull : JsonNode + { + internal static readonly XNull Instance = new XNull(); + + private XNull() { } + + internal override JsonType Type => JsonType.Null; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Parser/Exceptions/ParseException.cs b/swaggerci/appplatform/generated/runtime/Parser/Exceptions/ParseException.cs new file mode 100644 index 000000000000..52c50bc6cb34 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Parser/Exceptions/ParseException.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal class ParserException : Exception + { + internal ParserException(string message) + : base(message) + { } + + internal ParserException(string message, SourceLocation location) + : base(message) + { + + Location = location; + } + + internal SourceLocation Location { get; } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Parser/JsonParser.cs b/swaggerci/appplatform/generated/runtime/Parser/JsonParser.cs new file mode 100644 index 000000000000..12ee94e053bc --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Parser/JsonParser.cs @@ -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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public class JsonParser : IDisposable + { + private readonly TokenReader reader; + + internal JsonParser(TextReader reader) + : this(new SourceReader(reader)) { } + + internal JsonParser(SourceReader sourceReader) + { + if (sourceReader == null) + throw new ArgumentNullException(nameof(sourceReader)); + + this.reader = new TokenReader(new JsonTokenizer(sourceReader)); + + this.reader.Next(); // Start with the first token + } + + internal IEnumerable ReadNodes() + { + JsonNode node; + + while ((node = ReadNode()) != null) yield return node; + } + + internal JsonNode ReadNode() + { + if (reader.Current.Kind == TokenKind.Eof || reader.Current.IsTerminator) + { + return null; + } + + switch (reader.Current.Kind) + { + case TokenKind.LeftBrace : return ReadObject(); // { + case TokenKind.LeftBracket : return ReadArray(); // [ + + default: throw new ParserException($"Expected '{{' or '['. Was {reader.Current}."); + } + } + + private JsonNode ReadFieldValue() + { + // Boolean, Date, Null, Number, String, Uri + if (reader.Current.IsLiteral) + { + return ReadLiteral(); + } + else + { + switch (reader.Current.Kind) + { + case TokenKind.LeftBracket: return ReadArray(); + case TokenKind.LeftBrace : return ReadObject(); + + default: throw new ParserException($"Unexpected token reading field value. Was {reader.Current}."); + } + } + } + + private JsonNode ReadLiteral() + { + var literal = reader.Current; + + reader.Next(); // Read the literal token + + switch (literal.Kind) + { + case TokenKind.Boolean : return JsonBoolean.Parse(literal.Value); + case TokenKind.Null : return XNull.Instance; + case TokenKind.Number : return new JsonNumber(literal.Value); + case TokenKind.String : return new JsonString(literal.Value); + + default: throw new ParserException($"Unexpected token reading literal. Was {literal}."); + } + } + + internal JsonObject ReadObject() + { + reader.Ensure(TokenKind.LeftBrace, "object"); + + reader.Next(); // Read '{' (Object start) + + var jsonObject = new JsonObject(); + + // Read the object's fields until we reach the end of the object ('}') + while (reader.Current.Kind != TokenKind.RightBrace) + { + if (reader.Current.Kind == TokenKind.Comma) + { + reader.Next(); // Read ',' (Seperator) + } + + // Ensure we have a field name + reader.Ensure(TokenKind.String, "Expected field name"); + + var field = ReadField(); + + jsonObject.Add(field.Key, field.Value); + } + + reader.Next(); // Read '}' (Object end) + + return jsonObject; + } + + + // TODO: Use ValueTuple in C#7 + private KeyValuePair ReadField() + { + var fieldName = reader.Current.Value; + + reader.Next(); // Read the field name + + reader.Ensure(TokenKind.Colon, "field"); + + reader.Next(); // Read ':' (Field value indicator) + + return new KeyValuePair(fieldName, ReadFieldValue()); + } + + + internal JsonArray ReadArray() + { + reader.Ensure(TokenKind.LeftBracket, "array"); + + var array = new XNodeArray(); + + reader.Next(); // Read the '[' (Array start) + + // Read the array's items + while (reader.Current.Kind != TokenKind.RightBracket) + { + if (reader.Current.Kind == TokenKind.Comma) + { + reader.Next(); // Read the ',' (Seperator) + } + + if (reader.Current.IsLiteral) + { + array.Add(ReadLiteral()); // Boolean, Date, Number, Null, String, Uri + } + else if (reader.Current.Kind == TokenKind.LeftBracket) + { + array.Add(ReadArray()); // Array + } + else if (reader.Current.Kind == TokenKind.LeftBrace) + { + array.Add(ReadObject()); // Object + } + else + { + throw new ParserException($"Expected comma, literal, or object. Was {reader.Current}."); + } + } + + reader.Next(); // Read the ']' (Array end) + + return array; + } + + #region IDisposable + + public void Dispose() + { + reader.Dispose(); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Parser/JsonToken.cs b/swaggerci/appplatform/generated/runtime/Parser/JsonToken.cs new file mode 100644 index 000000000000..df9030555d58 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Parser/JsonToken.cs @@ -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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal enum TokenKind + { + LeftBrace, // { Object start + RightBrace, // } Object end + + LeftBracket, // [ Array start + RightBracket, // ] Array end + + Comma, // , Comma + Colon, // : Value indicator + Dot, // . Access field indicator + Terminator, // \0 Stream terminator + + Boolean = 31, // true or false + Null = 33, // null + Number = 34, // i.e. -1.93, -1, 0, 1, 1.1 + String = 35, // i.e. "text" + + Eof = 50 + } + + internal /* readonly */ struct JsonToken + { + internal static readonly JsonToken BraceOpen = new JsonToken(TokenKind.LeftBrace, "{"); + internal static readonly JsonToken BraceClose = new JsonToken(TokenKind.RightBrace, "}"); + + internal static readonly JsonToken BracketOpen = new JsonToken(TokenKind.LeftBracket, "["); + internal static readonly JsonToken BracketClose = new JsonToken(TokenKind.RightBracket, "]"); + + internal static readonly JsonToken Colon = new JsonToken(TokenKind.Colon, ":"); + internal static readonly JsonToken Comma = new JsonToken(TokenKind.Comma, ","); + internal static readonly JsonToken Terminator = new JsonToken(TokenKind.Terminator, "\0"); + + internal static readonly JsonToken True = new JsonToken(TokenKind.Boolean, "true"); + internal static readonly JsonToken False = new JsonToken(TokenKind.Boolean, "false"); + internal static readonly JsonToken Null = new JsonToken(TokenKind.Null, "null"); + + internal static readonly JsonToken Eof = new JsonToken(TokenKind.Eof, null); + + internal JsonToken(TokenKind kind, string value) + { + Kind = kind; + Value = value; + } + + internal readonly TokenKind Kind; + + internal readonly string Value; + + public override string ToString() => Kind + ": " + Value; + + #region Helpers + + internal bool IsLiteral => (byte)Kind > 30 && (byte)Kind < 40; + + internal bool IsTerminator => Kind == TokenKind.Terminator; + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Parser/JsonTokenizer.cs b/swaggerci/appplatform/generated/runtime/Parser/JsonTokenizer.cs new file mode 100644 index 000000000000..e222be139215 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Parser/JsonTokenizer.cs @@ -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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + using System.IO; + + + public class JsonTokenizer : IDisposable + { + private readonly StringBuilder sb = new StringBuilder(); + + private readonly SourceReader reader; + + internal JsonTokenizer(TextReader reader) + : this(new SourceReader(reader)) { } + + internal JsonTokenizer(SourceReader reader) + { + this.reader = reader; + + reader.Next(); // Start with the first char + } + + internal JsonToken ReadNext() + { + reader.SkipWhitespace(); + + if (reader.IsEof) return JsonToken.Eof; + + switch (reader.Current) + { + case '"': return ReadQuotedString(); + + // Symbols + case '[' : reader.Next(); return JsonToken.BracketOpen; // Array start + case ']' : reader.Next(); return JsonToken.BracketClose; // Array end + case ',' : reader.Next(); return JsonToken.Comma; // Value seperator + case ':' : reader.Next(); return JsonToken.Colon; // Field value indicator + case '{' : reader.Next(); return JsonToken.BraceOpen; // Object start + case '}' : reader.Next(); return JsonToken.BraceClose; // Object end + case '\0' : reader.Next(); return JsonToken.Terminator; // Stream terminiator + + default: return ReadLiteral(); + } + } + + private JsonToken ReadQuotedString() + { + Expect('"', "quoted string indicator"); + + reader.Next(); // Read '"' (Starting quote) + + // Read until we reach an unescaped quote char + while (reader.Current != '"') + { + EnsureNotEof("quoted string"); + + if (reader.Current == '\\') + { + char escapedCharacter = reader.ReadEscapeCode(); + + sb.Append(escapedCharacter); + + continue; + } + + StoreCurrentCharacterAndReadNext(); + } + + reader.Next(); // Read '"' (Ending quote) + + return new JsonToken(TokenKind.String, value: sb.Extract()); + } + + private JsonToken ReadLiteral() + { + if (char.IsDigit(reader.Current) || + reader.Current == '-' || + reader.Current == '+') + { + return ReadNumber(); + } + + return ReadIdentifer(); + } + + private JsonToken ReadNumber() + { + // Read until we hit a non-numeric character + // -6.247737e-06 + // E + + while (char.IsDigit(reader.Current) + || reader.Current == '.' + || reader.Current == 'e' + || reader.Current == 'E' + || reader.Current == '-' + || reader.Current == '+') + { + StoreCurrentCharacterAndReadNext(); + } + + return new JsonToken(TokenKind.Number, value: sb.Extract()); + } + + int count = 0; + + private JsonToken ReadIdentifer() + { + count++; + + if (!char.IsLetter(reader.Current)) + { + throw new ParserException( + message : $"Expected literal (number, boolean, or null). Was '{reader.Current}'.", + location : reader.Location + ); + } + + // Read letters, numbers, and underscores '_' + while (char.IsLetterOrDigit(reader.Current) || reader.Current == '_') + { + StoreCurrentCharacterAndReadNext(); + } + + string text = sb.Extract(); + + switch (text) + { + case "true": return JsonToken.True; + case "false": return JsonToken.False; + case "null": return JsonToken.Null; + + default: return new JsonToken(TokenKind.String, text); + } + } + + private void Expect(char character, string description) + { + if (reader.Current != character) + { + throw new ParserException( + message: $"Expected {description} ('{character}'). Was '{reader.Current}'.", + location: reader.Location + ); + } + } + + private void EnsureNotEof(string tokenType) + { + if (reader.IsEof) + { + throw new ParserException( + message: $"Unexpected EOF while reading {tokenType}.", + location: reader.Location + ); + } + } + + private void StoreCurrentCharacterAndReadNext() + { + sb.Append(reader.Current); + + reader.Next(); + } + + public void Dispose() + { + reader.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Parser/Location.cs b/swaggerci/appplatform/generated/runtime/Parser/Location.cs new file mode 100644 index 000000000000..4db5ab659ce4 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Parser/Location.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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal struct SourceLocation + { + private int line; + private int column; + private int position; + + internal SourceLocation(int line = 0, int column = 0, int position = 0) + { + this.line = line; + this.column = column; + this.position = position; + } + + internal int Line => line; + + internal int Column => column; + + internal int Position => position; + + internal void Advance() + { + this.column++; + this.position++; + } + + internal void MarkNewLine() + { + this.line++; + this.column = 0; + } + + internal SourceLocation Clone() + { + return new SourceLocation(line, column, position); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Parser/Readers/SourceReader.cs b/swaggerci/appplatform/generated/runtime/Parser/Readers/SourceReader.cs new file mode 100644 index 000000000000..93f7b371db39 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Parser/Readers/SourceReader.cs @@ -0,0 +1,130 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Globalization; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public sealed class SourceReader : IDisposable + { + private readonly TextReader source; + + private char current; + + private readonly SourceLocation location = new SourceLocation(); + + private bool isEof = false; + + internal SourceReader(TextReader textReader) + { + this.source = textReader ?? throw new ArgumentNullException(nameof(textReader)); + } + + /// + /// Advances to the next character + /// + internal void Next() + { + // Advance to the new line when we see a new line '\n'. + // A new line may be prefixed by a carriage return '\r'. + + if (current == '\n') + { + location.MarkNewLine(); + } + + int charCode = source.Read(); // -1 for end + + if (charCode >= 0) + { + current = (char)charCode; + } + else + { + // If we've already marked this as the EOF, throw an exception + if (isEof) + { + throw new EndOfStreamException("Cannot advance past end of stream."); + } + + isEof = true; + + current = '\0'; + } + + location.Advance(); + } + + internal void SkipWhitespace() + { + while (char.IsWhiteSpace(current)) + { + Next(); + } + } + + internal char ReadEscapeCode() + { + Next(); + + char escapedChar = current; + + Next(); // Consume escaped character + + switch (escapedChar) + { + // Special escape codes + case '"': return '"'; // " (Quotation mark) U+0022 + case '/': return '/'; // / (Solidus) U+002F + case '\\': return '\\'; // \ (Reverse solidus) U+005C + + // Control Characters + case '0': return '\0'; // Nul (0) U+0000 + case 'a': return '\a'; // Alert (7) + case 'b': return '\b'; // Backspace (8) U+0008 + case 'f': return '\f'; // Form feed (12) U+000C + case 'n': return '\n'; // Line feed (10) U+000A + case 'r': return '\r'; // Carriage return (13) U+000D + case 't': return '\t'; // Horizontal tab (9) U+0009 + case 'v': return '\v'; // Vertical tab + + // Unicode escape sequence + case 'u': return ReadUnicodeEscapeSequence(); // U+XXXX + + default: throw new Exception($"Unrecognized escape sequence '\\{escapedChar}'"); + } + } + + private readonly char[] hexCode = new char[4]; + + private char ReadUnicodeEscapeSequence() + { + hexCode[0] = current; Next(); + hexCode[1] = current; Next(); + hexCode[2] = current; Next(); + hexCode[3] = current; Next(); + + return Convert.ToChar(int.Parse( + s : new string(hexCode), + style : NumberStyles.HexNumber, + provider: NumberFormatInfo.InvariantInfo + )); + } + + internal char Current => current; + + internal bool IsEof => isEof; + + internal char Peek() => (char)source.Peek(); + + internal SourceLocation Location => location; + + public void Dispose() + { + source.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Parser/TokenReader.cs b/swaggerci/appplatform/generated/runtime/Parser/TokenReader.cs new file mode 100644 index 000000000000..56e922d1f234 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Parser/TokenReader.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. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + public class TokenReader : IDisposable + { + private readonly JsonTokenizer tokenizer; + private JsonToken current; + + internal TokenReader(JsonTokenizer tokenizer) + { + this.tokenizer = tokenizer ?? throw new ArgumentNullException(nameof(tokenizer)); + } + + internal void Next() + { + current = tokenizer.ReadNext(); + } + + internal JsonToken Current => current; + + internal void Ensure(TokenKind kind, string readerName) + { + if (current.Kind != kind) + { + throw new ParserException($"Expected {kind} while reading {readerName}). Was {current}."); + } + } + + public void Dispose() + { + tokenizer.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/PipelineMocking.cs b/swaggerci/appplatform/generated/runtime/PipelineMocking.cs new file mode 100644 index 000000000000..9ae276911a60 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/PipelineMocking.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. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System.Threading.Tasks; + using System.Collections.Generic; + using System.Net.Http; + using System.Linq; + using System.Net; + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json; + + public enum MockMode + { + Live, + Record, + Playback, + + } + + public class PipelineMock + { + + private System.Collections.Generic.Stack scenario = new System.Collections.Generic.Stack(); + private System.Collections.Generic.Stack context = new System.Collections.Generic.Stack(); + private System.Collections.Generic.Stack description = new System.Collections.Generic.Stack(); + + private readonly string recordingPath; + private int counter = 0; + + public static implicit operator Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep(PipelineMock instance) => instance.SendAsync; + + public MockMode Mode { get; set; } = MockMode.Live; + public PipelineMock(string recordingPath) + { + this.recordingPath = recordingPath; + } + + public void PushContext(string text) => context.Push(text); + + public void PushDescription(string text) => description.Push(text); + + + public void PushScenario(string it) + { + // reset counter too + counter = 0; + + scenario.Push(it); + } + + public void PopContext() => context.Pop(); + + public void PopDescription() => description.Pop(); + + public void PopScenario() => scenario.Pop(); + + public void SetRecord() => Mode = MockMode.Record; + + public void SetPlayback() => Mode = MockMode.Playback; + + public void SetLive() => Mode = MockMode.Live; + + public string Scenario => (scenario.Count > 0 ? scenario.Peek() : "[NoScenario]"); + public string Description => (description.Count > 0 ? description.Peek() : "[NoDescription]"); + public string Context => (context.Count > 0 ? context.Peek() : "[NoContext]"); + + /// + /// Headers that we substitute out blank values for in the recordings + /// Add additional headers as necessary + /// + public static HashSet Blacklist = new HashSet(System.StringComparer.CurrentCultureIgnoreCase) { + "Authorization", + }; + + public Dictionary ForceResponseHeaders = new Dictionary(); + + internal static XImmutableArray Removed = new XImmutableArray(new string[] { "[Filtered]" }); + + internal static IEnumerable> FilterHeaders(IEnumerable>> headers) => headers.Select(header => new KeyValuePair(header.Key, Blacklist.Contains(header.Key) ? Removed : new XImmutableArray(header.Value.ToArray()))); + + internal static JsonNode SerializeContent(HttpContent content, ref bool isBase64) => content == null ? XNull.Instance : SerializeContent(content.ReadAsByteArrayAsync().Result, ref isBase64); + + internal static JsonNode SerializeContent(byte[] content, ref bool isBase64) + { + if (null == content || content.Length == 0) + { + return XNull.Instance; + } + var first = content[0]; + var last = content[content.Length - 1]; + + // plaintext for JSON/SGML/XML/HTML/STRINGS/ARRAYS + if ((first == '{' && last == '}') || (first == '<' && last == '>') || (first == '[' && last == ']') || (first == '"' && last == '"')) + { + return new JsonString(System.Text.Encoding.UTF8.GetString(content)); + } + + // base64 for everyone else + return new JsonString(System.Convert.ToBase64String(content)); + } + + internal static byte[] DeserializeContent(string content, bool isBase64) + { + if (string.IsNullOrWhiteSpace(content)) + { + return new byte[0]; + } + + if (isBase64) + { + try + { + return System.Convert.FromBase64String(content); + } + catch + { + // hmm. didn't work, return it as a string I guess. + } + } + return System.Text.Encoding.UTF8.GetBytes(content); + } + + public void SaveMessage(string rqKey, HttpRequestMessage request, HttpResponseMessage response) + { + var messages = System.IO.File.Exists(this.recordingPath) ? Load() : new JsonObject() ?? new JsonObject(); + bool isBase64Request = false; + bool isBase64Response = false; + messages[rqKey] = new JsonObject { + { "Request",new JsonObject { + { "Method", request.Method.Method }, + { "RequestUri", request.RequestUri }, + { "Content", SerializeContent( request.Content, ref isBase64Request) }, + { "isContentBase64", isBase64Request }, + { "Headers", new JsonObject(FilterHeaders(request.Headers)) }, + { "ContentHeaders", request.Content == null ? new JsonObject() : new JsonObject(FilterHeaders(request.Content.Headers))} + } }, + {"Response", new JsonObject { + { "StatusCode", (int)response.StatusCode}, + { "Headers", new JsonObject(FilterHeaders(response.Headers))}, + { "ContentHeaders", new JsonObject(FilterHeaders(response.Content.Headers))}, + { "Content", SerializeContent(response.Content, ref isBase64Response) }, + { "isContentBase64", isBase64Response }, + }} + }; + System.IO.File.WriteAllText(this.recordingPath, messages.ToString()); + } + + private JsonObject Load() + { + if (System.IO.File.Exists(this.recordingPath)) + { + try + { + return JsonObject.FromStream(System.IO.File.OpenRead(this.recordingPath)); + } + catch + { + throw new System.Exception($"Invalid recording file: '{recordingPath}'"); + } + } + + throw new System.ArgumentException($"Missing recording file: '{recordingPath}'", nameof(recordingPath)); + } + + public HttpResponseMessage LoadMessage(string rqKey) + { + var responses = Load(); + var message = responses.Property(rqKey); + + if (null == message) + { + throw new System.ArgumentException($"Missing Request '{rqKey}' in recording file", nameof(rqKey)); + } + + var sc = 0; + var reqMessage = message.Property("Request"); + var respMessage = message.Property("Response"); + + // --------------------------- deserialize response ---------------------------------------------------------------- + bool isBase64Response = false; + respMessage.BooleanProperty("isContentBase64", ref isBase64Response); + var response = new HttpResponseMessage + { + StatusCode = (HttpStatusCode)respMessage.NumberProperty("StatusCode", ref sc), + Content = new System.Net.Http.ByteArrayContent(DeserializeContent(respMessage.StringProperty("Content"), isBase64Response)) + }; + + foreach (var each in respMessage.Property("Headers")) + { + response.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + foreach (var frh in ForceResponseHeaders) + { + response.Headers.Remove(frh.Key); + response.Headers.TryAddWithoutValidation(frh.Key, frh.Value); + } + + foreach (var each in respMessage.Property("ContentHeaders")) + { + response.Content.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + // --------------------------- deserialize request ---------------------------------------------------------------- + bool isBase64Request = false; + reqMessage.BooleanProperty("isContentBase64", ref isBase64Request); + response.RequestMessage = new HttpRequestMessage + { + Method = new HttpMethod(reqMessage.StringProperty("Method")), + RequestUri = new System.Uri(reqMessage.StringProperty("RequestUri")), + Content = new System.Net.Http.ByteArrayContent(DeserializeContent(reqMessage.StringProperty("Content"), isBase64Request)) + }; + + foreach (var each in reqMessage.Property("Headers")) + { + response.RequestMessage.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + foreach (var each in reqMessage.Property("ContentHeaders")) + { + response.RequestMessage.Content.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + return response; + } + + public async Task SendAsync(HttpRequestMessage request, IEventListener callback, ISendAsync next) + { + counter++; + var rqkey = $"{Description}+{Context}+{Scenario}+${request.Method.Method}+{request.RequestUri}+{counter}"; + + switch (Mode) + { + case MockMode.Record: + //Add following code since the request.Content will be released after sendAsync + var requestClone = request; + if (requestClone.Content != null) + { + requestClone = await request.CloneWithContent(request.RequestUri, request.Method); + } + // make the call + var response = await next.SendAsync(request, callback); + + // save the message to the recording file + SaveMessage(rqkey, requestClone, response); + + // return the response. + return response; + + case MockMode.Playback: + // load and return the response. + return LoadMessage(rqkey); + + default: + // pass-thru, do nothing + return await next.SendAsync(request, callback); + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/Properties/Resources.Designer.cs b/swaggerci/appplatform/generated/runtime/Properties/Resources.Designer.cs new file mode 100644 index 000000000000..716ba342a72f --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Properties/Resources.Designer.cs @@ -0,0 +1,5633 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.generated.runtime.Properties +{ + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.generated.runtime.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to The remote server returned an error: (401) Unauthorized.. + /// + public static string AccessDeniedExceptionMessage + { + get + { + return ResourceManager.GetString("AccessDeniedExceptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account id doesn't match one in subscription.. + /// + public static string AccountIdDoesntMatchSubscription + { + get + { + return ResourceManager.GetString("AccountIdDoesntMatchSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account needs to be specified. + /// + public static string AccountNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("AccountNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account "{0}" has been added.. + /// + public static string AddAccountAdded + { + get + { + return ResourceManager.GetString("AddAccountAdded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To switch to a different subscription, please use Select-AzureSubscription.. + /// + public static string AddAccountChangeSubscription + { + get + { + return ResourceManager.GetString("AddAccountChangeSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Skipping external tenant {0}, because you are using a guest or a foreign principal object identity. In order to access this tenant, please run Add-AzureAccount without "-Credential".. + /// + public static string AddAccountNonInteractiveGuestOrFpo + { + get + { + return ResourceManager.GetString("AddAccountNonInteractiveGuestOrFpo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription "{0}" is selected as the default subscription.. + /// + public static string AddAccountShowDefaultSubscription + { + get + { + return ResourceManager.GetString("AddAccountShowDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To view all the subscriptions, please use Get-AzureSubscription.. + /// + public static string AddAccountViewSubscriptions + { + get + { + return ResourceManager.GetString("AddAccountViewSubscriptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} is created successfully.. + /// + public static string AddOnCreatedMessage + { + get + { + return ResourceManager.GetString("AddOnCreatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-on name {0} is already used.. + /// + public static string AddOnNameAlreadyUsed + { + get + { + return ResourceManager.GetString("AddOnNameAlreadyUsed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} not found.. + /// + public static string AddOnNotFound + { + get + { + return ResourceManager.GetString("AddOnNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-on {0} is removed successfully.. + /// + public static string AddOnRemovedMessage + { + get + { + return ResourceManager.GetString("AddOnRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} is updated successfully.. + /// + public static string AddOnUpdatedMessage + { + get + { + return ResourceManager.GetString("AddOnUpdatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}.. + /// + public static string AddRoleMessageCreate + { + get + { + return ResourceManager.GetString("AddRoleMessageCreate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for Node.js by running ‘npm install azure’.. + /// + public static string AddRoleMessageCreateNode + { + get + { + return ResourceManager.GetString("AddRoleMessageCreateNode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for PHP by running "pear WindowsAzure/WindowsAzure".. + /// + public static string AddRoleMessageCreatePHP + { + get + { + return ResourceManager.GetString("AddRoleMessageCreatePHP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to set role permissions. Please give the 'Network Service' user 'Read & execute' and 'Modify' permissions to the role folder, or run PowerShell as an Administrator. + /// + public static string AddRoleMessageInsufficientPermissions + { + get + { + return ResourceManager.GetString("AddRoleMessageInsufficientPermissions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A role name '{0}' already exists. + /// + public static string AddRoleMessageRoleExists + { + get + { + return ResourceManager.GetString("AddRoleMessageRoleExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Profile {0} already has an endpoint with name {1}. + /// + public static string AddTrafficManagerEndpointFailed + { + get + { + return ResourceManager.GetString("AddTrafficManagerEndpointFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure PowerShell collects usage data in order to improve your experience. + ///The data is anonymous and does not include commandline argument values. + ///The data is collected by Microsoft. + /// + ///Use the Disable-AzDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Az.Accounts module. To disable data collection: PS > Disable-AzDataCollection. + ///Use the Enable-AzDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Az.Accounts module. To enable [rest of string was truncated]";. + /// + public static string ARMDataCollectionMessage + { + get + { + return ResourceManager.GetString("ARMDataCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Authenticating for account {0} with single tenant {1}.. + /// + public static string AuthenticatingForSingleTenant + { + get + { + return ResourceManager.GetString("AuthenticatingForSingleTenant", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windows Azure Powershell\. + /// + public static string AzureDirectory + { + get + { + return ResourceManager.GetString("AzureDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://manage.windowsazure.com. + /// + public static string AzurePortalUrl + { + get + { + return ResourceManager.GetString("AzurePortalUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_PORTAL_URL. + /// + public static string AzurePortalUrlEnv + { + get + { + return ResourceManager.GetString("AzurePortalUrlEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Selected profile must not be null.. + /// + public static string AzureProfileMustNotBeNull + { + get + { + return ResourceManager.GetString("AzureProfileMustNotBeNull", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure SDK\{0}\. + /// + public static string AzureSdkDirectory + { + get + { + return ResourceManager.GetString("AzureSdkDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File '{0}' already exists. Use the -Force parameter to overwrite it.. + /// + public static string AzureVMDscArchiveAlreadyExists + { + get + { + return ResourceManager.GetString("AzureVMDscArchiveAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find configuration data file: {0}. + /// + public static string AzureVMDscCannotFindConfigurationDataFile + { + get + { + return ResourceManager.GetString("AzureVMDscCannotFindConfigurationDataFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create Archive. + /// + public static string AzureVMDscCreateArchiveAction + { + get + { + return ResourceManager.GetString("AzureVMDscCreateArchiveAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The configuration data must be a .psd1 file. + /// + public static string AzureVMDscInvalidConfigurationDataFile + { + get + { + return ResourceManager.GetString("AzureVMDscInvalidConfigurationDataFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parsing configuration script: {0}. + /// + public static string AzureVMDscParsingConfiguration + { + get + { + return ResourceManager.GetString("AzureVMDscParsingConfiguration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Storage Blob '{0}' already exists. Use the -Force parameter to overwrite it.. + /// + public static string AzureVMDscStorageBlobAlreadyExists + { + get + { + return ResourceManager.GetString("AzureVMDscStorageBlobAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Upload '{0}'. + /// + public static string AzureVMDscUploadToBlobStorageAction + { + get + { + return ResourceManager.GetString("AzureVMDscUploadToBlobStorageAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Execution failed because a background thread could not prompt the user.. + /// + public static string BaseShouldMethodFailureReason + { + get + { + return ResourceManager.GetString("BaseShouldMethodFailureReason", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Base Uri was empty.. + /// + public static string BaseUriEmpty + { + get + { + return ResourceManager.GetString("BaseUriEmpty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} begin processing without ParameterSet.. + /// + public static string BeginProcessingWithoutParameterSetLog + { + get + { + return ResourceManager.GetString("BeginProcessingWithoutParameterSetLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} begin processing with ParameterSet '{1}'.. + /// + public static string BeginProcessingWithParameterSetLog + { + get + { + return ResourceManager.GetString("BeginProcessingWithParameterSetLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Blob with the name {0} already exists in the account.. + /// + public static string BlobAlreadyExistsInTheAccount + { + get + { + return ResourceManager.GetString("BlobAlreadyExistsInTheAccount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://{0}.blob.core.windows.net/. + /// + public static string BlobEndpointUri + { + get + { + return ResourceManager.GetString("BlobEndpointUri", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_BLOBSTORAGE_TEMPLATE. + /// + public static string BlobEndpointUriEnv + { + get + { + return ResourceManager.GetString("BlobEndpointUriEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is changing.. + /// + public static string BreakingChangeAttributeParameterChanging + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterChanging", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is becoming mandatory.. + /// + public static string BreakingChangeAttributeParameterMandatoryNow + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterMandatoryNow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is being replaced by parameter : '{1}'.. + /// + public static string BreakingChangeAttributeParameterReplaced + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterReplaced", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is being replaced by mandatory parameter : '{1}'.. + /// + public static string BreakingChangeAttributeParameterReplacedMandatory + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterReplacedMandatory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The type of the parameter is changing from '{0}' to '{1}'.. + /// + public static string BreakingChangeAttributeParameterTypeChange + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterTypeChange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Change description : {0} + ///. + /// + public static string BreakingChangesAttributesChangeDescriptionMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesChangeDescriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet is being deprecated. There will be no replacement for it.. + /// + public static string BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet is being deprecated. There will be no replacement for it.. + /// + public static string BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet '{0}' is replacing this cmdlet.. + /// + public static string BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The output type is changing from the existing type :'{0}' to the new type :'{1}'. + /// + public static string BreakingChangesAttributesCmdLetOutputChange1 + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputChange1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "The output type '{0}' is changing". + /// + public static string BreakingChangesAttributesCmdLetOutputChange2 + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputChange2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to + ///- The following properties are being added to the output type : + ///. + /// + public static string BreakingChangesAttributesCmdLetOutputPropertiesAdded + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputPropertiesAdded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to + /// - The following properties in the output type are being deprecated : + ///. + /// + public static string BreakingChangesAttributesCmdLetOutputPropertiesRemoved + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputPropertiesRemoved", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The output type '{0}' is being deprecated without a replacement.. + /// + public static string BreakingChangesAttributesCmdLetOutputTypeDeprecated + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputTypeDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to - {0} + /// + ///. + /// + public static string BreakingChangesAttributesDeclarationMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesDeclarationMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to - Cmdlet : '{0}' + /// - {1} + ///. + /// + public static string BreakingChangesAttributesDeclarationMessageWithCmdletName + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesDeclarationMessageWithCmdletName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to NOTE : Go to {0} for steps to suppress (and other related information on) the breaking change messages.. + /// + public static string BreakingChangesAttributesFooterMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesFooterMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Breaking changes in the cmdlet '{0}' :. + /// + public static string BreakingChangesAttributesHeaderMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesHeaderMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note : This change will take effect on '{0}' + ///. + /// + public static string BreakingChangesAttributesInEffectByDateMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesInEffectByDateMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note :The change is expected to take effect from the version : '{0}' + /// + ///. + /// + public static string BreakingChangesAttributesInEffectByVersion + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesInEffectByVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ```powershell + ///# Old + ///{0} + /// + ///# New + ///{1} + ///``` + /// + ///. + /// + public static string BreakingChangesAttributesUsageChangeMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesUsageChangeMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cmdlet invocation changes : + /// Old Way : {0} + /// New Way : {1}. + /// + public static string BreakingChangesAttributesUsageChangeMessageConsole + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesUsageChangeMessageConsole", resourceCulture); + } + } + + /// + /// The cmdlet is in experimental stage. The function may not be enabled in current subscription. + /// + public static string ExperimentalCmdletMessage + { + get + { + return ResourceManager.GetString("ExperimentalCmdletMessage", resourceCulture); + } + } + + + + /// + /// Looks up a localized string similar to CACHERUNTIMEURL. + /// + public static string CacheRuntimeUrl + { + get + { + return ResourceManager.GetString("CacheRuntimeUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to cache. + /// + public static string CacheRuntimeValue + { + get + { + return ResourceManager.GetString("CacheRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CacheRuntimeVersion. + /// + public static string CacheRuntimeVersionKey + { + get + { + return ResourceManager.GetString("CacheRuntimeVersionKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing caching version {0} for Role '{1}' (the caching version locally installed is: {2}). + /// + public static string CacheVersionWarningText + { + get + { + return ResourceManager.GetString("CacheVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot change built-in environment {0}.. + /// + public static string CannotChangeBuiltinEnvironment + { + get + { + return ResourceManager.GetString("CannotChangeBuiltinEnvironment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find {0} with name {1}.. + /// + public static string CannotFind + { + get + { + return ResourceManager.GetString("CannotFind", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deployment for service {0} with {1} slot doesn't exist. + /// + public static string CannotFindDeployment + { + get + { + return ResourceManager.GetString("CannotFindDeployment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can't find valid Microsoft Azure role in current directory {0}. + /// + public static string CannotFindRole + { + get + { + return ResourceManager.GetString("CannotFindRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service {0} configuration file (ServiceConfiguration.Cloud.cscfg) is either null or doesn't exist. + /// + public static string CannotFindServiceConfigurationFile + { + get + { + return ResourceManager.GetString("CannotFindServiceConfigurationFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid service path! Cannot locate ServiceDefinition.csdef in current folder or parent folders.. + /// + public static string CannotFindServiceRoot + { + get + { + return ResourceManager.GetString("CannotFindServiceRoot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named {0} with id {1} is not currently imported. You must import this subscription before it can be updated.. + /// + public static string CannotUpdateUnknownSubscription + { + get + { + return ResourceManager.GetString("CannotUpdateUnknownSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ManagementCertificate. + /// + public static string CertificateElementName + { + get + { + return ResourceManager.GetString("CertificateElementName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to certificate.pfx. + /// + public static string CertificateFileName + { + get + { + return ResourceManager.GetString("CertificateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Certificate imported into CurrentUser\My\{0}. + /// + public static string CertificateImportedMessage + { + get + { + return ResourceManager.GetString("CertificateImportedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No certificate was found in the certificate store with thumbprint {0}. + /// + public static string CertificateNotFoundInStore + { + get + { + return ResourceManager.GetString("CertificateNotFoundInStore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your account does not have access to the private key for certificate {0}. + /// + public static string CertificatePrivateKeyAccessError + { + get + { + return ResourceManager.GetString("CertificatePrivateKeyAccessError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} {1} deployment for {2} service. + /// + public static string ChangeDeploymentStateWaitMessage + { + get + { + return ResourceManager.GetString("ChangeDeploymentStateWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cloud service {0} is in {1} state.. + /// + public static string ChangeDeploymentStatusCompleteMessage + { + get + { + return ResourceManager.GetString("ChangeDeploymentStatusCompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changing/Removing public environment '{0}' is not allowed.. + /// + public static string ChangePublicEnvironmentMessage + { + get + { + return ResourceManager.GetString("ChangePublicEnvironmentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} is set to value {1}. + /// + public static string ChangeSettingsElementMessage + { + get + { + return ResourceManager.GetString("ChangeSettingsElementMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changing public environment is not supported.. + /// + public static string ChangingDefaultEnvironmentNotSupported + { + get + { + return ResourceManager.GetString("ChangingDefaultEnvironmentNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose which publish settings file to use:. + /// + public static string ChoosePublishSettingsFile + { + get + { + return ResourceManager.GetString("ChoosePublishSettingsFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel. + /// + public static string ClientDiagnosticLevelName + { + get + { + return ResourceManager.GetString("ClientDiagnosticLevelName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1. + /// + public static string ClientDiagnosticLevelValue + { + get + { + return ResourceManager.GetString("ClientDiagnosticLevelValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to cloud_package.cspkg. + /// + public static string CloudPackageFileName + { + get + { + return ResourceManager.GetString("CloudPackageFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceConfiguration.Cloud.cscfg. + /// + public static string CloudServiceConfigurationFileName + { + get + { + return ResourceManager.GetString("CloudServiceConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-ons for {0}. + /// + public static string CloudServiceDescription + { + get + { + return ResourceManager.GetString("CloudServiceDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Communication could not be established. This could be due to an invalid subscription ID. Note that subscription IDs are case sensitive.. + /// + public static string CommunicationCouldNotBeEstablished + { + get + { + return ResourceManager.GetString("CommunicationCouldNotBeEstablished", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Complete. + /// + public static string CompleteMessage + { + get + { + return ResourceManager.GetString("CompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OperationID : '{0}'. + /// + public static string ComputeCloudExceptionOperationIdMessage + { + get + { + return ResourceManager.GetString("ComputeCloudExceptionOperationIdMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to config.json. + /// + public static string ConfigurationFileName + { + get + { + return ResourceManager.GetString("ConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to VirtualMachine creation failed.. + /// + public static string CreateFailedErrorMessage + { + get + { + return ResourceManager.GetString("CreateFailedErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Creating the website failed. If this is the first website for this subscription, please create it using the management portal instead.. + /// + public static string CreateWebsiteFailed + { + get + { + return ResourceManager.GetString("CreateWebsiteFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core. + /// + public static string DataCacheClientsType + { + get + { + return ResourceManager.GetString("DataCacheClientsType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to //blobcontainer[@datacenter='{0}']. + /// + public static string DatacenterBlobQuery + { + get + { + return ResourceManager.GetString("DatacenterBlobQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft Azure PowerShell Data Collection Confirmation. + /// + public static string DataCollectionActivity + { + get + { + return ResourceManager.GetString("DataCollectionActivity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You choose not to participate in Microsoft Azure PowerShell data collection.. + /// + public static string DataCollectionConfirmNo + { + get + { + return ResourceManager.GetString("DataCollectionConfirmNo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This confirmation message will be dismissed in '{0}' second(s).... + /// + public static string DataCollectionConfirmTime + { + get + { + return ResourceManager.GetString("DataCollectionConfirmTime", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You choose to participate in Microsoft Azure PowerShell data collection.. + /// + public static string DataCollectionConfirmYes + { + get + { + return ResourceManager.GetString("DataCollectionConfirmYes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The setting profile has been saved to the following path '{0}'.. + /// + public static string DataCollectionSaveFileInformation + { + get + { + return ResourceManager.GetString("DataCollectionSaveFileInformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Setting: {0} as the default and current subscription. To view other subscriptions use Get-AzureSubscription. + /// + public static string DefaultAndCurrentSubscription + { + get + { + return ResourceManager.GetString("DefaultAndCurrentSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to none. + /// + public static string DefaultFileVersion + { + get + { + return ResourceManager.GetString("DefaultFileVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There are no hostnames which could be used for validation.. + /// + public static string DefaultHostnamesValidation + { + get + { + return ResourceManager.GetString("DefaultHostnamesValidation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 8080. + /// + public static string DefaultPort + { + get + { + return ResourceManager.GetString("DefaultPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1000. + /// + public static string DefaultRoleCachingInMB + { + get + { + return ResourceManager.GetString("DefaultRoleCachingInMB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Auto. + /// + public static string DefaultUpgradeMode + { + get + { + return ResourceManager.GetString("DefaultUpgradeMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 80. + /// + public static string DefaultWebPort + { + get + { + return ResourceManager.GetString("DefaultWebPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete. + /// + public static string Delete + { + get + { + return ResourceManager.GetString("Delete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The {0} slot for service {1} is already in {2} state. + /// + public static string DeploymentAlreadyInState + { + get + { + return ResourceManager.GetString("DeploymentAlreadyInState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The deployment in {0} slot for service {1} is removed. + /// + public static string DeploymentRemovedMessage + { + get + { + return ResourceManager.GetString("DeploymentRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel. + /// + public static string DiagnosticLevelName + { + get + { + return ResourceManager.GetString("DiagnosticLevelName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1. + /// + public static string DiagnosticLevelValue + { + get + { + return ResourceManager.GetString("DiagnosticLevelValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The key to add already exists in the dictionary.. + /// + public static string DictionaryAddAlreadyContainsKey + { + get + { + return ResourceManager.GetString("DictionaryAddAlreadyContainsKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The array index cannot be less than zero.. + /// + public static string DictionaryCopyToArrayIndexLessThanZero + { + get + { + return ResourceManager.GetString("DictionaryCopyToArrayIndexLessThanZero", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The supplied array does not have enough room to contain the copied elements.. + /// + public static string DictionaryCopyToArrayTooShort + { + get + { + return ResourceManager.GetString("DictionaryCopyToArrayTooShort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided dns {0} doesn't exist. + /// + public static string DnsDoesNotExist + { + get + { + return ResourceManager.GetString("DnsDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft Azure Certificate. + /// + public static string EnableRemoteDesktop_FriendlyCertificateName + { + get + { + return ResourceManager.GetString("EnableRemoteDesktop_FriendlyCertificateName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Endpoint can't be retrieved for storage account. + /// + public static string EndPointNotFoundForBlobStorage + { + get + { + return ResourceManager.GetString("EndPointNotFoundForBlobStorage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} end processing.. + /// + public static string EndProcessingLog + { + get + { + return ResourceManager.GetString("EndProcessingLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To use Active Directory authentication, you must configure the ActiveDirectoryEndpoint, ActiveDirectoryTenantId, and ActiveDirectorServiceEndpointResourceId for environment of '{0}'. You can configure these properties for this environment using the Set-AzureEnvironment cmdlet.. + /// + public static string EnvironmentDoesNotSupportActiveDirectory + { + get + { + return ResourceManager.GetString("EnvironmentDoesNotSupportActiveDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The environment '{0}' already exists.. + /// + public static string EnvironmentExists + { + get + { + return ResourceManager.GetString("EnvironmentExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment name doesn't match one in subscription.. + /// + public static string EnvironmentNameDoesntMatchSubscription + { + get + { + return ResourceManager.GetString("EnvironmentNameDoesntMatchSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment name needs to be specified.. + /// + public static string EnvironmentNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("EnvironmentNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment needs to be specified.. + /// + public static string EnvironmentNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("EnvironmentNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The environment name '{0}' is not found.. + /// + public static string EnvironmentNotFound + { + get + { + return ResourceManager.GetString("EnvironmentNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to environments.xml. + /// + public static string EnvironmentsFileName + { + get + { + return ResourceManager.GetString("EnvironmentsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error creating VirtualMachine. + /// + public static string ErrorCreatingVirtualMachine + { + get + { + return ResourceManager.GetString("ErrorCreatingVirtualMachine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to download available runtimes for location '{0}'. + /// + public static string ErrorRetrievingRuntimesForLocation + { + get + { + return ResourceManager.GetString("ErrorRetrievingRuntimesForLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error updating VirtualMachine. + /// + public static string ErrorUpdatingVirtualMachine + { + get + { + return ResourceManager.GetString("ErrorUpdatingVirtualMachine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Job Id {0} failed. Error: {1}, ExceptionDetails: {2}. + /// + public static string FailedJobErrorMessage + { + get + { + return ResourceManager.GetString("FailedJobErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File path is not valid.. + /// + public static string FilePathIsNotValid + { + get + { + return ResourceManager.GetString("FilePathIsNotValid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The HTTP request was forbidden with client authentication scheme 'Anonymous'.. + /// + public static string FirstPurchaseErrorMessage + { + get + { + return ResourceManager.GetString("FirstPurchaseErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This add-on requires you to purchase the first instance through the Microsoft Azure Portal. Subsequent purchases can be performed through PowerShell.. + /// + public static string FirstPurchaseMessage + { + get + { + return ResourceManager.GetString("FirstPurchaseMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Operation Status:. + /// + public static string GatewayOperationStatus + { + get + { + return ResourceManager.GetString("GatewayOperationStatus", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\General. + /// + public static string GeneralScaffolding + { + get + { + return ResourceManager.GetString("GeneralScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Getting all available Microsoft Azure Add-Ons, this may take few minutes.... + /// + public static string GetAllAddOnsWaitMessage + { + get + { + return ResourceManager.GetString("GetAllAddOnsWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name{0}Primary Key{0}Seconday Key. + /// + public static string GetStorageKeysHeader + { + get + { + return ResourceManager.GetString("GetStorageKeysHeader", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Git not found. Please install git and place it in your command line path.. + /// + public static string GitNotFound + { + get + { + return ResourceManager.GetString("GitNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not find publish settings. Please run Import-AzurePublishSettingsFile.. + /// + public static string GlobalSettingsManager_Load_PublishSettingsNotFound + { + get + { + return ResourceManager.GetString("GlobalSettingsManager_Load_PublishSettingsNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find the WadCfg end element in the config.. + /// + public static string IaasDiagnosticsBadConfigNoEndWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoEndWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WadCfg start element in the config is not matching the end element.. + /// + public static string IaasDiagnosticsBadConfigNoMatchingWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoMatchingWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find the WadCfg element in the config.. + /// + public static string IaasDiagnosticsBadConfigNoWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode.dll. + /// + public static string IISNodeDll + { + get + { + return ResourceManager.GetString("IISNodeDll", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode. + /// + public static string IISNodeEngineKey + { + get + { + return ResourceManager.GetString("IISNodeEngineKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode-dev\\release\\x64. + /// + public static string IISNodePath + { + get + { + return ResourceManager.GetString("IISNodePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode. + /// + public static string IISNodeRuntimeValue + { + get + { + return ResourceManager.GetString("IISNodeRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing IISNode version {0} in Azure for WebRole '{1}' (the version locally installed is: {2}). + /// + public static string IISNodeVersionWarningText + { + get + { + return ResourceManager.GetString("IISNodeVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Illegal characters in path.. + /// + public static string IllegalPath + { + get + { + return ResourceManager.GetString("IllegalPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. + /// + public static string InternalServerErrorMessage + { + get + { + return ResourceManager.GetString("InternalServerErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot enable memcach protocol on a cache worker role {0}.. + /// + public static string InvalidCacheRoleName + { + get + { + return ResourceManager.GetString("InvalidCacheRoleName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid certificate format. Publish settings may be corrupted. Use Get-AzurePublishSettingsFile to download updated settings. + /// + public static string InvalidCertificate + { + get + { + return ResourceManager.GetString("InvalidCertificate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid certificate format.. + /// + public static string InvalidCertificateSingle + { + get + { + return ResourceManager.GetString("InvalidCertificateSingle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided configuration path is invalid or doesn't exist. + /// + public static string InvalidConfigPath + { + get + { + return ResourceManager.GetString("InvalidConfigPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The country name is invalid, please use a valid two character country code, as described in ISO 3166-1 alpha-2.. + /// + public static string InvalidCountryNameMessage + { + get + { + return ResourceManager.GetString("InvalidCountryNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription.. + /// + public static string InvalidDefaultSubscription + { + get + { + return ResourceManager.GetString("InvalidDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deployment with {0} does not exist. + /// + public static string InvalidDeployment + { + get + { + return ResourceManager.GetString("InvalidDeployment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The deployment slot name {0} is invalid. Slot name must be either "Staging" or "Production".. + /// + public static string InvalidDeploymentSlot + { + get + { + return ResourceManager.GetString("InvalidDeploymentSlot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "{0}" is an invalid DNS name for {1}. + /// + public static string InvalidDnsName + { + get + { + return ResourceManager.GetString("InvalidDnsName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid service endpoint.. + /// + public static string InvalidEndpoint + { + get + { + return ResourceManager.GetString("InvalidEndpoint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided file in {0} must be have {1} extension. + /// + public static string InvalidFileExtension + { + get + { + return ResourceManager.GetString("InvalidFileExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File {0} has invalid characters. + /// + public static string InvalidFileName + { + get + { + return ResourceManager.GetString("InvalidFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must create your git publishing credentials using the Microsoft Azure portal. + ///Please follow these steps in the portal: + ///1. On the left side open "Web Sites" + ///2. Click on any website + ///3. Choose "Setup Git Publishing" or "Reset deployment credentials" + ///4. Back in the PowerShell window, rerun this command by typing "New-AzureWebSite {site name} -Git -PublishingUsername {username}. + /// + public static string InvalidGitCredentials + { + get + { + return ResourceManager.GetString("InvalidGitCredentials", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The value {0} provided is not a valid GUID. Please provide a valid GUID.. + /// + public static string InvalidGuid + { + get + { + return ResourceManager.GetString("InvalidGuid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The specified hostname does not exist. Please specify a valid hostname for the site.. + /// + public static string InvalidHostnameValidation + { + get + { + return ResourceManager.GetString("InvalidHostnameValidation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} instances must be greater than or equal 0 and less than or equal 20. + /// + public static string InvalidInstancesCount + { + get + { + return ResourceManager.GetString("InvalidInstancesCount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There was an error creating your webjob. Please make sure that the script is in the root folder of the zip file.. + /// + public static string InvalidJobFile + { + get + { + return ResourceManager.GetString("InvalidJobFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not download a valid runtime manifest, Please check your internet connection and try again.. + /// + public static string InvalidManifestError + { + get + { + return ResourceManager.GetString("InvalidManifestError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The account {0} was not found. Please specify a valid account name.. + /// + public static string InvalidMediaServicesAccount + { + get + { + return ResourceManager.GetString("InvalidMediaServicesAccount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided name "{0}" does not match the service bus namespace naming rules.. + /// + public static string InvalidNamespaceName + { + get + { + return ResourceManager.GetString("InvalidNamespaceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path must specify a valid path to an Azure profile.. + /// + public static string InvalidNewProfilePath + { + get + { + return ResourceManager.GetString("InvalidNewProfilePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Value cannot be null. Parameter name: '{0}'. + /// + public static string InvalidNullArgument + { + get + { + return ResourceManager.GetString("InvalidNullArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} is invalid or empty. + /// + public static string InvalidOrEmptyArgumentMessage + { + get + { + return ResourceManager.GetString("InvalidOrEmptyArgumentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided package path is invalid or doesn't exist. + /// + public static string InvalidPackagePath + { + get + { + return ResourceManager.GetString("InvalidPackagePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to '{0}' is an invalid parameter set name.. + /// + public static string InvalidParameterSetName + { + get + { + return ResourceManager.GetString("InvalidParameterSetName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} doesn't exist in {1} or you've not passed valid value for it. + /// + public static string InvalidPath + { + get + { + return ResourceManager.GetString("InvalidPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path {0} has invalid characters. + /// + public static string InvalidPathName + { + get + { + return ResourceManager.GetString("InvalidPathName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain one of the following sets of properties: {SubscriptionId, Certificate}, {SubscriptionId, Username, Password}, {SubscriptionId, ServicePrincipal, Password, Tenant}, {SubscriptionId, AccountId, Token}. + /// + public static string InvalidProfileProperties + { + get + { + return ResourceManager.GetString("InvalidProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided publish settings file {0} has invalid content. Please get valid by running cmdlet Get-AzurePublishSettingsFile. + /// + public static string InvalidPublishSettingsSchema + { + get + { + return ResourceManager.GetString("InvalidPublishSettingsSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided role name "{0}" has invalid characters. + /// + public static string InvalidRoleNameMessage + { + get + { + return ResourceManager.GetString("InvalidRoleNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid name for the service root folder is required. + /// + public static string InvalidRootNameMessage + { + get + { + return ResourceManager.GetString("InvalidRootNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} is not a recognized runtime type. + /// + public static string InvalidRuntimeError + { + get + { + return ResourceManager.GetString("InvalidRuntimeError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid language is required. + /// + public static string InvalidScaffoldingLanguageArg + { + get + { + return ResourceManager.GetString("InvalidScaffoldingLanguageArg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No subscription is currently selected. Use Select-Subscription to activate a subscription.. + /// + public static string InvalidSelectedSubscription + { + get + { + return ResourceManager.GetString("InvalidSelectedSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided location "{0}" does not exist in the available locations use Get-AzureSBLocation for listing available locations.. + /// + public static string InvalidServiceBusLocation + { + get + { + return ResourceManager.GetString("InvalidServiceBusLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please provide a service name or run this command from inside a service project directory.. + /// + public static string InvalidServiceName + { + get + { + return ResourceManager.GetString("InvalidServiceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must provide valid value for {0}. + /// + public static string InvalidServiceSettingElement + { + get + { + return ResourceManager.GetString("InvalidServiceSettingElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to settings.json is invalid or doesn't exist. + /// + public static string InvalidServiceSettingMessage + { + get + { + return ResourceManager.GetString("InvalidServiceSettingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named '{0}' cannot be found. Use Set-AzureSubscription to initialize the subscription data.. + /// + public static string InvalidSubscription + { + get + { + return ResourceManager.GetString("InvalidSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided subscription id {0} is not valid. + /// + public static string InvalidSubscriptionId + { + get + { + return ResourceManager.GetString("InvalidSubscriptionId", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Must specify a non-null subscription name.. + /// + public static string InvalidSubscriptionName + { + get + { + return ResourceManager.GetString("InvalidSubscriptionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid subscription name is required. This can be provided using the -Subscription parameter or by setting the subscription via the Set-AzureSubscription cmdlet. + /// + public static string InvalidSubscriptionNameMessage + { + get + { + return ResourceManager.GetString("InvalidSubscriptionNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided subscriptions file {0} has invalid content.. + /// + public static string InvalidSubscriptionsDataSchema + { + get + { + return ResourceManager.GetString("InvalidSubscriptionsDataSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} VM size should be ExtraSmall, Small, Medium, Large or ExtraLarge.. + /// + public static string InvalidVMSize + { + get + { + return ResourceManager.GetString("InvalidVMSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The web job file must have *.zip extension. + /// + public static string InvalidWebJobFile + { + get + { + return ResourceManager.GetString("InvalidWebJobFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Singleton option works for continuous jobs only.. + /// + public static string InvalidWebJobSingleton + { + get + { + return ResourceManager.GetString("InvalidWebJobSingleton", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The website {0} was not found. Please specify a valid website name.. + /// + public static string InvalidWebsite + { + get + { + return ResourceManager.GetString("InvalidWebsite", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No job for id: {0} was found.. + /// + public static string JobNotFound + { + get + { + return ResourceManager.GetString("JobNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to engines. + /// + public static string JsonEnginesSectionName + { + get + { + return ResourceManager.GetString("JsonEnginesSectionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scaffolding for this language is not yet supported. + /// + public static string LanguageScaffoldingIsNotSupported + { + get + { + return ResourceManager.GetString("LanguageScaffoldingIsNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Link already established. + /// + public static string LinkAlreadyEstablished + { + get + { + return ResourceManager.GetString("LinkAlreadyEstablished", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to local_package.csx. + /// + public static string LocalPackageFileName + { + get + { + return ResourceManager.GetString("LocalPackageFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceConfiguration.Local.cscfg. + /// + public static string LocalServiceConfigurationFileName + { + get + { + return ResourceManager.GetString("LocalServiceConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Looking for {0} deployment for {1} cloud service.... + /// + public static string LookingForDeploymentMessage + { + get + { + return ResourceManager.GetString("LookingForDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Looking for cloud service {0}.... + /// + public static string LookingForServiceMessage + { + get + { + return ResourceManager.GetString("LookingForServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure Long-Running Job. + /// + public static string LROJobName + { + get + { + return ResourceManager.GetString("LROJobName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet failed in background execution. The returned error was '{0}'. Please execute the cmdlet again. You may need to execute this cmdlet synchronously, by omitting the '-AsJob' parameter.. + /// + public static string LROTaskExceptionMessage + { + get + { + return ResourceManager.GetString("LROTaskExceptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to managementCertificate.pem. + /// + public static string ManagementCertificateFileName + { + get + { + return ResourceManager.GetString("ManagementCertificateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ?whr={0}. + /// + public static string ManagementPortalRealmFormat + { + get + { + return ResourceManager.GetString("ManagementPortalRealmFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to //baseuri. + /// + public static string ManifestBaseUriQuery + { + get + { + return ResourceManager.GetString("ManifestBaseUriQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to uri. + /// + public static string ManifestBlobUriKey + { + get + { + return ResourceManager.GetString("ManifestBlobUriKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to http://az413943.vo.msecnd.net/node/runtimemanifest_0.7.5.2.xml. + /// + public static string ManifestUri + { + get + { + return ResourceManager.GetString("ManifestUri", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'Certificate' of type 'X509Certificate2'.. + /// + public static string MissingCertificateInProfileProperties + { + get + { + return ResourceManager.GetString("MissingCertificateInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'Password' with an associated 'Username' or 'ServicePrincipal'.. + /// + public static string MissingPasswordInProfileProperties + { + get + { + return ResourceManager.GetString("MissingPasswordInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'SubscriptionId'.. + /// + public static string MissingSubscriptionInProfileProperties + { + get + { + return ResourceManager.GetString("MissingSubscriptionInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multiple Add-Ons found holding name {0}. + /// + public static string MultipleAddOnsFoundMessage + { + get + { + return ResourceManager.GetString("MultipleAddOnsFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multiple possible publishing users. Please go to the Portal and use the listed deployment user, or click 'set/reset deployment credentials' to set up a new user account, then reurn this cmdlet and specify PublishingUsername.. + /// + public static string MultiplePublishingUsernames + { + get + { + return ResourceManager.GetString("MultiplePublishingUsernames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The first publish settings file "{0}" is used. If you want to use another file specify the file name.. + /// + public static string MultiplePublishSettingsFilesFoundMessage + { + get + { + return ResourceManager.GetString("MultiplePublishSettingsFilesFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.NamedCaches. + /// + public static string NamedCacheSettingName + { + get + { + return ResourceManager.GetString("NamedCacheSettingName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {"caches":[{"name":"default","policy":{"eviction":{"type":0},"expiration":{"defaultTTL":10,"isExpirable":true,"type":1},"serverNotification":{"isEnabled":false}},"secondaries":0}]}. + /// + public static string NamedCacheSettingValue + { + get + { + return ResourceManager.GetString("NamedCacheSettingValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A publishing username is required. Please specify one using the argument PublishingUsername.. + /// + public static string NeedPublishingUsernames + { + get + { + return ResourceManager.GetString("NeedPublishingUsernames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New Add-On Confirmation. + /// + public static string NewAddOnConformation + { + get + { + return ResourceManager.GetString("NewAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my + ///contact information with {2}.. + /// + public static string NewMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("NewMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen because the namespace name is already used or due to an incorrect location name. Use Get-AzureSBLocation cmdlet to list valid names.. + /// + public static string NewNamespaceErrorMessage + { + get + { + return ResourceManager.GetString("NewNamespaceErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of + ///use and privacy statement at {0} and (c) agree to sharing my contact information with {2}.. + /// + public static string NewNonMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("NewNonMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service has been created at {0}. + /// + public static string NewServiceCreatedMessage + { + get + { + return ResourceManager.GetString("NewServiceCreatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No. + /// + public static string No + { + get + { + return ResourceManager.GetString("No", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no access token cached for subscription {0}, user id {1}. Use the Add-AzureAccount cmdlet to log in again and get a token for this subscription.. + /// + public static string NoCachedToken + { + get + { + return ResourceManager.GetString("NoCachedToken", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The service does not have any cache worker roles, add one first by running cmdlet Add-AzureCacheWorkerRole.. + /// + public static string NoCacheWorkerRoles + { + get + { + return ResourceManager.GetString("NoCacheWorkerRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No clouds available. + /// + public static string NoCloudsAvailable + { + get + { + return ResourceManager.GetString("NoCloudsAvailable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "There is no current context, please log in using Connect-AzAccount.". + /// + public static string NoCurrentContextForDataCmdlet + { + get + { + return ResourceManager.GetString("NoCurrentContextForDataCmdlet", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to nodejs. + /// + public static string NodeDirectory + { + get + { + return ResourceManager.GetString("NodeDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node. + /// + public static string NodeEngineKey + { + get + { + return ResourceManager.GetString("NodeEngineKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node.exe. + /// + public static string NodeExe + { + get + { + return ResourceManager.GetString("NodeExe", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no default subscription set, please set a default subscription by running Set-AzureSubscription -Default <subscription name>. + /// + public static string NoDefaultSubscriptionMessage + { + get + { + return ResourceManager.GetString("NoDefaultSubscriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft SDKs\Azure\Nodejs\Nov2011. + /// + public static string NodeModulesPath + { + get + { + return ResourceManager.GetString("NodeModulesPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to nodejs. + /// + public static string NodeProgramFilesFolderName + { + get + { + return ResourceManager.GetString("NodeProgramFilesFolderName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node. + /// + public static string NodeRuntimeValue + { + get + { + return ResourceManager.GetString("NodeRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\Node. + /// + public static string NodeScaffolding + { + get + { + return ResourceManager.GetString("NodeScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.Node. + /// + public static string NodeScaffoldingResources + { + get + { + return ResourceManager.GetString("NodeScaffoldingResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing Node version {0} in Azure for Role '{1}' (the Node version locally installed is: {2}). + /// + public static string NodeVersionWarningText + { + get + { + return ResourceManager.GetString("NodeVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No, I do not agree. + /// + public static string NoHint + { + get + { + return ResourceManager.GetString("NoHint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please connect to internet before executing this cmdlet. + /// + public static string NoInternetConnection + { + get + { + return ResourceManager.GetString("NoInternetConnection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <NONE>. + /// + public static string None + { + get + { + return ResourceManager.GetString("None", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No publish settings files with extension *.publishsettings are found in the directory "{0}".. + /// + public static string NoPublishSettingsFilesFoundMessage + { + get + { + return ResourceManager.GetString("NoPublishSettingsFilesFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no subscription associated with account {0}.. + /// + public static string NoSubscriptionAddedMessage + { + get + { + return ResourceManager.GetString("NoSubscriptionAddedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No subscriptions are associated with the logged in account in Azure Service Management (RDFE). This means that the logged in user is not an administrator or co-administrator for any account.\r\nDid you mean to execute Connect-AzAccount?. + /// + public static string NoSubscriptionFoundForTenant + { + get + { + return ResourceManager.GetString("NoSubscriptionFoundForTenant", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to '{0}' must be a cache worker role. Verify that it has proper cache worker role configuration.. + /// + public static string NotCacheWorkerRole + { + get + { + return ResourceManager.GetString("NotCacheWorkerRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Certificate can't be null.. + /// + public static string NullCertificateMessage + { + get + { + return ResourceManager.GetString("NullCertificateMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} could not be null or empty. + /// + public static string NullObjectMessage + { + get + { + return ResourceManager.GetString("NullObjectMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to add a null RoleSettings to {0}. + /// + public static string NullRoleSettingsMessage + { + get + { + return ResourceManager.GetString("NullRoleSettingsMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to add new role to null service definition. + /// + public static string NullServiceDefinitionMessage + { + get + { + return ResourceManager.GetString("NullServiceDefinitionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The request offer '{0}' is not found.. + /// + public static string OfferNotFoundMessage + { + get + { + return ResourceManager.GetString("OfferNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Operation "{0}" failed on VM with ID: {1}. + /// + public static string OperationFailedErrorMessage + { + get + { + return ResourceManager.GetString("OperationFailedErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The REST operation failed with message '{0}' and error code '{1}'. + /// + public static string OperationFailedMessage + { + get + { + return ResourceManager.GetString("OperationFailedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Job Id {0} did not complete within expected time or it is in Failed/Canceled/Invalid state.. + /// + public static string OperationTimedOutOrError + { + get + { + return ResourceManager.GetString("OperationTimedOutOrError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to package. + /// + public static string Package + { + get + { + return ResourceManager.GetString("Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Package is created at service root path {0}.. + /// + public static string PackageCreated + { + get + { + return ResourceManager.GetString("PackageCreated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {{ + /// "author": "", + /// + /// "name": "{0}", + /// "version": "0.0.0", + /// "dependencies":{{}}, + /// "devDependencies":{{}}, + /// "optionalDependencies": {{}}, + /// "engines": {{ + /// "node": "*", + /// "iisnode": "*" + /// }} + /// + ///}} + ///. + /// + public static string PackageJsonDefaultFile + { + get + { + return ResourceManager.GetString("PackageJsonDefaultFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to package.json. + /// + public static string PackageJsonFileName + { + get + { + return ResourceManager.GetString("PackageJsonFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path {0} doesn't exist.. + /// + public static string PathDoesNotExist + { + get + { + return ResourceManager.GetString("PathDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path for {0} doesn't exist in {1}.. + /// + public static string PathDoesNotExistForElement + { + get + { + return ResourceManager.GetString("PathDoesNotExistForElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the Peer Asn has to be provided.. + /// + public static string PeerAsnRequired + { + get + { + return ResourceManager.GetString("PeerAsnRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 5.4.0. + /// + public static string PHPDefaultRuntimeVersion + { + get + { + return ResourceManager.GetString("PHPDefaultRuntimeVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to php. + /// + public static string PhpRuntimeValue + { + get + { + return ResourceManager.GetString("PhpRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\PHP. + /// + public static string PHPScaffolding + { + get + { + return ResourceManager.GetString("PHPScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.PHP. + /// + public static string PHPScaffoldingResources + { + get + { + return ResourceManager.GetString("PHPScaffoldingResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing PHP version {0} for Role '{1}' (the PHP version locally installed is: {2}). + /// + public static string PHPVersionWarningText + { + get + { + return ResourceManager.GetString("PHPVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must create your first web site using the Microsoft Azure portal. + ///Please follow these steps in the portal: + ///1. At the bottom of the page, click on New > Web Site > Quick Create + ///2. Type {0} in the URL field + ///3. Click on "Create Web Site" + ///4. Once the site has been created, click on the site name + ///5. Click on "Set up Git publishing" or "Reset deployment credentials" and setup a publishing username and password. Use those credentials for all new websites you create.. + /// + public static string PortalInstructions + { + get + { + return ResourceManager.GetString("PortalInstructions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 6. Back in the console window, rerun this command by typing "New-AzureWebsite <site name> -Git". + /// + public static string PortalInstructionsGit + { + get + { + return ResourceManager.GetString("PortalInstructionsGit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This cmdlet is in preview. The functionality may not be available in the selected subscription. + /// + public static string PreviewCmdletMessage + { + get + { + return ResourceManager.GetString("PreviewCmdletMessage", resourceCulture); + } + } + + + /// + /// Looks up a localized string similar to A value for the Primary Peer Subnet has to be provided.. + /// + public static string PrimaryPeerSubnetRequired + { + get + { + return ResourceManager.GetString("PrimaryPeerSubnetRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Promotion code can be used only when updating to a new plan.. + /// + public static string PromotionCodeWithCurrentPlanMessage + { + get + { + return ResourceManager.GetString("PromotionCodeWithCurrentPlanMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service not published at user request.. + /// + public static string PublishAbortedAtUserRequest + { + get + { + return ResourceManager.GetString("PublishAbortedAtUserRequest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Complete.. + /// + public static string PublishCompleteMessage + { + get + { + return ResourceManager.GetString("PublishCompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connecting.... + /// + public static string PublishConnectingMessage + { + get + { + return ResourceManager.GetString("PublishConnectingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created Deployment ID: {0}.. + /// + public static string PublishCreatedDeploymentMessage + { + get + { + return ResourceManager.GetString("PublishCreatedDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created hosted service '{0}'.. + /// + public static string PublishCreatedServiceMessage + { + get + { + return ResourceManager.GetString("PublishCreatedServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created Website URL: {0}.. + /// + public static string PublishCreatedWebsiteMessage + { + get + { + return ResourceManager.GetString("PublishCreatedWebsiteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Creating.... + /// + public static string PublishCreatingServiceMessage + { + get + { + return ResourceManager.GetString("PublishCreatingServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Initializing.... + /// + public static string PublishInitializingMessage + { + get + { + return ResourceManager.GetString("PublishInitializingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to busy. + /// + public static string PublishInstanceStatusBusy + { + get + { + return ResourceManager.GetString("PublishInstanceStatusBusy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to creating the virtual machine. + /// + public static string PublishInstanceStatusCreating + { + get + { + return ResourceManager.GetString("PublishInstanceStatusCreating", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Instance {0} of role {1} is {2}.. + /// + public static string PublishInstanceStatusMessage + { + get + { + return ResourceManager.GetString("PublishInstanceStatusMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ready. + /// + public static string PublishInstanceStatusReady + { + get + { + return ResourceManager.GetString("PublishInstanceStatusReady", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preparing deployment for {0} with Subscription ID: {1}.... + /// + public static string PublishPreparingDeploymentMessage + { + get + { + return ResourceManager.GetString("PublishPreparingDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Publishing {0} to Microsoft Azure. This may take several minutes.... + /// + public static string PublishServiceStartMessage + { + get + { + return ResourceManager.GetString("PublishServiceStartMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to publish settings. + /// + public static string PublishSettings + { + get + { + return ResourceManager.GetString("PublishSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure. + /// + public static string PublishSettingsElementName + { + get + { + return ResourceManager.GetString("PublishSettingsElementName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to .PublishSettings. + /// + public static string PublishSettingsFileExtention + { + get + { + return ResourceManager.GetString("PublishSettingsFileExtention", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to publishSettings.xml. + /// + public static string PublishSettingsFileName + { + get + { + return ResourceManager.GetString("PublishSettingsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &whr={0}. + /// + public static string PublishSettingsFileRealmFormat + { + get + { + return ResourceManager.GetString("PublishSettingsFileRealmFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Publish settings imported. + /// + public static string PublishSettingsSetSuccessfully + { + get + { + return ResourceManager.GetString("PublishSettingsSetSuccessfully", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_PUBLISHINGPROFILE_URL. + /// + public static string PublishSettingsUrlEnv + { + get + { + return ResourceManager.GetString("PublishSettingsUrlEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Starting.... + /// + public static string PublishStartingMessage + { + get + { + return ResourceManager.GetString("PublishStartingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Upgrading.... + /// + public static string PublishUpgradingMessage + { + get + { + return ResourceManager.GetString("PublishUpgradingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Uploading Package to storage service {0}.... + /// + public static string PublishUploadingPackageMessage + { + get + { + return ResourceManager.GetString("PublishUploadingPackageMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Verifying storage account '{0}'.... + /// + public static string PublishVerifyingStorageMessage + { + get + { + return ResourceManager.GetString("PublishVerifyingStorageMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path '{0}' not found.. + /// + public static string PublishVMDscExtensionAdditionalContentPathNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionAdditionalContentPathNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration published to {0}. + /// + public static string PublishVMDscExtensionArchiveUploadedMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionArchiveUploadedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy '{0}' to '{1}'.. + /// + public static string PublishVMDscExtensionCopyFileVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCopyFileVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy the module '{0}' to '{1}'.. + /// + public static string PublishVMDscExtensionCopyModuleVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCopyModuleVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid configuration file: {0}. + ///The file needs to be a PowerShell script (.ps1 or .psm1).. + /// + public static string PublishVMDscExtensionCreateArchiveConfigFileInvalidExtension + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCreateArchiveConfigFileInvalidExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleted '{0}'. + /// + public static string PublishVMDscExtensionDeletedFileMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDeletedFileMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot delete '{0}': {1}. + /// + public static string PublishVMDscExtensionDeleteErrorMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDeleteErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path '{0}' not found.. + /// + public static string PublishVMDscExtensionDirectoryNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDirectoryNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot get module for DscResource '{0}'. Possible solutions: + ///1) Specify -ModuleName for Import-DscResource in your configuration. + ///2) Unblock module that contains resource. + ///3) Move Import-DscResource inside Node block. + ///. + /// + public static string PublishVMDscExtensionGetDscResourceFailed + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionGetDscResourceFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to List of required modules: [{0}].. + /// + public static string PublishVMDscExtensionRequiredModulesVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionRequiredModulesVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your current PowerShell version {1} is less then required by this cmdlet {0}. Consider download and install latest PowerShell version.. + /// + public static string PublishVMDscExtensionRequiredPsVersion + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionRequiredPsVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration script '{0}' contained parse errors: + ///{1}. + /// + public static string PublishVMDscExtensionStorageParserErrors + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionStorageParserErrors", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Temp folder '{0}' created.. + /// + public static string PublishVMDscExtensionTempFolderVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionTempFolderVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid configuration file: {0}. + ///The file needs to be a PowerShell script (.ps1 or .psm1) or a ZIP archive (.zip).. + /// + public static string PublishVMDscExtensionUploadArchiveConfigFileInvalidExtension + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionUploadArchiveConfigFileInvalidExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration file '{0}' not found.. + /// + public static string PublishVMDscExtensionUploadArchiveConfigFileNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionUploadArchiveConfigFileNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure PowerShell collects usage data in order to improve your experience. + ///The data is anonymous and does not include commandline argument values. + ///The data is collected by Microsoft. + /// + ///Use the Disable-AzureDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Azure module. To disable data collection: PS > Disable-AzureDataCollection. + ///Use the Enable-AzureDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Azure module. To enable data collection: PS > Enab [rest of string was truncated]";. + /// + public static string RDFEDataCollectionMessage + { + get + { + return ResourceManager.GetString("RDFEDataCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Replace current deployment with '{0}' Id ?. + /// + public static string RedeployCommit + { + get + { + return ResourceManager.GetString("RedeployCommit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to regenerate key?. + /// + public static string RegenerateKeyWarning + { + get + { + return ResourceManager.GetString("RegenerateKeyWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Generate new key.. + /// + public static string RegenerateKeyWhatIfMessage + { + get + { + return ResourceManager.GetString("RegenerateKeyWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove account '{0}'?. + /// + public static string RemoveAccountConfirmation + { + get + { + return ResourceManager.GetString("RemoveAccountConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing account. + /// + public static string RemoveAccountMessage + { + get + { + return ResourceManager.GetString("RemoveAccountMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove Add-On Confirmation. + /// + public static string RemoveAddOnConformation + { + get + { + return ResourceManager.GetString("RemoveAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If you delete this add-on, your data may be deleted and the operation may not be undone. You may have to purchase it again from the Microsoft Azure Store to use it. The price of the add-on may not be refunded. Are you sure you want to delete this add-on? Enter “Yes” to confirm.. + /// + public static string RemoveAddOnMessage + { + get + { + return ResourceManager.GetString("RemoveAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureBGPPeering Operation failed.. + /// + public static string RemoveAzureBGPPeeringFailed + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Bgp Peering. + /// + public static string RemoveAzureBGPPeeringMessage + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Bgp Peering with Service Key {0}.. + /// + public static string RemoveAzureBGPPeeringSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Bgp Peering with service key '{0}'?. + /// + public static string RemoveAzureBGPPeeringWarning + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Dedicated Circuit with service key '{0}'?. + /// + public static string RemoveAzureDedicatdCircuitWarning + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatdCircuitWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureDedicatedCircuit Operation failed.. + /// + public static string RemoveAzureDedicatedCircuitFailed + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureDedicatedCircuitLink Operation failed.. + /// + public static string RemoveAzureDedicatedCircuitLinkFailed + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Dedicated Circui Link. + /// + public static string RemoveAzureDedicatedCircuitLinkMessage + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Dedicated Circuit Link with Service Key {0} and Vnet Name {1}. + /// + public static string RemoveAzureDedicatedCircuitLinkSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Dedicated Circuit Link with service key '{0}' and virtual network name '{1}'?. + /// + public static string RemoveAzureDedicatedCircuitLinkWarning + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Dedicated Circuit. + /// + public static string RemoveAzureDedicatedCircuitMessage + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Dedicated Circuit with Service Key {0}.. + /// + public static string RemoveAzureDedicatedCircuitSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing cloud service {0}.... + /// + public static string RemoveAzureServiceWaitMessage + { + get + { + return ResourceManager.GetString("RemoveAzureServiceWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The default subscription is being removed. Use Select-AzureSubscription -Default <subscriptionName> to select a new default subscription.. + /// + public static string RemoveDefaultSubscription + { + get + { + return ResourceManager.GetString("RemoveDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing {0} deployment for {1} service. + /// + public static string RemoveDeploymentWaitMessage + { + get + { + return ResourceManager.GetString("RemoveDeploymentWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing an environment will remove all associated subscriptions and accounts. Are you sure you want to remove an environment '{0}'?. + /// + public static string RemoveEnvironmentConfirmation + { + get + { + return ResourceManager.GetString("RemoveEnvironmentConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing environment. + /// + public static string RemoveEnvironmentMessage + { + get + { + return ResourceManager.GetString("RemoveEnvironmentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing job collection. + /// + public static string RemoveJobCollectionMessage + { + get + { + return ResourceManager.GetString("RemoveJobCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the job collection "{0}". + /// + public static string RemoveJobCollectionWarning + { + get + { + return ResourceManager.GetString("RemoveJobCollectionWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing job. + /// + public static string RemoveJobMessage + { + get + { + return ResourceManager.GetString("RemoveJobMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the job "{0}". + /// + public static string RemoveJobWarning + { + get + { + return ResourceManager.GetString("RemoveJobWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the account?. + /// + public static string RemoveMediaAccountWarning + { + get + { + return ResourceManager.GetString("RemoveMediaAccountWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account removed.. + /// + public static string RemoveMediaAccountWhatIfMessage + { + get + { + return ResourceManager.GetString("RemoveMediaAccountWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen because the namespace does not exist or it does not exist under your subscription.. + /// + public static string RemoveNamespaceErrorMessage + { + get + { + return ResourceManager.GetString("RemoveNamespaceErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing old package {0}.... + /// + public static string RemovePackage + { + get + { + return ResourceManager.GetString("RemovePackage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing the Azure profile will remove all associated environments, subscriptions, and accounts. Are you sure you want to remove the Azure profile?. + /// + public static string RemoveProfileConfirmation + { + get + { + return ResourceManager.GetString("RemoveProfileConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing the Azure profile. + /// + public static string RemoveProfileMessage + { + get + { + return ResourceManager.GetString("RemoveProfileMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to delete the namespace '{0}'?. + /// + public static string RemoveServiceBusNamespaceConfirmation + { + get + { + return ResourceManager.GetString("RemoveServiceBusNamespaceConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove cloud service?. + /// + public static string RemoveServiceWarning + { + get + { + return ResourceManager.GetString("RemoveServiceWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove cloud service and all it's deployments. + /// + public static string RemoveServiceWhatIfMessage + { + get + { + return ResourceManager.GetString("RemoveServiceWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove subscription '{0}'?. + /// + public static string RemoveSubscriptionConfirmation + { + get + { + return ResourceManager.GetString("RemoveSubscriptionConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing subscription. + /// + public static string RemoveSubscriptionMessage + { + get + { + return ResourceManager.GetString("RemoveSubscriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The endpoint {0} cannot be removed from profile {1} because it's not in the profile.. + /// + public static string RemoveTrafficManagerEndpointMissing + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerEndpointMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureTrafficManagerProfile Operation failed.. + /// + public static string RemoveTrafficManagerProfileFailed + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Traffic Manager profile with name {0}.. + /// + public static string RemoveTrafficManagerProfileSucceeded + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Traffic Manager profile "{0}"?. + /// + public static string RemoveTrafficManagerProfileWarning + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to delete the VM '{0}'?. + /// + public static string RemoveVMConfirmationMessage + { + get + { + return ResourceManager.GetString("RemoveVMConfirmationMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleting VM.. + /// + public static string RemoveVMMessage + { + get + { + return ResourceManager.GetString("RemoveVMMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing WebJob.... + /// + public static string RemoveWebJobMessage + { + get + { + return ResourceManager.GetString("RemoveWebJobMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove job '{0}'?. + /// + public static string RemoveWebJobWarning + { + get + { + return ResourceManager.GetString("RemoveWebJobWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing website. + /// + public static string RemoveWebsiteMessage + { + get + { + return ResourceManager.GetString("RemoveWebsiteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the website "{0}". + /// + public static string RemoveWebsiteWarning + { + get + { + return ResourceManager.GetString("RemoveWebsiteWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing public environment is not supported.. + /// + public static string RemovingDefaultEnvironmentsNotSupported + { + get + { + return ResourceManager.GetString("RemovingDefaultEnvironmentsNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleting namespace. + /// + public static string RemovingNamespaceMessage + { + get + { + return ResourceManager.GetString("RemovingNamespaceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Repository is not setup. You need to pass a valid site name.. + /// + public static string RepositoryNotSetup + { + get + { + return ResourceManager.GetString("RepositoryNotSetup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reserved IP with the Name:'{0}' will no longer be in use after the deployment is deleted, and it is still reserved for later use.. + /// + public static string ReservedIPNameNoLongerInUseButStillBeingReserved + { + get + { + return ResourceManager.GetString("ReservedIPNameNoLongerInUseButStillBeingReserved", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resource with ID : {0} does not exist.. + /// + public static string ResourceNotFound + { + get + { + return ResourceManager.GetString("ResourceNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Restart. + /// + public static string Restart + { + get + { + return ResourceManager.GetString("Restart", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resume. + /// + public static string Resume + { + get + { + return ResourceManager.GetString("Resume", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /role:{0};"{1}/{0}" . + /// + public static string RoleArgTemplate + { + get + { + return ResourceManager.GetString("RoleArgTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to bin. + /// + public static string RoleBinFolderName + { + get + { + return ResourceManager.GetString("RoleBinFolderName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} is {1}. + /// + public static string RoleInstanceWaitMsg + { + get + { + return ResourceManager.GetString("RoleInstanceWaitMsg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 20. + /// + public static string RoleMaxInstances + { + get + { + return ResourceManager.GetString("RoleMaxInstances", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to role name. + /// + public static string RoleName + { + get + { + return ResourceManager.GetString("RoleName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided role name {0} doesn't exist. + /// + public static string RoleNotFoundMessage + { + get + { + return ResourceManager.GetString("RoleNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RoleSettings.xml. + /// + public static string RoleSettingsTemplateFileName + { + get + { + return ResourceManager.GetString("RoleSettingsTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role type {0} doesn't exist. + /// + public static string RoleTypeDoesNotExist + { + get + { + return ResourceManager.GetString("RoleTypeDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to public static Dictionary<string, Location> ReverseLocations { get; private set; }. + /// + public static string RuntimeDeploymentLocationError + { + get + { + return ResourceManager.GetString("RuntimeDeploymentLocationError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preparing runtime deployment for service '{0}'. + /// + public static string RuntimeDeploymentStart + { + get + { + return ResourceManager.GetString("RuntimeDeploymentStart", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WARNING Runtime Mismatch: Are you sure that you want to publish service '{0}' using an Azure runtime version that does not match your local runtime version?. + /// + public static string RuntimeMismatchWarning + { + get + { + return ResourceManager.GetString("RuntimeMismatchWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEOVERRIDEURL. + /// + public static string RuntimeOverrideKey + { + get + { + return ResourceManager.GetString("RuntimeOverrideKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /runtimemanifest/runtimes/runtime. + /// + public static string RuntimeQuery + { + get + { + return ResourceManager.GetString("RuntimeQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEID. + /// + public static string RuntimeTypeKey + { + get + { + return ResourceManager.GetString("RuntimeTypeKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEURL. + /// + public static string RuntimeUrlKey + { + get + { + return ResourceManager.GetString("RuntimeUrlKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEVERSIONPRIMARYKEY. + /// + public static string RuntimeVersionPrimaryKey + { + get + { + return ResourceManager.GetString("RuntimeVersionPrimaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to scaffold.xml. + /// + public static string ScaffoldXml + { + get + { + return ResourceManager.GetString("ScaffoldXml", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid location entered. Pick one of the locations from Get-AzureSchedulerLocation. + /// + public static string SchedulerInvalidLocation + { + get + { + return ResourceManager.GetString("SchedulerInvalidLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the Secondary Peer Subnet has to be provided.. + /// + public static string SecondaryPeerSubnetRequired + { + get + { + return ResourceManager.GetString("SecondaryPeerSubnetRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} already exists on disk in location {1}. + /// + public static string ServiceAlreadyExistsOnDisk + { + get + { + return ResourceManager.GetString("ServiceAlreadyExistsOnDisk", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No ServiceBus authorization rule with the given characteristics was found. + /// + public static string ServiceBusAuthorizationRuleNotFound + { + get + { + return ResourceManager.GetString("ServiceBusAuthorizationRuleNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The service bus entity '{0}' is not found.. + /// + public static string ServiceBusEntityTypeNotFound + { + get + { + return ResourceManager.GetString("ServiceBusEntityTypeNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen due to an incorrect/missing namespace. + /// + public static string ServiceBusNamespaceMissingMessage + { + get + { + return ResourceManager.GetString("ServiceBusNamespaceMissingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service configuration. + /// + public static string ServiceConfiguration + { + get + { + return ResourceManager.GetString("ServiceConfiguration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service definition. + /// + public static string ServiceDefinition + { + get + { + return ResourceManager.GetString("ServiceDefinition", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceDefinition.csdef. + /// + public static string ServiceDefinitionFileName + { + get + { + return ResourceManager.GetString("ServiceDefinitionFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Deploy. + /// + public static string ServiceDeploymentName + { + get + { + return ResourceManager.GetString("ServiceDeploymentName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The specified cloud service "{0}" does not exist.. + /// + public static string ServiceDoesNotExist + { + get + { + return ResourceManager.GetString("ServiceDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} slot for service {1} is in {2} state, please wait until it finish and update it's status. + /// + public static string ServiceIsInTransitionState + { + get + { + return ResourceManager.GetString("ServiceIsInTransitionState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "An exception occurred when calling the ServiceManagement API. HTTP Status Code: {0}. Service Management Error Code: {1}. Message: {2}. Operation Tracking ID: {3}.". + /// + public static string ServiceManagementClientExceptionStringFormat + { + get + { + return ResourceManager.GetString("ServiceManagementClientExceptionStringFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Begin Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionBeginOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionBeginOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Completed Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionCompletedOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionCompletedOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Begin Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionInOCSBeginOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionInOCSBeginOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Completed Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionInOCSCompletedOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionInOCSCompletedOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service name. + /// + public static string ServiceName + { + get + { + return ResourceManager.GetString("ServiceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided service name {0} already exists, please pick another name. + /// + public static string ServiceNameExists + { + get + { + return ResourceManager.GetString("ServiceNameExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please provide name for the hosted service. + /// + public static string ServiceNameMissingMessage + { + get + { + return ResourceManager.GetString("ServiceNameMissingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service parent directory. + /// + public static string ServiceParentDirectory + { + get + { + return ResourceManager.GetString("ServiceParentDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} removed successfully. + /// + public static string ServiceRemovedMessage + { + get + { + return ResourceManager.GetString("ServiceRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service directory. + /// + public static string ServiceRoot + { + get + { + return ResourceManager.GetString("ServiceRoot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service settings. + /// + public static string ServiceSettings + { + get + { + return ResourceManager.GetString("ServiceSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The storage account name '{0}' is invalid. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.. + /// + public static string ServiceSettings_ValidateStorageAccountName_InvalidName + { + get + { + return ResourceManager.GetString("ServiceSettings_ValidateStorageAccountName_InvalidName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The {0} slot for cloud service {1} doesn't exist.. + /// + public static string ServiceSlotDoesNotExist + { + get + { + return ResourceManager.GetString("ServiceSlotDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} slot for service {1} is {2}. + /// + public static string ServiceStatusChanged + { + get + { + return ResourceManager.GetString("ServiceStatusChanged", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set Add-On Confirmation. + /// + public static string SetAddOnConformation + { + get + { + return ResourceManager.GetString("SetAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Profile {0} does not contain endpoint {1}. Adding it.. + /// + public static string SetInexistentTrafficManagerEndpointMessage + { + get + { + return ResourceManager.GetString("SetInexistentTrafficManagerEndpointMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note - You will be charged the amount for the new plan, without being refunded for time remaining + ///in the existing plan. + ///By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my + ///contact information with {2}.. + /// + public static string SetMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("SetMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note - You will be charged the amount for the new plan, without being refunded for time remaining + ///in the existing plan. + ///By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of + ///use and privacy statement at <url> and (c) agree to sharing my contact information with {2}.. + /// + public static string SetNonMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("SetNonMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} instances are set to {1}. + /// + public static string SetRoleInstancesMessage + { + get + { + return ResourceManager.GetString("SetRoleInstancesMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {"Slot":"","Location":"","Subscription":"","StorageAccountName":""}. + /// + public static string SettingsFileEmptyContent + { + get + { + return ResourceManager.GetString("SettingsFileEmptyContent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to deploymentSettings.json. + /// + public static string SettingsFileName + { + get + { + return ResourceManager.GetString("SettingsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Insufficient parameters passed to create a new endpoint.. + /// + public static string SetTrafficManagerEndpointNeedsParameters + { + get + { + return ResourceManager.GetString("SetTrafficManagerEndpointNeedsParameters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ambiguous operation: the profile name specified doesn't match the name of the profile object.. + /// + public static string SetTrafficManagerProfileAmbiguous + { + get + { + return ResourceManager.GetString("SetTrafficManagerProfileAmbiguous", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and include the 'Force' parameter, if available, to avoid unnecessary prompts.. + /// + public static string ShouldContinueFail + { + get + { + return ResourceManager.GetString("ShouldContinueFail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Confirm. + /// + public static string ShouldProcessCaption + { + get + { + return ResourceManager.GetString("ShouldProcessCaption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and omit the 'Confirm' parameter when using the 'AsJob' parameter.. + /// + public static string ShouldProcessFailConfirm + { + get + { + return ResourceManager.GetString("ShouldProcessFailConfirm", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please increase the user $ConfirmPreference setting, or include turn off confirmation using '-Confirm:$false' when using the 'AsJob' parameter and execute the cmdet again.. + /// + public static string ShouldProcessFailImpact + { + get + { + return ResourceManager.GetString("ShouldProcessFailImpact", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and omit the 'WhatIf' parameter when using the 'AsJob' parameter.. + /// + public static string ShouldProcessFailWhatIf + { + get + { + return ResourceManager.GetString("ShouldProcessFailWhatIf", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shutdown. + /// + public static string Shutdown + { + get + { + return ResourceManager.GetString("Shutdown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /sites:{0};{1};"{2}/{0}" . + /// + public static string SitesArgTemplate + { + get + { + return ResourceManager.GetString("SitesArgTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1000. + /// + public static string StandardRetryDelayInMs + { + get + { + return ResourceManager.GetString("StandardRetryDelayInMs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start. + /// + public static string Start + { + get + { + return ResourceManager.GetString("Start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Started. + /// + public static string StartedEmulator + { + get + { + return ResourceManager.GetString("StartedEmulator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Starting Emulator.... + /// + public static string StartingEmulator + { + get + { + return ResourceManager.GetString("StartingEmulator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to start. + /// + public static string StartStorageEmulatorCommandArgument + { + get + { + return ResourceManager.GetString("StartStorageEmulatorCommandArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stop. + /// + public static string Stop + { + get + { + return ResourceManager.GetString("Stop", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stopping emulator.... + /// + public static string StopEmulatorMessage + { + get + { + return ResourceManager.GetString("StopEmulatorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stopped. + /// + public static string StoppedEmulatorMessage + { + get + { + return ResourceManager.GetString("StoppedEmulatorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to stop. + /// + public static string StopStorageEmulatorCommandArgument + { + get + { + return ResourceManager.GetString("StopStorageEmulatorCommandArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account Name:. + /// + public static string StorageAccountName + { + get + { + return ResourceManager.GetString("StorageAccountName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find storage account '{0}' please type the name of an existing storage account.. + /// + public static string StorageAccountNotFound + { + get + { + return ResourceManager.GetString("StorageAccountNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AzureStorageEmulator.exe. + /// + public static string StorageEmulatorExe + { + get + { + return ResourceManager.GetString("StorageEmulatorExe", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to InstallPath. + /// + public static string StorageEmulatorInstallPathRegistryKeyValue + { + get + { + return ResourceManager.GetString("StorageEmulatorInstallPathRegistryKeyValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SOFTWARE\Microsoft\Windows Azure Storage Emulator. + /// + public static string StorageEmulatorRegistryKey + { + get + { + return ResourceManager.GetString("StorageEmulatorRegistryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Primary Key:. + /// + public static string StoragePrimaryKey + { + get + { + return ResourceManager.GetString("StoragePrimaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Secondary Key:. + /// + public static string StorageSecondaryKey + { + get + { + return ResourceManager.GetString("StorageSecondaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named {0} already exists.. + /// + public static string SubscriptionAlreadyExists + { + get + { + return ResourceManager.GetString("SubscriptionAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The SubscriptionDataFile parameter is deprecated. This parameter will be removed in a future release. See https://github.com/Azure/azure-powershell/wiki/Proposed-Design-Stateless-Azure-Profile for a description of the upcoming mechanism for providing alternate sources of subscription information.. + /// + public static string SubscriptionDataFileDeprecated + { + get + { + return ResourceManager.GetString("SubscriptionDataFileDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to DefaultSubscriptionData.xml. + /// + public static string SubscriptionDataFileName + { + get + { + return ResourceManager.GetString("SubscriptionDataFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription data file {0} does not exist.. + /// + public static string SubscriptionDataFileNotFound + { + get + { + return ResourceManager.GetString("SubscriptionDataFileNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription id {0} doesn't exist.. + /// + public static string SubscriptionIdNotFoundMessage + { + get + { + return ResourceManager.GetString("SubscriptionIdNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription must not be null. + /// + public static string SubscriptionMustNotBeNull + { + get + { + return ResourceManager.GetString("SubscriptionMustNotBeNull", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription name needs to be specified.. + /// + public static string SubscriptionNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("SubscriptionNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription name {0} doesn't exist.. + /// + public static string SubscriptionNameNotFoundMessage + { + get + { + return ResourceManager.GetString("SubscriptionNameNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription needs to be specified.. + /// + public static string SubscriptionNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("SubscriptionNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Suspend. + /// + public static string Suspend + { + get + { + return ResourceManager.GetString("Suspend", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swapping website production slot .... + /// + public static string SwappingWebsite + { + get + { + return ResourceManager.GetString("SwappingWebsite", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to swap the website '{0}' production slot with slot '{1}'?. + /// + public static string SwapWebsiteSlotWarning + { + get + { + return ResourceManager.GetString("SwapWebsiteSlotWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The Switch-AzureMode cmdlet is deprecated and will be removed in a future release.. + /// + public static string SwitchAzureModeDeprecated + { + get + { + return ResourceManager.GetString("SwitchAzureModeDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Starting cmdlet execution, setting for cmdlet confirmation required: '{0}'. + /// + public static string TraceBeginLROJob + { + get + { + return ResourceManager.GetString("TraceBeginLROJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Blocking job for ShouldMethod '{0}'. + /// + public static string TraceBlockLROThread + { + get + { + return ResourceManager.GetString("TraceBlockLROThread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Completing cmdlet execution in RunJob. + /// + public static string TraceEndLROJob + { + get + { + return ResourceManager.GetString("TraceEndLROJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: State change from '{0}' to '{1}' because '{2}'. + /// + public static string TraceHandleLROStateChange + { + get + { + return ResourceManager.GetString("TraceHandleLROStateChange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Unblocking job due to stoppage or failure. + /// + public static string TraceHandlerCancelJob + { + get + { + return ResourceManager.GetString("TraceHandlerCancelJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Unblocking job that was previously blocked.. + /// + public static string TraceHandlerUnblockJob + { + get + { + return ResourceManager.GetString("TraceHandlerUnblockJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Error in cmdlet execution. + /// + public static string TraceLROJobException + { + get + { + return ResourceManager.GetString("TraceLROJobException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Removing state changed event handler, exception '{0}'. + /// + public static string TraceRemoveLROEventHandler + { + get + { + return ResourceManager.GetString("TraceRemoveLROEventHandler", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: ShouldMethod '{0}' unblocked.. + /// + public static string TraceUnblockLROThread + { + get + { + return ResourceManager.GetString("TraceUnblockLROThread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to decode string from base 64. Please make sure the string is correctly encoded: {0}.. + /// + public static string UnableToDecodeBase64String + { + get + { + return ResourceManager.GetString("UnableToDecodeBase64String", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to update mismatching Json structured: {0} {1}.. + /// + public static string UnableToPatchJson + { + get + { + return ResourceManager.GetString("UnableToPatchJson", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provider {0} is unknown.. + /// + public static string UnknownProviderMessage + { + get + { + return ResourceManager.GetString("UnknownProviderMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update. + /// + public static string Update + { + get + { + return ResourceManager.GetString("Update", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Updated settings for subscription '{0}'. Current subscription is '{1}'.. + /// + public static string UpdatedSettings + { + get + { + return ResourceManager.GetString("UpdatedSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name is not valid.. + /// + public static string UserNameIsNotValid + { + get + { + return ResourceManager.GetString("UserNameIsNotValid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name needs to be specified.. + /// + public static string UserNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("UserNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the VLan Id has to be provided.. + /// + public static string VlanIdRequired + { + get + { + return ResourceManager.GetString("VlanIdRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please wait.... + /// + public static string WaitMessage + { + get + { + return ResourceManager.GetString("WaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The azure storage emulator is not installed, skip launching.... + /// + public static string WarningWhenStorageEmulatorIsMissing + { + get + { + return ResourceManager.GetString("WarningWhenStorageEmulatorIsMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Web.cloud.config. + /// + public static string WebCloudConfig + { + get + { + return ResourceManager.GetString("WebCloudConfig", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to web.config. + /// + public static string WebConfigTemplateFileName + { + get + { + return ResourceManager.GetString("WebConfigTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MSDeploy. + /// + public static string WebDeployKeywordInWebSitePublishProfile + { + get + { + return ResourceManager.GetString("WebDeployKeywordInWebSitePublishProfile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot build the project successfully. Please see logs in {0}.. + /// + public static string WebProjectBuildFailTemplate + { + get + { + return ResourceManager.GetString("WebProjectBuildFailTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebRole. + /// + public static string WebRole + { + get + { + return ResourceManager.GetString("WebRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to setup_web.cmd > log.txt. + /// + public static string WebRoleStartupTaskCommandLine + { + get + { + return ResourceManager.GetString("WebRoleStartupTaskCommandLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebRole.xml. + /// + public static string WebRoleTemplateFileName + { + get + { + return ResourceManager.GetString("WebRoleTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebSite with given name {0} already exists in the specified Subscription and Webspace.. + /// + public static string WebsiteAlreadyExists + { + get + { + return ResourceManager.GetString("WebsiteAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebSite with given name {0} already exists in the specified Subscription and Location.. + /// + public static string WebsiteAlreadyExistsReplacement + { + get + { + return ResourceManager.GetString("WebsiteAlreadyExistsReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Site {0} already has repository created for it.. + /// + public static string WebsiteRepositoryAlreadyExists + { + get + { + return ResourceManager.GetString("WebsiteRepositoryAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Workspaces/WebsiteExtension/Website/{0}/dashboard/. + /// + public static string WebsiteSufixUrl + { + get + { + return ResourceManager.GetString("WebsiteSufixUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://{0}/msdeploy.axd?site={1}. + /// + public static string WebSiteWebDeployUriTemplate + { + get + { + return ResourceManager.GetString("WebSiteWebDeployUriTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WorkerRole. + /// + public static string WorkerRole + { + get + { + return ResourceManager.GetString("WorkerRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to setup_worker.cmd > log.txt. + /// + public static string WorkerRoleStartupTaskCommandLine + { + get + { + return ResourceManager.GetString("WorkerRoleStartupTaskCommandLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WorkerRole.xml. + /// + public static string WorkerRoleTemplateFileName + { + get + { + return ResourceManager.GetString("WorkerRoleTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (x86). + /// + public static string x86InProgramFiles + { + get + { + return ResourceManager.GetString("x86InProgramFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes. + /// + public static string Yes + { + get + { + return ResourceManager.GetString("Yes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes, I agree. + /// + public static string YesHint + { + get + { + return ResourceManager.GetString("YesHint", resourceCulture); + } + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/Properties/Resources.resx b/swaggerci/appplatform/generated/runtime/Properties/Resources.resx new file mode 100644 index 000000000000..598cd53e958a --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Properties/Resources.resx @@ -0,0 +1,1741 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The remote server returned an error: (401) Unauthorized. + + + Account "{0}" has been added. + + + To switch to a different subscription, please use Select-AzureSubscription. + + + Subscription "{0}" is selected as the default subscription. + + + To view all the subscriptions, please use Get-AzureSubscription. + + + Add-On {0} is created successfully. + + + Add-on name {0} is already used. + + + Add-On {0} not found. + + + Add-on {0} is removed successfully. + + + Add-On {0} is updated successfully. + + + Role has been created at {0}\{1}. + + + Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for Node.js by running ‘npm install azure’. + + + Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for PHP by running "pear WindowsAzure/WindowsAzure". + + + Unable to set role permissions. Please give the 'Network Service' user 'Read & execute' and 'Modify' permissions to the role folder, or run PowerShell as an Administrator + + + A role name '{0}' already exists + + + Windows Azure Powershell\ + + + https://manage.windowsazure.com + + + AZURE_PORTAL_URL + + + Azure SDK\{0}\ + + + Base Uri was empty. + WAPackIaaS + + + {0} begin processing without ParameterSet. + + + {0} begin processing with ParameterSet '{1}'. + + + Blob with the name {0} already exists in the account. + + + https://{0}.blob.core.windows.net/ + + + AZURE_BLOBSTORAGE_TEMPLATE + + + CACHERUNTIMEURL + + + cache + + + CacheRuntimeVersion + + + Installing caching version {0} for Role '{1}' (the caching version locally installed is: {2}) + + + Cannot find {0} with name {1}. + + + Deployment for service {0} with {1} slot doesn't exist + + + Can't find valid Microsoft Azure role in current directory {0} + + + service {0} configuration file (ServiceConfiguration.Cloud.cscfg) is either null or doesn't exist + + + Invalid service path! Cannot locate ServiceDefinition.csdef in current folder or parent folders. + + + The subscription named {0} with id {1} is not currently imported. You must import this subscription before it can be updated. + + + ManagementCertificate + + + certificate.pfx + + + Certificate imported into CurrentUser\My\{0} + + + Your account does not have access to the private key for certificate {0} + + + {0} {1} deployment for {2} service + + + Cloud service {0} is in {1} state. + + + Changing/Removing public environment '{0}' is not allowed. + + + Service {0} is set to value {1} + + + Choose which publish settings file to use: + + + Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel + + + 1 + + + cloud_package.cspkg + + + ServiceConfiguration.Cloud.cscfg + + + Add-ons for {0} + + + Communication could not be established. This could be due to an invalid subscription ID. Note that subscription IDs are case sensitive. + + + Complete + + + config.json + + + VirtualMachine creation failed. + WAPackIaaS + + + Creating the website failed. If this is the first website for this subscription, please create it using the management portal instead. + + + Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core + + + //blobcontainer[@datacenter='{0}'] + + + Setting: {0} as the default and current subscription. To view other subscriptions use Get-AzureSubscription + + + none + + + There are no hostnames which could be used for validation. + + + 8080 + + + 1000 + + + Auto + + + 80 + + + Delete + WAPackIaaS + + + The {0} slot for service {1} is already in {2} state + + + The deployment in {0} slot for service {1} is removed + + + Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel + + + 1 + + + The key to add already exists in the dictionary. + + + The array index cannot be less than zero. + + + The supplied array does not have enough room to contain the copied elements. + + + The provided dns {0} doesn't exist + + + Microsoft Azure Certificate + + + Endpoint can't be retrieved for storage account + + + {0} end processing. + + + To use Active Directory authentication, you must configure the ActiveDirectoryEndpoint, ActiveDirectoryTenantId, and ActiveDirectorServiceEndpointResourceId for environment of '{0}'. You can configure these properties for this environment using the Set-AzureEnvironment cmdlet. + + + The environment '{0}' already exists. + + + environments.xml + + + Error creating VirtualMachine + WAPackIaaS + + + Unable to download available runtimes for location '{0}' + + + Error updating VirtualMachine + WAPackIaaS + + + Job Id {0} failed. Error: {1}, ExceptionDetails: {2} + WAPackIaaS + + + The HTTP request was forbidden with client authentication scheme 'Anonymous'. + + + This add-on requires you to purchase the first instance through the Microsoft Azure Portal. Subsequent purchases can be performed through PowerShell. + + + Operation Status: + + + Resources\Scaffolding\General + + + Getting all available Microsoft Azure Add-Ons, this may take few minutes... + + + Name{0}Primary Key{0}Seconday Key + + + Git not found. Please install git and place it in your command line path. + + + Could not find publish settings. Please run Import-AzurePublishSettingsFile. + + + iisnode.dll + + + iisnode + + + iisnode-dev\\release\\x64 + + + iisnode + + + Installing IISNode version {0} in Azure for WebRole '{1}' (the version locally installed is: {2}) + + + Internal Server Error + + + Cannot enable memcach protocol on a cache worker role {0}. + + + Invalid certificate format. + + + The provided configuration path is invalid or doesn't exist + + + The country name is invalid, please use a valid two character country code, as described in ISO 3166-1 alpha-2. + + + Deployment with {0} does not exist + + + The deployment slot name {0} is invalid. Slot name must be either "Staging" or "Production". + + + Invalid service endpoint. + + + File {0} has invalid characters + + + You must create your git publishing credentials using the Microsoft Azure portal. +Please follow these steps in the portal: +1. On the left side open "Web Sites" +2. Click on any website +3. Choose "Setup Git Publishing" or "Reset deployment credentials" +4. Back in the PowerShell window, rerun this command by typing "New-AzureWebSite {site name} -Git -PublishingUsername {username} + + + The value {0} provided is not a valid GUID. Please provide a valid GUID. + + + The specified hostname does not exist. Please specify a valid hostname for the site. + + + Role {0} instances must be greater than or equal 0 and less than or equal 20 + + + There was an error creating your webjob. Please make sure that the script is in the root folder of the zip file. + + + Could not download a valid runtime manifest, Please check your internet connection and try again. + + + The account {0} was not found. Please specify a valid account name. + + + The provided name "{0}" does not match the service bus namespace naming rules. + + + Value cannot be null. Parameter name: '{0}' + + + The provided package path is invalid or doesn't exist + + + '{0}' is an invalid parameter set name. + + + {0} doesn't exist in {1} or you've not passed valid value for it + + + Path {0} has invalid characters + + + The provided publish settings file {0} has invalid content. Please get valid by running cmdlet Get-AzurePublishSettingsFile + + + The provided role name "{0}" has invalid characters + + + A valid name for the service root folder is required + + + {0} is not a recognized runtime type + + + A valid language is required + + + No subscription is currently selected. Use Select-Subscription to activate a subscription. + + + The provided location "{0}" does not exist in the available locations use Get-AzureSBLocation for listing available locations. + + + Please provide a service name or run this command from inside a service project directory. + + + You must provide valid value for {0} + + + settings.json is invalid or doesn't exist + + + The subscription named '{0}' cannot be found. Use Set-AzureSubscription to initialize the subscription data. + + + The provided subscription id {0} is not valid + + + A valid subscription name is required. This can be provided using the -Subscription parameter or by setting the subscription via the Set-AzureSubscription cmdlet + + + The provided subscriptions file {0} has invalid content. + + + Role {0} VM size should be ExtraSmall, Small, Medium, Large or ExtraLarge. + + + The web job file must have *.zip extension + + + Singleton option works for continuous jobs only. + + + The website {0} was not found. Please specify a valid website name. + + + No job for id: {0} was found. + WAPackIaaS + + + engines + + + Scaffolding for this language is not yet supported + + + Link already established + + + local_package.csx + + + ServiceConfiguration.Local.cscfg + + + Looking for {0} deployment for {1} cloud service... + + + Looking for cloud service {0}... + + + managementCertificate.pem + + + ?whr={0} + + + //baseuri + + + uri + + + http://az413943.vo.msecnd.net/node/runtimemanifest_0.7.5.2.xml + + + Multiple Add-Ons found holding name {0} + + + Multiple possible publishing users. Please go to the Portal and use the listed deployment user, or click 'set/reset deployment credentials' to set up a new user account, then reurn this cmdlet and specify PublishingUsername. + + + The first publish settings file "{0}" is used. If you want to use another file specify the file name. + + + Microsoft.WindowsAzure.Plugins.Caching.NamedCaches + + + {"caches":[{"name":"default","policy":{"eviction":{"type":0},"expiration":{"defaultTTL":10,"isExpirable":true,"type":1},"serverNotification":{"isEnabled":false}},"secondaries":0}]} + + + A publishing username is required. Please specify one using the argument PublishingUsername. + + + New Add-On Confirmation + + + By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my +contact information with {2}. + + + Internal Server Error. This could happen because the namespace name is already used or due to an incorrect location name. Use Get-AzureSBLocation cmdlet to list valid names. + + + By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of +use and privacy statement at {0} and (c) agree to sharing my contact information with {2}. + + + Service has been created at {0} + + + No + + + There is no access token cached for subscription {0}, user id {1}. Use the Add-AzureAccount cmdlet to log in again and get a token for this subscription. + + + The service does not have any cache worker roles, add one first by running cmdlet Add-AzureCacheWorkerRole. + + + No clouds available + WAPackIaaS + + + nodejs + + + node + + + node.exe + + + There is no default subscription set, please set a default subscription by running Set-AzureSubscription -Default <subscription name> + + + Microsoft SDKs\Azure\Nodejs\Nov2011 + + + nodejs + + + node + + + Resources\Scaffolding\Node + + + Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.Node + + + Installing Node version {0} in Azure for Role '{1}' (the Node version locally installed is: {2}) + + + No, I do not agree + + + No publish settings files with extension *.publishsettings are found in the directory "{0}". + + + '{0}' must be a cache worker role. Verify that it has proper cache worker role configuration. + + + Certificate can't be null. + + + {0} could not be null or empty + + + Unable to add a null RoleSettings to {0} + + + Unable to add new role to null service definition + + + The request offer '{0}' is not found. + + + Operation "{0}" failed on VM with ID: {1} + WAPackIaaS + + + The REST operation failed with message '{0}' and error code '{1}' + + + Job Id {0} did not complete within expected time or it is in Failed/Canceled/Invalid state. + WAPackIaaS + + + package + + + Package is created at service root path {0}. + + + {{ + "author": "", + + "name": "{0}", + "version": "0.0.0", + "dependencies":{{}}, + "devDependencies":{{}}, + "optionalDependencies": {{}}, + "engines": {{ + "node": "*", + "iisnode": "*" + }} + +}} + + + + package.json + + + A value for the Peer Asn has to be provided. + + + 5.4.0 + + + php + + + Resources\Scaffolding\PHP + + + Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.PHP + + + Installing PHP version {0} for Role '{1}' (the PHP version locally installed is: {2}) + + + You must create your first web site using the Microsoft Azure portal. +Please follow these steps in the portal: +1. At the bottom of the page, click on New > Web Site > Quick Create +2. Type {0} in the URL field +3. Click on "Create Web Site" +4. Once the site has been created, click on the site name +5. Click on "Set up Git publishing" or "Reset deployment credentials" and setup a publishing username and password. Use those credentials for all new websites you create. + + + 6. Back in the console window, rerun this command by typing "New-AzureWebsite <site name> -Git" + + + A value for the Primary Peer Subnet has to be provided. + + + Promotion code can be used only when updating to a new plan. + + + Service not published at user request. + + + Complete. + + + Connecting... + + + Created Deployment ID: {0}. + + + Created hosted service '{0}'. + + + Created Website URL: {0}. + + + Creating... + + + Initializing... + + + busy + + + creating the virtual machine + + + Instance {0} of role {1} is {2}. + + + ready + + + Preparing deployment for {0} with Subscription ID: {1}... + + + Publishing {0} to Microsoft Azure. This may take several minutes... + + + publish settings + + + Azure + + + .PublishSettings + + + publishSettings.xml + + + Publish settings imported + + + AZURE_PUBLISHINGPROFILE_URL + + + Starting... + + + Upgrading... + + + Uploading Package to storage service {0}... + + + Verifying storage account '{0}'... + + + Replace current deployment with '{0}' Id ? + + + Are you sure you want to regenerate key? + + + Generate new key. + + + Are you sure you want to remove account '{0}'? + + + Removing account + + + Remove Add-On Confirmation + + + If you delete this add-on, your data may be deleted and the operation may not be undone. You may have to purchase it again from the Microsoft Azure Store to use it. The price of the add-on may not be refunded. Are you sure you want to delete this add-on? Enter “Yes” to confirm. + + + Remove-AzureBGPPeering Operation failed. + + + Removing Bgp Peering + + + Successfully removed Azure Bgp Peering with Service Key {0}. + + + Are you sure you want to remove the Bgp Peering with service key '{0}'? + + + Are you sure you want to remove the Dedicated Circuit with service key '{0}'? + + + Remove-AzureDedicatedCircuit Operation failed. + + + Remove-AzureDedicatedCircuitLink Operation failed. + + + Removing Dedicated Circui Link + + + Successfully removed Azure Dedicated Circuit Link with Service Key {0} and Vnet Name {1} + + + Are you sure you want to remove the Dedicated Circuit Link with service key '{0}' and virtual network name '{1}'? + + + Removing Dedicated Circuit + + + Successfully removed Azure Dedicated Circuit with Service Key {0}. + + + Removing cloud service {0}... + + + Removing {0} deployment for {1} service + + + Removing job collection + + + Are you sure you want to remove the job collection "{0}" + + + Removing job + + + Are you sure you want to remove the job "{0}" + + + Are you sure you want to remove the account? + + + Account removed. + + + Internal Server Error. This could happen because the namespace does not exist or it does not exist under your subscription. + + + Removing old package {0}... + + + Are you sure you want to delete the namespace '{0}'? + + + Are you sure you want to remove cloud service? + + + Remove cloud service and all it's deployments + + + Are you sure you want to remove subscription '{0}'? + + + Removing subscription + + + Are you sure you want to delete the VM '{0}'? + + + Deleting VM. + + + Removing WebJob... + + + Are you sure you want to remove job '{0}'? + + + Removing website + + + Are you sure you want to remove the website "{0}" + + + Deleting namespace + + + Repository is not setup. You need to pass a valid site name. + + + Reserved IP with the Name:'{0}' will no longer be in use after the deployment is deleted, and it is still reserved for later use. + + + Resource with ID : {0} does not exist. + WAPackIaaS + + + Restart + WAPackIaaS + + + Resume + WAPackIaaS + + + /role:{0};"{1}/{0}" + + + bin + + + Role {0} is {1} + + + 20 + + + role name + + + The provided role name {0} doesn't exist + + + RoleSettings.xml + + + Role type {0} doesn't exist + + + public static Dictionary<string, Location> ReverseLocations { get; private set; } + + + Preparing runtime deployment for service '{0}' + + + WARNING Runtime Mismatch: Are you sure that you want to publish service '{0}' using an Azure runtime version that does not match your local runtime version? + + + RUNTIMEOVERRIDEURL + + + /runtimemanifest/runtimes/runtime + + + RUNTIMEID + + + RUNTIMEURL + + + RUNTIMEVERSIONPRIMARYKEY + + + scaffold.xml + + + Invalid location entered. Pick one of the locations from Get-AzureSchedulerLocation + + + A value for the Secondary Peer Subnet has to be provided. + + + Service {0} already exists on disk in location {1} + + + No ServiceBus authorization rule with the given characteristics was found + + + The service bus entity '{0}' is not found. + + + Internal Server Error. This could happen due to an incorrect/missing namespace + + + service configuration + + + service definition + + + ServiceDefinition.csdef + + + {0}Deploy + + + The specified cloud service "{0}" does not exist. + + + {0} slot for service {1} is in {2} state, please wait until it finish and update it's status + + + Begin Operation: {0} + + + Completed Operation: {0} + + + Begin Operation: {0} + + + Completed Operation: {0} + + + service name + + + Please provide name for the hosted service + + + service parent directory + + + Service {0} removed successfully + + + service directory + + + service settings + + + The storage account name '{0}' is invalid. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. + + + The {0} slot for cloud service {1} doesn't exist. + + + {0} slot for service {1} is {2} + + + Set Add-On Confirmation + + + Note - You will be charged the amount for the new plan, without being refunded for time remaining +in the existing plan. +By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my +contact information with {2}. + + + Note - You will be charged the amount for the new plan, without being refunded for time remaining +in the existing plan. +By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of +use and privacy statement at <url> and (c) agree to sharing my contact information with {2}. + + + Role {0} instances are set to {1} + + + {"Slot":"","Location":"","Subscription":"","StorageAccountName":""} + + + deploymentSettings.json + + + Confirm + + + Shutdown + WAPackIaaS + + + /sites:{0};{1};"{2}/{0}" + + + 1000 + + + Start + WAPackIaaS + + + Started + + + Starting Emulator... + + + start + + + Stop + WAPackIaaS + + + Stopping emulator... + + + Stopped + + + stop + + + Account Name: + + + Cannot find storage account '{0}' please type the name of an existing storage account. + + + AzureStorageEmulator.exe + + + InstallPath + + + SOFTWARE\Microsoft\Windows Azure Storage Emulator + + + Primary Key: + + + Secondary Key: + + + The subscription named {0} already exists. + + + DefaultSubscriptionData.xml + + + The subscription data file {0} does not exist. + + + Subscription must not be null + WAPackIaaS + + + Suspend + WAPackIaaS + + + Swapping website production slot ... + + + Are you sure you want to swap the website '{0}' production slot with slot '{1}'? + + + The provider {0} is unknown. + + + Update + WAPackIaaS + + + Updated settings for subscription '{0}'. Current subscription is '{1}'. + + + A value for the VLan Id has to be provided. + + + Please wait... + + + The azure storage emulator is not installed, skip launching... + + + Web.cloud.config + + + web.config + + + MSDeploy + + + Cannot build the project successfully. Please see logs in {0}. + + + WebRole + + + setup_web.cmd > log.txt + + + WebRole.xml + + + WebSite with given name {0} already exists in the specified Subscription and Webspace. + + + WebSite with given name {0} already exists in the specified Subscription and Location. + + + Site {0} already has repository created for it. + + + Workspaces/WebsiteExtension/Website/{0}/dashboard/ + + + https://{0}/msdeploy.axd?site={1} + + + WorkerRole + + + setup_worker.cmd > log.txt + + + WorkerRole.xml + + + Yes + + + Yes, I agree + + + Remove-AzureTrafficManagerProfile Operation failed. + + + Successfully removed Traffic Manager profile with name {0}. + + + Are you sure you want to remove the Traffic Manager profile "{0}"? + + + Profile {0} already has an endpoint with name {1} + + + Profile {0} does not contain endpoint {1}. Adding it. + + + The endpoint {0} cannot be removed from profile {1} because it's not in the profile. + + + Insufficient parameters passed to create a new endpoint. + + + Ambiguous operation: the profile name specified doesn't match the name of the profile object. + + + <NONE> + + + "An exception occurred when calling the ServiceManagement API. HTTP Status Code: {0}. Service Management Error Code: {1}. Message: {2}. Operation Tracking ID: {3}." + {0} is the HTTP status code. {1} is the Service Management Error Code. {2} is the Service Management Error message. {3} is the operation tracking ID. + + + Unable to decode string from base 64. Please make sure the string is correctly encoded: {0}. + {0} is the string that is not in a valid base 64 format. + + + Skipping external tenant {0}, because you are using a guest or a foreign principal object identity. In order to access this tenant, please run Add-AzureAccount without "-Credential". + + + Removing an environment will remove all associated subscriptions and accounts. Are you sure you want to remove an environment '{0}'? + + + Removing environment + + + There is no subscription associated with account {0}. + + + Account id doesn't match one in subscription. + + + Environment name doesn't match one in subscription. + + + Removing the Azure profile will remove all associated environments, subscriptions, and accounts. Are you sure you want to remove the Azure profile? + + + Removing the Azure profile + + + The SubscriptionDataFile parameter is deprecated. This parameter will be removed in a future release. See https://github.com/Azure/azure-powershell/wiki/Proposed-Design-Stateless-Azure-Profile for a description of the upcoming mechanism for providing alternate sources of subscription information. + + + Account needs to be specified + + + No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription. + + + Path must specify a valid path to an Azure profile. + + + Property bag Hashtable must contain one of the following sets of properties: {SubscriptionId, Certificate}, {SubscriptionId, Username, Password}, {SubscriptionId, ServicePrincipal, Password, Tenant}, {SubscriptionId, AccountId, Token} + + + Property bag Hashtable must contain a 'Certificate' of type 'X509Certificate2'. + + + Property bag Hashtable must contain a 'Password' with an associated 'Username' or 'ServicePrincipal'. + + + Property bag Hashtable must contain a 'SubscriptionId'. + + + Selected profile must not be null. + + + The Switch-AzureMode cmdlet is deprecated and will be removed in a future release. + + + OperationID : '{0}' + + + Cannot get module for DscResource '{0}'. Possible solutions: +1) Specify -ModuleName for Import-DscResource in your configuration. +2) Unblock module that contains resource. +3) Move Import-DscResource inside Node block. + + 0 = name of DscResource + + + Your current PowerShell version {1} is less then required by this cmdlet {0}. Consider download and install latest PowerShell version. + {0} = minimal required PS version, {1} = current PS version + + + Parsing configuration script: {0} + {0} is the path to a script file + + + Configuration script '{0}' contained parse errors: +{1} + 0 = path to the configuration script, 1 = parser errors + + + List of required modules: [{0}]. + {0} = list of modules + + + Temp folder '{0}' created. + {0} = temp folder path + + + Copy '{0}' to '{1}'. + {0} = source, {1} = destination + + + Copy the module '{0}' to '{1}'. + {0} = source, {1} = destination + + + File '{0}' already exists. Use the -Force parameter to overwrite it. + {0} is the path to a file + + + Configuration file '{0}' not found. + 0 = path to the configuration file + + + Path '{0}' not found. + 0 = path to the additional content file/directory + + + Path '{0}' not found. + 0 = path to the additional content file/directory + + + Invalid configuration file: {0}. +The file needs to be a PowerShell script (.ps1 or .psm1) or a ZIP archive (.zip). + 0 = path to the configuration file + + + Invalid configuration file: {0}. +The file needs to be a PowerShell script (.ps1 or .psm1). + 0 = path to the configuration file + + + Create Archive + + + Upload '{0}' + {0} is the name of an storage blob + + + Storage Blob '{0}' already exists. Use the -Force parameter to overwrite it. + {0} is the name of an storage blob + + + Configuration published to {0} + {0} is an URI + + + Deleted '{0}' + {0} is the path of a file + + + Cannot delete '{0}': {1} + {0} is the path of a file, {1} is an error message + + + Cannot find the WadCfg end element in the config. + + + WadCfg start element in the config is not matching the end element. + + + Cannot find the WadCfg element in the config. + + + Cannot find configuration data file: {0} + + + The configuration data must be a .psd1 file + + + Cannot change built-in environment {0}. + + + Azure PowerShell collects usage data in order to improve your experience. +The data is anonymous and does not include commandline argument values. +The data is collected by Microsoft. + +Use the Disable-AzDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Az.Accounts module. To disable data collection: PS > Disable-AzDataCollection. +Use the Enable-AzDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Az.Accounts module. To enable data collection: PS > Enable-AzDataCollection. + + + Microsoft Azure PowerShell Data Collection Confirmation + + + You choose not to participate in Microsoft Azure PowerShell data collection. + + + This confirmation message will be dismissed in '{0}' second(s)... + + + You choose to participate in Microsoft Azure PowerShell data collection. + + + The setting profile has been saved to the following path '{0}'. + + + [Common.Authentication]: Authenticating for account {0} with single tenant {1}. + + + Changing public environment is not supported. + + + Environment name needs to be specified. + + + Environment needs to be specified. + + + The environment name '{0}' is not found. + + + File path is not valid. + + + Must specify a non-null subscription name. + + + The default subscription is being removed. Use Select-AzureSubscription -Default <subscriptionName> to select a new default subscription. + + + Removing public environment is not supported. + + + The subscription id {0} doesn't exist. + + + Subscription name needs to be specified. + + + The subscription name {0} doesn't exist. + + + Subscription needs to be specified. + + + User name is not valid. + + + User name needs to be specified. + + + "There is no current context, please log in using Connect-AzAccount." + + + No subscriptions are associated with the logged in account in Azure Service Management (RDFE). This means that the logged in user is not an administrator or co-administrator for any account.\r\nDid you mean to execute Connect-AzAccount? + + + No certificate was found in the certificate store with thumbprint {0} + + + Illegal characters in path. + + + Invalid certificate format. Publish settings may be corrupted. Use Get-AzurePublishSettingsFile to download updated settings + + + "{0}" is an invalid DNS name for {1} + + + The provided file in {0} must be have {1} extension + + + {0} is invalid or empty + + + Please connect to internet before executing this cmdlet + + + Path {0} doesn't exist. + + + Path for {0} doesn't exist in {1}. + + + &whr={0} + + + The provided service name {0} already exists, please pick another name + + + Unable to update mismatching Json structured: {0} {1}. + + + (x86) + + + Azure PowerShell collects usage data in order to improve your experience. +The data is anonymous and does not include commandline argument values. +The data is collected by Microsoft. + +Use the Disable-AzureDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Azure module. To disable data collection: PS > Disable-AzureDataCollection. +Use the Enable-AzureDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Azure module. To enable data collection: PS > Enable-AzureDataCollection. + + + Execution failed because a background thread could not prompt the user. + + + Azure Long-Running Job + + + The cmdlet failed in background execution. The returned error was '{0}'. Please execute the cmdlet again. You may need to execute this cmdlet synchronously, by omitting the '-AsJob' parameter. + 0(string): exception message in background task + + + Please execute the cmdlet again and include the 'Force' parameter, if available, to avoid unnecessary prompts. + + + Please execute the cmdlet again and omit the 'Confirm' parameter when using the 'AsJob' parameter. + + + Please increase the user $ConfirmPreference setting, or include turn off confirmation using '-Confirm:$false' when using the 'AsJob' parameter and execute the cmdet again. + + + Please execute the cmdlet again and omit the 'WhatIf' parameter when using the 'AsJob' parameter. + + + [AzureLongRunningJob]: Starting cmdlet execution, setting for cmdlet confirmation required: '{0}' + 0(bool): whether cmdlet confirmation is required + + + [AzureLongRunningJob]: Blocking job for ShouldMethod '{0}' + 0(string): method type + + + [AzureLongRunningJob]: Completing cmdlet execution in RunJob + + + [AzureLongRunningJob]: State change from '{0}' to '{1}' because '{2}' + 0(string): last state, 1(string): new state, 2(string): state change reason + + + [AzureLongRunningJob]: Unblocking job due to stoppage or failure + + + [AzureLongRunningJob]: Unblocking job that was previously blocked. + + + [AzureLongRunningJob]: Error in cmdlet execution + + + [AzureLongRunningJob]: Removing state changed event handler, exception '{0}' + 0(string): exception message + + + [AzureLongRunningJob]: ShouldMethod '{0}' unblocked. + 0(string): methodType + + + +- The parameter : '{0}' is changing. + + + +- The parameter : '{0}' is becoming mandatory. + + + +- The parameter : '{0}' is being replaced by parameter : '{1}'. + + + +- The parameter : '{0}' is being replaced by mandatory parameter : '{1}'. + + + +- Change description : {0} + + + The cmdlet is being deprecated. There will be no replacement for it. + + + The cmdlet parameter set is being deprecated. There will be no replacement for it. + + + The cmdlet '{0}' is replacing this cmdlet. + + + +- The output type is changing from the existing type :'{0}' to the new type :'{1}' + + + +- The output type '{0}' is changing + + + +- The following properties are being added to the output type : + + + +- The following properties in the output type are being deprecated : + + + {0} + + + +- Cmdlet : '{0}' + - {1} + + + Upcoming breaking changes in the cmdlet '{0}' : + + + +- This change will take effect on '{0}' + + + +- The change is expected to take effect from the version : '{0}' + + + ```powershell +# Old +{0} + +# New +{1} +``` + + + + +Cmdlet invocation changes : + Old Way : {0} + New Way : {1} + + + +The output type '{0}' is being deprecated without a replacement. + + + +The type of the parameter is changing from '{0}' to '{1}'. + + + +Note : Go to {0} for steps to suppress this breaking change warning, and other information on breaking changes in Azure PowerShell. + + + This cmdlet is in preview. The functionality may not be available in the selected subscription. + + \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Response.cs b/swaggerci/appplatform/generated/runtime/Response.cs new file mode 100644 index 000000000000..7725d2f81770 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Response.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System; + using System.Threading.Tasks; + public class Response : EventData + { + public Response() : base() + { + } + } + + public class Response : Response + { + private Func> _resultDelegate; + private Task _resultValue; + + public Response(T value) : base() => _resultValue = Task.FromResult(value); + public Response(Func value) : base() => _resultDelegate = () => Task.FromResult(value()); + public Response(Func> value) : base() => _resultDelegate = value; + public Task Result => _resultValue ?? (_resultValue = this._resultDelegate()); + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Serialization/JsonSerializer.cs b/swaggerci/appplatform/generated/runtime/Serialization/JsonSerializer.cs new file mode 100644 index 000000000000..0ce73ddbd6c7 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Serialization/JsonSerializer.cs @@ -0,0 +1,350 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal class JsonSerializer + { + private int depth = 0; + + private SerializationOptions options = new SerializationOptions(); + + #region Deserialization + + internal T Deseralize(JsonObject json) + where T : new() + { + var contract = JsonModelCache.Get(typeof(T)); + + return (T)DeserializeObject(contract, json); + } + + internal object DeserializeObject(JsonModel contract, JsonObject json) + { + var instance = Activator.CreateInstance(contract.Type); + + depth++; + + // Ensure we don't recurse forever + if (depth > 5) throw new Exception("Depth greater than 5"); + + foreach (var field in json) + { + var member = contract[field.Key]; + + if (member != null) + { + var value = DeserializeValue(member, field.Value); + + member.SetValue(instance, value); + } + } + + depth--; + + return instance; + } + + private object DeserializeValue(JsonMember member, JsonNode value) + { + if (value.Type == JsonType.Null) return null; + + var type = member.Type; + + if (member.IsStringLike && value.Type != JsonType.String) + { + // Take the long path... + return DeserializeObject(JsonModelCache.Get(type), (JsonObject)value); + } + else if (member.Converter != null) + { + return member.Converter.FromJson(value); + } + else if (type.IsArray) + { + return DeserializeArray(type, (JsonArray)value); + } + else if (member.IsList) + { + return DeserializeList(type, (JsonArray)value); + } + else + { + var contract = JsonModelCache.Get(type); + + return DeserializeObject(contract, (JsonObject)value); + } + } + + private object DeserializeValue(Type type, JsonNode value) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + + if (value.Type == JsonType.Null) return null; + + var typeDetails = TypeDetails.Get(type); + + if (typeDetails.JsonConverter != null) + { + return typeDetails.JsonConverter.FromJson(value); + } + else if (typeDetails.IsEnum) + { + return Enum.Parse(type, value.ToString(), ignoreCase: true); + } + else if (type.IsArray) + { + return DeserializeArray(type, (JsonArray)value); + } + else if (typeDetails.IsList) + { + return DeserializeList(type, (JsonArray)value); + } + else + { + var contract = JsonModelCache.Get(type); + + return DeserializeObject(contract, (JsonObject)value); + } + } + + internal Array DeserializeArray(Type type, JsonArray elements) + { + var elementType = type.GetElementType(); + + var elementTypeDetails = TypeDetails.Get(elementType); + + var array = Array.CreateInstance(elementType, elements.Count); + + int i = 0; + + if (elementTypeDetails.JsonConverter != null) + { + foreach (var value in elements) + { + array.SetValue(elementTypeDetails.JsonConverter.FromJson(value), i); + + i++; + } + } + else + { + foreach (var value in elements) + { + array.SetValue(DeserializeValue(elementType, value), i); + + i++; + } + } + + return array; + } + + internal IList DeserializeList(Type type, JsonArray jsonArray) + { + // TODO: Handle non-generic types + if (!type.IsGenericType) + throw new ArgumentException("Must be a generic type", nameof(type)); + + var elementType = type.GetGenericArguments()[0]; + + IList list; + + if (type.IsInterface) + { + // Create a concrete generic list + list = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(elementType)); + } + else + { + list = (IList)Activator.CreateInstance(type); + } + + foreach (var value in jsonArray) + { + list.Add(DeserializeValue(elementType, value)); + } + + return list; + } + + #endregion + + #region Serialization + + internal JsonNode Serialize(object instance) => + Serialize(instance, SerializationOptions.Default); + + internal JsonNode Serialize(object instance, string[] include) => + Serialize(instance, new SerializationOptions { Include = include }); + + internal JsonNode Serialize(object instance, SerializationOptions options) + { + this.options = options; + + if (instance == null) + { + return XNull.Instance; + } + + return ReadValue(instance.GetType(), instance); + } + + #region Readers + + internal JsonArray ReadArray(IEnumerable collection) + { + var array = new XNodeArray(); + + foreach (var item in collection) + { + array.Add(ReadValue(item.GetType(), item)); + } + + return array; + } + + internal IEnumerable> ReadProperties(object instance) + { + var contract = JsonModelCache.Get(instance.GetType()); + + foreach (var member in contract.Members) + { + string name = member.Name; + + if (options.PropertyNameTransformer != null) + { + name = options.PropertyNameTransformer.Invoke(name); + } + + // Skip the field if it's not included + if ((depth == 1 && !options.IsIncluded(name))) + { + continue; + } + + var value = member.GetValue(instance); + + if (!member.EmitDefaultValue && (value == null || (member.IsList && ((IList)value).Count == 0) || value.Equals(member.DefaultValue))) + { + continue; + } + else if (options.IgnoreNullValues && value == null) // Ignore null values + { + continue; + } + + // Transform the value if there is one + if (options.Transformations != null) + { + var transform = options.GetTransformation(name); + + if (transform != null) + { + value = transform.Transformer(value); + } + } + + yield return new KeyValuePair(name, ReadValue(member.TypeDetails, value)); + } + } + + private JsonObject ReadObject(object instance) + { + depth++; + + // TODO: Guard against a self referencing graph + if (depth > options.MaxDepth) + { + depth--; + + return new JsonObject(); + } + + var node = new JsonObject(ReadProperties(instance)); + + depth--; + + return node; + } + + private JsonNode ReadValue(Type type, object value) + { + if (value == null) + { + return XNull.Instance; + } + + var member = TypeDetails.Get(type); + + return ReadValue(member, value); + } + + private JsonNode ReadValue(TypeDetails type, object value) + { + if (value == null) + { + return XNull.Instance; + } + + if (type.JsonConverter != null) + { + return type.JsonConverter.ToJson(value); + } + else if (type.IsArray) + { + switch (Type.GetTypeCode(type.ElementType)) + { + case TypeCode.String: return CreateArray((string[])value); + case TypeCode.UInt16: return CreateArray((ushort[])value); + case TypeCode.UInt32: return CreateArray((uint[])value); + case TypeCode.UInt64: return CreateArray((ulong[])value); + case TypeCode.Int16: return CreateArray((short[])value); + case TypeCode.Int32: return CreateArray((int[])value); + case TypeCode.Int64: return CreateArray((long[])value); + case TypeCode.Single: return CreateArray((float[])value); + case TypeCode.Double: return CreateArray((double[])value); + default: return ReadArray((IEnumerable)value); + } + } + else if (value is IEnumerable) + { + if (type.IsList && type.ElementType != null) + { + switch (Type.GetTypeCode(type.ElementType)) + { + case TypeCode.String: return CreateList(value); + case TypeCode.UInt16: return CreateList(value); + case TypeCode.UInt32: return CreateList(value); + case TypeCode.UInt64: return CreateList(value); + case TypeCode.Int16: return CreateList(value); + case TypeCode.Int32: return CreateList(value); + case TypeCode.Int64: return CreateList(value); + case TypeCode.Single: return CreateList(value); + case TypeCode.Double: return CreateList(value); + } + } + + return ReadArray((IEnumerable)value); + } + else + { + // Complex object + return ReadObject(value); + } + } + + private XList CreateList(object value) => new XList((IList)value); + + private XImmutableArray CreateArray(T[] array) => new XImmutableArray(array); + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Serialization/PropertyTransformation.cs b/swaggerci/appplatform/generated/runtime/Serialization/PropertyTransformation.cs new file mode 100644 index 000000000000..cb74e1b17819 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Serialization/PropertyTransformation.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal class PropertyTransformation + { + internal PropertyTransformation(string name, Func transformer) + { + Name = name ?? throw new ArgumentNullException(nameof(name)); + Transformer = transformer ?? throw new ArgumentNullException(nameof(transformer)); + } + + internal string Name { get; } + + internal Func Transformer { get; } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Serialization/SerializationOptions.cs b/swaggerci/appplatform/generated/runtime/Serialization/SerializationOptions.cs new file mode 100644 index 000000000000..ef8ebc241dae --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Serialization/SerializationOptions.cs @@ -0,0 +1,65 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal class SerializationOptions + { + internal static readonly SerializationOptions Default = new SerializationOptions(); + + internal SerializationOptions() { } + + internal SerializationOptions( + string[] include = null, + bool ingoreNullValues = false) + { + Include = include; + IgnoreNullValues = ingoreNullValues; + } + + internal string[] Include { get; set; } + + internal string[] Exclude { get; set; } + + internal bool IgnoreNullValues { get; set; } + + internal PropertyTransformation[] Transformations { get; set; } + + internal Func PropertyNameTransformer { get; set; } + + internal int MaxDepth { get; set; } = 5; + + internal bool IsIncluded(string name) + { + if (Exclude != null) + { + return !Exclude.Any(exclude => exclude.Equals(name, StringComparison.OrdinalIgnoreCase)); + } + else if (Include != null) + { + return Include.Any(exclude => exclude.Equals(name, StringComparison.OrdinalIgnoreCase)); + } + + return true; + } + + internal PropertyTransformation GetTransformation(string propertyName) + { + if (Transformations == null) return null; + + foreach (var t in Transformations) + { + if (t.Name.Equals(propertyName, StringComparison.OrdinalIgnoreCase)) + { + return t; + } + } + + return null; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/SerializationMode.cs b/swaggerci/appplatform/generated/runtime/SerializationMode.cs new file mode 100644 index 000000000000..076435bbffdb --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/SerializationMode.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + [System.Flags] + public enum SerializationMode + { + None = 0, + IncludeHeaders = 1 << 0, + IncludeReadOnly = 1 << 1, + + IncludeAll = IncludeHeaders | IncludeReadOnly + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/TypeConverterExtensions.cs b/swaggerci/appplatform/generated/runtime/TypeConverterExtensions.cs new file mode 100644 index 000000000000..bf67af1b0574 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/TypeConverterExtensions.cs @@ -0,0 +1,211 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.IO; +using System.Linq; +using System.Xml; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + internal static class TypeConverterExtensions + { + internal static T[] SelectToArray(object source, System.Func converter) + { + // null begets null + if (source == null) + { + return null; + } + + // single values and strings are just encapsulated in the array. + if (source is string || !(source is System.Collections.IEnumerable)) + { + try + { + return new T[] { (T)converter(source) }; + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // silent conversion fail + } +#endif + return new T[0]; // empty result if couldn't convert. + } + + var result = new System.Collections.Generic.List(); + foreach (var each in (System.Collections.IEnumerable)source) + { + try + { + result.Add((T)converter(each)); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // silent conversion fail + } +#endif + } + return result.ToArray(); + } + + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Collections.Generic.IDictionary dictionary) + { + if (null != dictionary) + { + foreach (var each in dictionary.Keys) + { + yield return each; + } + } + } + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Collections.IDictionary dictionary) + { + if (null != dictionary) + { + foreach (var each in dictionary.Keys) + { + yield return each; + } + } + } + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Management.Automation.PSObject instance) + { + if (null != instance) + { + foreach (var each in instance.Properties) + { + yield return each; + } + } + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Collections.Generic.IDictionary instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + return (null == instance || instance.Count == 0) ? + Enumerable.Empty>() : + instance.Keys + .Where(key => + !(true == exclusions?.Contains(key?.ToString())) + && (false != inclusions?.Contains(key?.ToString()))) + .Select(key => new System.Collections.Generic.KeyValuePair(key, instance[key])); + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Collections.IDictionary instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + return (null == instance || instance.Count == 0) ? + Enumerable.Empty>() : + instance.Keys.OfType() + .Where(key => + !(true == exclusions?.Contains(key?.ToString())) + && (false != inclusions?.Contains(key?.ToString()))) + .Select(key => new System.Collections.Generic.KeyValuePair(key, instance[key])); + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Management.Automation.PSObject instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + // new global::System.Collections.Generic.HashSet(System.StringComparer.InvariantCultureIgnoreCase) + return (null == instance || !instance.Properties.Any()) ? + Enumerable.Empty>() : + instance.Properties + .Where(property => + !(true == exclusions?.Contains(property.Name)) + && (false != inclusions?.Contains(property.Name))) + .Select(property => new System.Collections.Generic.KeyValuePair(property.Name, property.Value)); + } + + + internal static T GetValueForProperty(this System.Collections.Generic.IDictionary dictionary, string propertyName, T defaultValue, System.Func converter) + { + try + { + var key = System.Linq.Enumerable.FirstOrDefault(dictionary.Keys, each => System.String.Equals(each.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return key == null ? defaultValue : (T)converter(dictionary[key]); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + internal static T GetValueForProperty(this System.Collections.IDictionary dictionary, string propertyName, T defaultValue, System.Func converter) + { + try + { + var key = System.Linq.Enumerable.FirstOrDefault(dictionary.Keys.OfType(), each => System.String.Equals(each.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return key == null ? defaultValue : (T)converter(dictionary[key]); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + + internal static T GetValueForProperty(this System.Management.Automation.PSObject psObject, string propertyName, T defaultValue, System.Func converter) + { + try + { + var property = System.Linq.Enumerable.FirstOrDefault(psObject.Properties, each => System.String.Equals(each.Name.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return property == null ? defaultValue : (T)converter(property.Value); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + + internal static bool Contains(this System.Management.Automation.PSObject psObject, string propertyName) + { + bool result = false; + try + { + var property = System.Linq.Enumerable.FirstOrDefault(psObject.Properties, each => System.String.Equals(each.Name.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + result = property == null ? false : true; + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return result; + } + } +} diff --git a/swaggerci/appplatform/generated/runtime/UndeclaredResponseException.cs b/swaggerci/appplatform/generated/runtime/UndeclaredResponseException.cs new file mode 100644 index 000000000000..9dc2a7ba87ed --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/UndeclaredResponseException.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. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System; + using System.Net.Http; + using System.Net.Http.Headers; + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public class RestException : Exception, IDisposable + { + public System.Net.HttpStatusCode StatusCode { get; set; } + public string Code { get; protected set; } + protected string message; + public HttpRequestMessage RequestMessage { get; protected set; } + public HttpResponseHeaders ResponseHeaders { get; protected set; } + + public string ResponseBody { get; protected set; } + public string ClientRequestId { get; protected set; } + public string RequestId { get; protected set; } + + public override string Message => message; + public string Action { get; protected set; } + + public RestException(System.Net.Http.HttpResponseMessage response) + { + StatusCode = response.StatusCode; + //CloneWithContent will not work here since the content is disposed after sendAsync + //Besides, it seems there is no need for the request content cloned here. + RequestMessage = response.RequestMessage.Clone(); + ResponseBody = response.Content.ReadAsStringAsync().Result; + ResponseHeaders = response.Headers; + + RequestId = response.GetFirstHeader("x-ms-request-id"); + ClientRequestId = response.GetFirstHeader("x-ms-client-request-id"); + + try + { + // try to parse the body as JSON, and see if a code and message are in there. + var json = Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode.Parse(ResponseBody) as Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject; + + // error message could be in properties.statusMessage + { message = If(json?.Property("properties"), out var p) + && If(p?.PropertyT("statusMessage"), out var sm) + ? (string)sm : (string)Message; } + + // see if there is an error block in the body + json = json?.Property("error") ?? json; + + { Code = If(json?.PropertyT("code"), out var c) ? (string)c : (string)StatusCode.ToString(); } + { message = If(json?.PropertyT("message"), out var m) ? (string)m : (string)Message; } + { Action = If(json?.PropertyT("action"), out var a) ? (string)a : (string)Action; } + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // couldn't get the code/message from the body response. + // In this case, we will assume the response is the expected error message + if(!string.IsNullOrEmpty(ResponseBody)) { + message = ResponseBody; + } + } +#endif + if (string.IsNullOrEmpty(message)) + { + if (StatusCode >= System.Net.HttpStatusCode.BadRequest && StatusCode < System.Net.HttpStatusCode.InternalServerError) + { + message = $"The server responded with a Request Error, Status: {StatusCode}"; + } + else if (StatusCode >= System.Net.HttpStatusCode.InternalServerError) + { + message = $"The server responded with a Server Error, Status: {StatusCode}"; + } + else + { + message = $"The server responded with an unrecognized response, Status: {StatusCode}"; + } + } + } + + public void Dispose() + { + ((IDisposable)RequestMessage).Dispose(); + } + } + + public class RestException : RestException + { + public T Error { get; protected set; } + public RestException(System.Net.Http.HttpResponseMessage response, T error) : base(response) + { + Error = error; + } + } + + + public class UndeclaredResponseException : RestException + { + public UndeclaredResponseException(System.Net.Http.HttpResponseMessage response) : base(response) + { + + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/Writers/JsonWriter.cs b/swaggerci/appplatform/generated/runtime/Writers/JsonWriter.cs new file mode 100644 index 000000000000..abe00d22f0ee --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/Writers/JsonWriter.cs @@ -0,0 +1,223 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Web; + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json +{ + internal class JsonWriter + { + const string indentation = " "; // 2 spaces + + private readonly bool pretty; + private readonly TextWriter writer; + + protected int currentLevel = 0; + + internal JsonWriter(TextWriter writer, bool pretty = true) + { + this.writer = writer ?? throw new ArgumentNullException(nameof(writer)); + this.pretty = pretty; + } + + internal void WriteNode(JsonNode node) + { + switch (node.Type) + { + case JsonType.Array: WriteArray((IEnumerable)node); break; + case JsonType.Object: WriteObject((JsonObject)node); break; + + // Primitives + case JsonType.Binary: WriteBinary((XBinary)node); break; + case JsonType.Boolean: WriteBoolean((bool)node); break; + case JsonType.Date: WriteDate((JsonDate)node); break; + case JsonType.Null: WriteNull(); break; + case JsonType.Number: WriteNumber((JsonNumber)node); break; + case JsonType.String: WriteString(node); break; + } + } + + internal void WriteArray(IEnumerable array) + { + currentLevel++; + + writer.Write('['); + + bool doIndentation = false; + + if (pretty) + { + foreach (var node in array) + { + if (node.Type == JsonType.Object || node.Type == JsonType.Array) + { + doIndentation = true; + + break; + } + } + } + + bool isFirst = true; + + foreach (JsonNode node in array) + { + if (!isFirst) writer.Write(','); + + if (doIndentation) + { + WriteIndent(); + } + else if (pretty) + { + writer.Write(' '); + } + + WriteNode(node); + + isFirst = false; + } + + currentLevel--; + + if (doIndentation) + { + WriteIndent(); + } + else if (pretty) + { + writer.Write(' '); + } + + writer.Write(']'); + } + + internal void WriteIndent() + { + if (pretty) + { + writer.Write(Environment.NewLine); + + for (int level = 0; level < currentLevel; level++) + { + writer.Write(indentation); + } + } + } + + internal void WriteObject(JsonObject obj) + { + currentLevel++; + + writer.Write('{'); + + bool isFirst = true; + + foreach (var field in obj) + { + if (!isFirst) writer.Write(','); + + WriteIndent(); + + WriteFieldName(field.Key); + + writer.Write(':'); + + if (pretty) + { + writer.Write(' '); + } + + // Write the field value + WriteNode(field.Value); + + isFirst = false; + } + + currentLevel--; + + WriteIndent(); + + writer.Write('}'); + } + + internal void WriteFieldName(string fieldName) + { + writer.Write('"'); + writer.Write(HttpUtility.JavaScriptStringEncode(fieldName)); + writer.Write('"'); + } + + #region Primitives + + internal void WriteBinary(XBinary value) + { + writer.Write('"'); + writer.Write(value.ToString()); + writer.Write('"'); + } + + internal void WriteBoolean(bool value) + { + writer.Write(value ? "true" : "false"); + } + + internal void WriteDate(JsonDate date) + { + if (date.ToDateTime().Year == 1) + { + WriteNull(); + } + else + { + writer.Write('"'); + writer.Write(date.ToIsoString()); + writer.Write('"'); + } + } + + internal void WriteNull() + { + writer.Write("null"); + } + + internal void WriteNumber(JsonNumber number) + { + if (number.Overflows) + { + writer.Write('"'); + writer.Write(number.Value); + writer.Write('"'); + } + else + { + writer.Write(number.Value); + } + } + + internal void WriteString(string text) + { + if (text == null) + { + WriteNull(); + } + else + { + writer.Write('"'); + + writer.Write(HttpUtility.JavaScriptStringEncode(text)); + + writer.Write('"'); + } + } + + #endregion + } +} + + +// TODO: Replace with System.Text.Json when available diff --git a/swaggerci/appplatform/generated/runtime/delegates.cs b/swaggerci/appplatform/generated/runtime/delegates.cs new file mode 100644 index 000000000000..ebe906791f63 --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/delegates.cs @@ -0,0 +1,23 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using GetEventData=System.Func; + + public delegate Task SendAsync(HttpRequestMessage request, IEventListener callback); + public delegate Task SendAsyncStep(HttpRequestMessage request, IEventListener callback, ISendAsync next); + public delegate Task SignalEvent(string id, CancellationToken token, GetEventData getEventData); + public delegate Task Event(EventData message); + public delegate void SynchEvent(EventData message); + public delegate Task OnResponse(Response message); + public delegate Task OnResponse(Response message); +} \ No newline at end of file diff --git a/swaggerci/appplatform/how-to.md b/swaggerci/appplatform/how-to.md new file mode 100644 index 000000000000..d3ff6675c6d2 --- /dev/null +++ b/swaggerci/appplatform/how-to.md @@ -0,0 +1,58 @@ +# How-To +This document describes how to develop for `Az.AppPlatform`. + +## Building `Az.AppPlatform` +To build, run the `build-module.ps1` at the root of the module directory. This will generate the proxy script cmdlets that are the cmdlets being exported by this module. After the build completes, the proxy script cmdlets will be output to the `exports` folder. To read more about the proxy script cmdlets, look at the [README.md](exports/README.md) in the `exports` folder. + +## Creating custom cmdlets +To add cmdlets that were not generated by the REST specification, use the `custom` folder. This folder allows you to add handwritten `.ps1` and `.cs` files. Currently, we support using `.ps1` scripts as new cmdlets or as additional low-level variants (via `ParameterSet`), and `.cs` files as low-level (variants) cmdlets that the exported script cmdlets call. We do not support exporting any `.cs` (dll) cmdlets directly. To read more about custom cmdlets, look at the [README.md](custom/README.md) in the `custom` folder. + +## Generating documentation +To generate documentation, the process is now integrated into the `build-module.ps1` script. If you don't want to run this process as part of `build-module.ps1`, you can provide the `-NoDocs` switch. If you want to run documentation generation after the build process, you may still run the `generate-help.ps1` script. Overall, the process will look at the documentation comments in the generated and custom cmdlets and types, and create `.md` files into the `docs` folder. Additionally, this pulls in any examples from the `examples` folder and adds them to the generated help markdown documents. To read more about examples, look at the [README.md](examples/README.md) in the `examples` folder. To read more about documentation, look at the [README.md](docs/README.md) in the `docs` folder. + +## Testing `Az.AppPlatform` +To test the cmdlets, we use [Pester](https://github.com/pester/Pester). Tests scripts (`.ps1`) should be added to the `test` folder. To execute the Pester tests, run the `test-module.ps1` script. This will run all tests in `playback` mode within the `test` folder. To read more about testing cmdlets, look at the [README.md](examples/README.md) in the `examples` folder. + +## Packing `Az.AppPlatform` +To pack `Az.AppPlatform` for distribution, run the `pack-module.ps1` script. This will take the contents of multiple directories and certain root-folder files to create a `.nupkg`. The structure of the `.nupkg` is created so it can be loaded part of a [PSRepository](https://docs.microsoft.com/powershell/module/powershellget/register-psrepository). Additionally, this package is in a format for distribution to the [PSGallery](https://www.powershellgallery.com/). For signing an Azure module, please contact the [Azure PowerShell](https://github.com/Azure/azure-powershell) team. + +## Module Script Details +There are multiple scripts created for performing different actions for developing `Az.AppPlatform`. +- `build-module.ps1` + - Builds the module DLL (`./bin/Az.AppPlatform.private.dll`), creates the exported cmdlets and documentation, generates custom cmdlet test stubs and exported cmdlet example stubs, and updates `./Az.AppPlatform.psd1` with Azure profile information. + - **Parameters**: [`Switch` parameters] + - `-Run`: After building, creates an isolated PowerShell session and loads `Az.AppPlatform`. + - `-Test`: After building, runs the `Pester` tests defined in the `test` folder. + - `-Docs`: After building, generates the Markdown documents for the modules into the `docs` folder. + - `-Pack`: After building, packages the module into a `.nupkg`. + - `-Code`: After building, opens a VSCode window with the module's directory and runs (see `-Run`) the module. + - `-Release`: Builds the module in `Release` configuration (as opposed to `Debug` configuration). + - `-NoDocs`: Supresses writing the documentation markdown files as part of the cmdlet exporting process. + - `-Debugger`: Used when attaching the debugger in Visual Studio to the PowerShell session, and running the build process without recompiling the DLL. This suppresses running the script as an isolated process. +- `run-module.ps1` + - Creates an isolated PowerShell session and loads `Az.AppPlatform` into the session. + - Same as `-Run` in `build-module.ps1`. + - **Parameters**: [`Switch` parameters] + - `-Code`: Opens a VSCode window with the module's directory. + - Same as `-Code` in `build-module.ps1`. +- `generate-help.ps1` + - Generates the Markdown documents for the modules into the `docs` folder. + - Same as `-Docs` in `build-module.ps1`. +- `test-module.ps1` + - Runs the `Pester` tests defined in the `test` folder. + - Same as `-Test` in `build-module.ps1`. +- `pack-module.ps1` + - Packages the module into a `.nupkg` for distribution. + - Same as `-Pack` in `build-module.ps1`. +- `generate-help.ps1` + - Generates the Markdown documents for the modules into the `docs` folder. + - Same as `-Docs` in `build-module.ps1`. + - This process is now integrated into `build-module.ps1` automatically. To disable, use `-NoDocs` when running `build-module.ps1`. +- `export-surface.ps1` + - Generates Markdown documents for both the cmdlet surface and the model (class) surface of the module. + - These files are placed into the `resources` folder. + - Used for investigating the surface of your module. These are *not* documentation for distribution. +- `check-dependencies.ps1` + - Used in `run-module.ps1` and `test-module.ps1` to verify dependent modules are available to run those tasks. + - It will download local (within the module's directory structure) versions of those modules as needed. + - This script *does not* need to be ran by-hand. \ No newline at end of file diff --git a/swaggerci/appplatform/internal/Az.AppPlatform.internal.psm1 b/swaggerci/appplatform/internal/Az.AppPlatform.internal.psm1 new file mode 100644 index 000000000000..f441103b17ca --- /dev/null +++ b/swaggerci/appplatform/internal/Az.AppPlatform.internal.psm1 @@ -0,0 +1,38 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '../bin/Az.AppPlatform.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Module]::Instance + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = $PSScriptRoot + $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) + } +# endregion diff --git a/swaggerci/appplatform/internal/Get-AzAppPlatformOperation.ps1 b/swaggerci/appplatform/internal/Get-AzAppPlatformOperation.ps1 new file mode 100644 index 000000000000..d1eb008b4f7a --- /dev/null +++ b/swaggerci/appplatform/internal/Get-AzAppPlatformOperation.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Lists all of the available REST API operations of the Microsoft.AppPlatform provider. +.Description +Lists all of the available REST API operations of the Microsoft.AppPlatform provider. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformoperation +#> +function Get-AzAppPlatformOperation { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.private\Get-AzAppPlatformOperation_List'; + } + + $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/appplatform/internal/ProxyCmdletDefinitions.ps1 b/swaggerci/appplatform/internal/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..d1eb008b4f7a --- /dev/null +++ b/swaggerci/appplatform/internal/ProxyCmdletDefinitions.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Lists all of the available REST API operations of the Microsoft.AppPlatform provider. +.Description +Lists all of the available REST API operations of the Microsoft.AppPlatform provider. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformoperation +#> +function Get-AzAppPlatformOperation { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20221101Preview.IOperationDetail])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.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.AppPlatform.private\Get-AzAppPlatformOperation_List'; + } + + $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/appplatform/internal/README.md b/swaggerci/appplatform/internal/README.md new file mode 100644 index 000000000000..92f58e5f45c1 --- /dev/null +++ b/swaggerci/appplatform/internal/README.md @@ -0,0 +1,14 @@ +# Internal +This directory contains a module to handle *internal only* cmdlets. Cmdlets that you **hide** in configuration are created here. For more information on hiding, see [cmdlet hiding](https://github.com/Azure/autorest.powershell/blob/main/docs/directives.md#cmdlet-hiding-exportation-suppression). 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 `Az.AppPlatform.internal.psm1` file is generated to this folder. This module file handles the hidden cmdlets. These cmdlets will not be exported by `Az.AppPlatform`. Instead, this sub-module is imported by the `../custom/Az.AppPlatform.custom.psm1` module, allowing you to use hidden cmdlets in your custom, exposed cmdlets. To call these cmdlets in your custom scripts, simply use [module-qualified calls](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names). For example, `Az.AppPlatform.internal\Get-Example` would call an internal cmdlet named `Get-Example`. + +## Purpose +This allows you to include REST specifications for services that you *do not wish to expose from your module*, but simply want to call within custom cmdlets. For example, if you want to make a custom cmdlet that uses `Storage` services, you could include a simplified `Storage` REST specification that has only the operations you need. When you run the generator and build this module, note the generated `Storage` cmdlets. Then, in your readme configuration, use [cmdlet hiding](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md#cmdlet-hiding-exportation-suppression) on the `Storage` cmdlets and they will *only be exposed to the custom cmdlets* you want to write, and not be exported as part of `Az.AppPlatform`. diff --git a/swaggerci/appplatform/license.txt b/swaggerci/appplatform/license.txt new file mode 100644 index 000000000000..b9f3180fb9af --- /dev/null +++ b/swaggerci/appplatform/license.txt @@ -0,0 +1,227 @@ +MICROSOFT SOFTWARE LICENSE TERMS + +MICROSOFT AZURE POWERSHELL + +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. + +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. + + +-----------------START OF LICENSE-------------------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +-------------------END OF LICENSE------------------------------------------ + + +----------------START OF THIRD PARTY NOTICE-------------------------------- + + +The software includes the AutoMapper library ("AutoMapper"). The MIT License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Provided for Informational Purposes Only + +AutoMapper + +The MIT License (MIT) +Copyright (c) 2010 Jimmy Bogard + + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + + + +*************** + +The software includes Newtonsoft.Json. The MIT License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Newtonsoft.Json + +The MIT License (MIT) +Copyright (c) 2007 James Newton-King +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------END OF THIRD PARTY NOTICE---------------------------------------- + diff --git a/swaggerci/appplatform/pack-module.ps1 b/swaggerci/appplatform/pack-module.ps1 new file mode 100644 index 000000000000..8ed48957e579 --- /dev/null +++ b/swaggerci/appplatform/pack-module.ps1 @@ -0,0 +1,9 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +Write-Host -ForegroundColor Green 'Packing module...' +dotnet pack $PSScriptRoot --no-build /nologo +Write-Host -ForegroundColor Green '-------------Done-------------' \ No newline at end of file diff --git a/swaggerci/appplatform/readme.md b/swaggerci/appplatform/readme.md new file mode 100644 index 000000000000..3ce0c48e16f6 --- /dev/null +++ b/swaggerci/appplatform/readme.md @@ -0,0 +1,10 @@ +### AutoRest Configuration +> see https://aka.ms/autorest + +``` yaml +require: + - $(this-folder)/../../tools/SwaggerCI/readme.azure.noprofile.md + - $(this-folder)/../../../azure-rest-api-specs/specification/appplatform/resource-manager/readme.md +try-require: + - $(this-folder)/../../../azure-rest-api-specs/specification/appplatform/resource-manager/readme.powershell.md +``` diff --git a/swaggerci/appplatform/resources/README.md b/swaggerci/appplatform/resources/README.md new file mode 100644 index 000000000000..736492341e3d --- /dev/null +++ b/swaggerci/appplatform/resources/README.md @@ -0,0 +1,11 @@ +# Resources +This directory can contain any additional resources for module that are not required at runtime. This directory **does not** get packaged with the module. If you have assets for custom implementation, place them into the `../custom` folder. + +## Info +- Modifiable: yes +- Generated: no +- Committed: yes +- Packaged: no + +## Purpose +Use this folder to put anything you want to keep around as part of the repository for the module, but is not something that is required for the module. For example, development files, packaged builds, or additional information. This is only intended to be used in repositories where the module's output directory is cleaned, but tangential resources for the module want to remain intact. \ No newline at end of file diff --git a/swaggerci/appplatform/run-module.ps1 b/swaggerci/appplatform/run-module.ps1 new file mode 100644 index 000000000000..87b45c876281 --- /dev/null +++ b/swaggerci/appplatform/run-module.ps1 @@ -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. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Code) +$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 +} + +$isAzure = $true +if($isAzure) { + . (Join-Path $PSScriptRoot 'check-dependencies.ps1') -Isolated -Accounts + # Load the latest version of Az.Accounts installed + Import-Module -Name Az.Accounts -RequiredVersion (Get-Module -Name Az.Accounts -ListAvailable | Sort-Object -Property Version -Descending)[0].Version +} + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) { + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.AppPlatform.psd1') +$modulePath = $modulePsd1.FullName +$moduleName = $modulePsd1.BaseName + +function Prompt { + Write-Host -NoNewline -ForegroundColor Green "PS $(Get-Location)" + Write-Host -NoNewline -ForegroundColor Gray ' [' + Write-Host -NoNewline -ForegroundColor White -BackgroundColor DarkCyan $moduleName + ']> ' +} + +# where we would find the launch.json file +$vscodeDirectory = New-Item -ItemType Directory -Force -Path (Join-Path $PSScriptRoot '.vscode') +$launchJson = Join-Path $vscodeDirectory 'launch.json' + +# if there is a launch.json file, let's just assume -Code, and update the file +if(($Code) -or (test-Path $launchJson) ) { + $launchContent = '{ "version": "0.2.0", "configurations":[{ "name":"Attach to PowerShell", "type":"coreclr", "request":"attach", "processId":"' + ([System.Diagnostics.Process]::GetCurrentProcess().Id) + '", "justMyCode":false }] }' + Set-Content -Path $launchJson -Value $launchContent + if($Code) { + # only launch vscode if they say -code + code $PSScriptRoot + } +} + +Import-Module -Name $modulePath \ No newline at end of file diff --git a/swaggerci/appplatform/test-module.ps1 b/swaggerci/appplatform/test-module.ps1 new file mode 100644 index 000000000000..568574f56244 --- /dev/null +++ b/swaggerci/appplatform/test-module.ps1 @@ -0,0 +1,86 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for 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]$Live, [switch]$Record, [switch]$Playback, [switch]$RegenerateSupportModule, [switch]$UsePreviousConfigForRecord, [string[]]$TestName) +$ErrorActionPreference = 'Stop' + +if(-not $Isolated) +{ + Write-Host -ForegroundColor Green 'Creating isolated process...' + if ($PSBoundParameters.ContainsKey("TestName")) { + $PSBoundParameters["TestName"] = $PSBoundParameters["TestName"] -join "," + } + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +# This is a workaround, since for string array parameter, pwsh -File will only take the first element +if ($PSBoundParameters.ContainsKey("TestName") -and ($TestName.count -eq 1) -and ($TestName[0].Contains(','))) { + $TestName = $TestName[0].Split(",") +} + +$ProgressPreference = 'SilentlyContinue' +$baseName = $PSScriptRoot.BaseName +$requireResourceModule = (($baseName -ne "Resources") -and ($Record.IsPresent -or $Live.IsPresent)) +. (Join-Path $PSScriptRoot 'check-dependencies.ps1') -Isolated -Accounts:$false -Pester -Resources:$requireResourceModule -RegenerateSupportModule:$RegenerateSupportModule +. ("$PSScriptRoot\test\utils.ps1") + +if ($requireResourceModule) +{ + # Load the latest Az.Accounts installed + Import-Module -Name Az.Accounts -RequiredVersion (Get-Module -Name Az.Accounts -ListAvailable | Sort-Object -Property Version -Descending)[0].Version + $resourceModulePSD = Get-Item -Path (Join-Path $HOME '.PSSharedModules\Resources\Az.Resources.TestSupport.psd1') + Import-Module -Name $resourceModulePSD.FullName +} + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) +{ + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.AppPlatform.psd1') +$modulePath = $modulePsd1.FullName +$moduleName = $modulePsd1.BaseName + +Import-Module -Name Pester +Import-Module -Name $modulePath + +$TestMode = 'playback' +$ExcludeTag = @("LiveOnly") +if($Live) +{ + $TestMode = 'live' + $ExcludeTag = @() +} +if($Record) +{ + $TestMode = 'record' +} +try +{ + if ($TestMode -ne 'playback') + { + setupEnv + } + $testFolder = Join-Path $PSScriptRoot 'test' + if ($null -ne $TestName) + { + Invoke-Pester -Script @{ Path = $testFolder } -TestName $TestName -ExcludeTag $ExcludeTag -EnableExit -OutputFile (Join-Path $testFolder "$moduleName-TestResults.xml") + } else + { + Invoke-Pester -Script @{ Path = $testFolder } -ExcludeTag $ExcludeTag -EnableExit -OutputFile (Join-Path $testFolder "$moduleName-TestResults.xml") + } +} Finally +{ + if ($TestMode -ne 'playback') + { + cleanupEnv + } +} + +Write-Host -ForegroundColor Green '-------------Done-------------' \ No newline at end of file diff --git a/swaggerci/appplatform/test/Disable-AzAppPlatformDeploymentRemoteDebugging.Tests.ps1 b/swaggerci/appplatform/test/Disable-AzAppPlatformDeploymentRemoteDebugging.Tests.ps1 new file mode 100644 index 000000000000..98eca9249c7a --- /dev/null +++ b/swaggerci/appplatform/test/Disable-AzAppPlatformDeploymentRemoteDebugging.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Disable-AzAppPlatformDeploymentRemoteDebugging')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Disable-AzAppPlatformDeploymentRemoteDebugging.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Disable-AzAppPlatformDeploymentRemoteDebugging' { + It 'Disable' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DisableViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Disable-AzAppPlatformPredefinedAccelerator.Tests.ps1 b/swaggerci/appplatform/test/Disable-AzAppPlatformPredefinedAccelerator.Tests.ps1 new file mode 100644 index 000000000000..5e3e1b424603 --- /dev/null +++ b/swaggerci/appplatform/test/Disable-AzAppPlatformPredefinedAccelerator.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Disable-AzAppPlatformPredefinedAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Disable-AzAppPlatformPredefinedAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Disable-AzAppPlatformPredefinedAccelerator' { + It 'Disable' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DisableViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Disable-AzAppPlatformServiceTestEndpoint.Tests.ps1 b/swaggerci/appplatform/test/Disable-AzAppPlatformServiceTestEndpoint.Tests.ps1 new file mode 100644 index 000000000000..8a7d7b496d11 --- /dev/null +++ b/swaggerci/appplatform/test/Disable-AzAppPlatformServiceTestEndpoint.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Disable-AzAppPlatformServiceTestEndpoint')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Disable-AzAppPlatformServiceTestEndpoint.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Disable-AzAppPlatformServiceTestEndpoint' { + It 'Disable' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DisableViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Enable-AzAppPlatformDeploymentRemoteDebugging.Tests.ps1 b/swaggerci/appplatform/test/Enable-AzAppPlatformDeploymentRemoteDebugging.Tests.ps1 new file mode 100644 index 000000000000..806767ead36c --- /dev/null +++ b/swaggerci/appplatform/test/Enable-AzAppPlatformDeploymentRemoteDebugging.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Enable-AzAppPlatformDeploymentRemoteDebugging')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Enable-AzAppPlatformDeploymentRemoteDebugging.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Enable-AzAppPlatformDeploymentRemoteDebugging' { + It 'EnableExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Enable' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'EnableViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'EnableViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Enable-AzAppPlatformPredefinedAccelerator.Tests.ps1 b/swaggerci/appplatform/test/Enable-AzAppPlatformPredefinedAccelerator.Tests.ps1 new file mode 100644 index 000000000000..3b418eb6aad2 --- /dev/null +++ b/swaggerci/appplatform/test/Enable-AzAppPlatformPredefinedAccelerator.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Enable-AzAppPlatformPredefinedAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Enable-AzAppPlatformPredefinedAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Enable-AzAppPlatformPredefinedAccelerator' { + It 'Enable' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'EnableViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Enable-AzAppPlatformServiceTestEndpoint.Tests.ps1 b/swaggerci/appplatform/test/Enable-AzAppPlatformServiceTestEndpoint.Tests.ps1 new file mode 100644 index 000000000000..fa08bd0dd644 --- /dev/null +++ b/swaggerci/appplatform/test/Enable-AzAppPlatformServiceTestEndpoint.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Enable-AzAppPlatformServiceTestEndpoint')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Enable-AzAppPlatformServiceTestEndpoint.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Enable-AzAppPlatformServiceTestEndpoint' { + It 'Enable' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'EnableViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformApiPortal.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformApiPortal.Tests.ps1 new file mode 100644 index 000000000000..fb51068e5255 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformApiPortal.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformApiPortal')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformApiPortal.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformApiPortal' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformApiPortalCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformApiPortalCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..a01c29928f81 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformApiPortalCustomDomain.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformApiPortalCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformApiPortalCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformApiPortalCustomDomain' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformApp.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformApp.Tests.ps1 new file mode 100644 index 000000000000..3071dd9b2efb --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformApp.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformApp')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformApp.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformApp' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformAppResourceUploadUrl.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformAppResourceUploadUrl.Tests.ps1 new file mode 100644 index 000000000000..94d867631b76 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformAppResourceUploadUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformAppResourceUploadUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformAppResourceUploadUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformAppResourceUploadUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformApplicationAccelerator.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformApplicationAccelerator.Tests.ps1 new file mode 100644 index 000000000000..437b4f3eb687 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformApplicationAccelerator.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformApplicationAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformApplicationAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformApplicationAccelerator' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformApplicationLiveView.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformApplicationLiveView.Tests.ps1 new file mode 100644 index 000000000000..3240607fdc17 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformApplicationLiveView.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformApplicationLiveView')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformApplicationLiveView.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformApplicationLiveView' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBinding.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBinding.Tests.ps1 new file mode 100644 index 000000000000..5ab2c92719f3 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBinding.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBinding')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBinding.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBinding' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildService.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildService.Tests.ps1 new file mode 100644 index 000000000000..0caf991003a1 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildService.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildService' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceAgentPool.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceAgentPool.Tests.ps1 new file mode 100644 index 000000000000..d29737aa5dd2 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceAgentPool.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceAgentPool')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceAgentPool.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceAgentPool' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuild.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuild.Tests.ps1 new file mode 100644 index 000000000000..f12371c49bfd --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuild.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceBuild')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceBuild.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceBuild' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuildResult.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuildResult.Tests.ps1 new file mode 100644 index 000000000000..2d083efb96ae --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuildResult.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceBuildResult')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceBuildResult.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceBuildResult' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuildResultLog.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuildResultLog.Tests.ps1 new file mode 100644 index 000000000000..58a1f58b5db6 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuildResultLog.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceBuildResultLog')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceBuildResultLog.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceBuildResultLog' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuilder.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuilder.Tests.ps1 new file mode 100644 index 000000000000..8296f2f8b317 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuilder.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceBuilder')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceBuilder.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceBuilder' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuilderDeployment.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuilderDeployment.Tests.ps1 new file mode 100644 index 000000000000..ccb768a9189e --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceBuilderDeployment.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceBuilderDeployment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceBuilderDeployment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceBuilderDeployment' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceResourceUploadUrl.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceResourceUploadUrl.Tests.ps1 new file mode 100644 index 000000000000..a703cda85007 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceResourceUploadUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceResourceUploadUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceResourceUploadUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceResourceUploadUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceSupportedBuildpack.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceSupportedBuildpack.Tests.ps1 new file mode 100644 index 000000000000..8008be55082f --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceSupportedBuildpack.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceSupportedBuildpack')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceSupportedBuildpack.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceSupportedBuildpack' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceSupportedStack.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceSupportedStack.Tests.ps1 new file mode 100644 index 000000000000..19db7ebd85be --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildServiceSupportedStack.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildServiceSupportedStack')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildServiceSupportedStack.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildServiceSupportedStack' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformBuildpackBinding.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformBuildpackBinding.Tests.ps1 new file mode 100644 index 000000000000..b982387fcaa4 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformBuildpackBinding.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformBuildpackBinding')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformBuildpackBinding.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformBuildpackBinding' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformCertificate.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformCertificate.Tests.ps1 new file mode 100644 index 000000000000..e351ea874e55 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformCertificate.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformCertificate' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformConfigServer.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformConfigServer.Tests.ps1 new file mode 100644 index 000000000000..2473e3423055 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformConfigServer.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformConfigServer')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformConfigServer.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformConfigServer' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformConfigurationService.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformConfigurationService.Tests.ps1 new file mode 100644 index 000000000000..00b51ba3e52f --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformConfigurationService.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformConfigurationService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformConfigurationService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformConfigurationService' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..5f2d08294a2f --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformCustomDomain.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformCustomDomain' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformCustomizedAccelerator.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformCustomizedAccelerator.Tests.ps1 new file mode 100644 index 000000000000..dfd4233541b3 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformCustomizedAccelerator.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformCustomizedAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformCustomizedAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformCustomizedAccelerator' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformDeployment.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformDeployment.Tests.ps1 new file mode 100644 index 000000000000..715b6d8ee811 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformDeployment.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformDeployment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformDeployment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformDeployment' { + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformDeploymentLogFileUrl.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformDeploymentLogFileUrl.Tests.ps1 new file mode 100644 index 000000000000..d0209300687b --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformDeploymentLogFileUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformDeploymentLogFileUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformDeploymentLogFileUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformDeploymentLogFileUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.Tests.ps1 new file mode 100644 index 000000000000..d2fde6f61ce6 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformDeploymentRemoteDebuggingConfig.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformDeploymentRemoteDebuggingConfig')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformDeploymentRemoteDebuggingConfig.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformDeploymentRemoteDebuggingConfig' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformDevToolPortal.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformDevToolPortal.Tests.ps1 new file mode 100644 index 000000000000..c64941c9c29b --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformDevToolPortal.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformDevToolPortal')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformDevToolPortal.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformDevToolPortal' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformGateway.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformGateway.Tests.ps1 new file mode 100644 index 000000000000..779ea5560a2b --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformGateway.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformGateway')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformGateway.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformGateway' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformGatewayCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformGatewayCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..62ca83ac3e69 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformGatewayCustomDomain.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformGatewayCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformGatewayCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformGatewayCustomDomain' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformGatewayEnvSecret.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformGatewayEnvSecret.Tests.ps1 new file mode 100644 index 000000000000..7798d2cfd924 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformGatewayEnvSecret.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformGatewayEnvSecret')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformGatewayEnvSecret.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformGatewayEnvSecret' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformGatewayRouteConfig.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformGatewayRouteConfig.Tests.ps1 new file mode 100644 index 000000000000..d72181ed70c2 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformGatewayRouteConfig.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformGatewayRouteConfig')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformGatewayRouteConfig.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformGatewayRouteConfig' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformMonitoringSetting.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformMonitoringSetting.Tests.ps1 new file mode 100644 index 000000000000..039dcc087b14 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformMonitoringSetting.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformMonitoringSetting')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformMonitoringSetting.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformMonitoringSetting' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformPredefinedAccelerator.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformPredefinedAccelerator.Tests.ps1 new file mode 100644 index 000000000000..8c555e626196 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformPredefinedAccelerator.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformPredefinedAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformPredefinedAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformPredefinedAccelerator' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformRuntimeVersion.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformRuntimeVersion.Tests.ps1 new file mode 100644 index 000000000000..6b111199b64b --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformRuntimeVersion.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformRuntimeVersion')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformRuntimeVersion.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformRuntimeVersion' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformService.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformService.Tests.ps1 new file mode 100644 index 000000000000..d6f41dfc4e9a --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformService.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformService' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformServiceRegistry.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformServiceRegistry.Tests.ps1 new file mode 100644 index 000000000000..ff20e3371b0c --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformServiceRegistry.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformServiceRegistry')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformServiceRegistry.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformServiceRegistry' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformServiceTestKey.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformServiceTestKey.Tests.ps1 new file mode 100644 index 000000000000..f3fc85278fee --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformServiceTestKey.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformServiceTestKey')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformServiceTestKey.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformServiceTestKey' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformSku.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformSku.Tests.ps1 new file mode 100644 index 000000000000..d2c555ad158e --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformSku.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformSku')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformSku.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformSku' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Get-AzAppPlatformStorage.Tests.ps1 b/swaggerci/appplatform/test/Get-AzAppPlatformStorage.Tests.ps1 new file mode 100644 index 000000000000..47c741411b59 --- /dev/null +++ b/swaggerci/appplatform/test/Get-AzAppPlatformStorage.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzAppPlatformStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzAppPlatformStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzAppPlatformStorage' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformApiPortal.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformApiPortal.Tests.ps1 new file mode 100644 index 000000000000..65ba9e841f21 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformApiPortal.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformApiPortal')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformApiPortal.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformApiPortal' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformApiPortalCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformApiPortalCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..ebec3fe437f4 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformApiPortalCustomDomain.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformApiPortalCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformApiPortalCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformApiPortalCustomDomain' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformApp.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformApp.Tests.ps1 new file mode 100644 index 000000000000..bd1f4dd9119d --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformApp.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformApp')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformApp.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformApp' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformApplicationAccelerator.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformApplicationAccelerator.Tests.ps1 new file mode 100644 index 000000000000..aaaff3146214 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformApplicationAccelerator.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformApplicationAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformApplicationAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformApplicationAccelerator' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformApplicationLiveView.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformApplicationLiveView.Tests.ps1 new file mode 100644 index 000000000000..28800f8309be --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformApplicationLiveView.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformApplicationLiveView')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformApplicationLiveView.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformApplicationLiveView' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformBinding.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformBinding.Tests.ps1 new file mode 100644 index 000000000000..f60f3418a94a --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformBinding.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformBinding')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformBinding.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformBinding' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformBuildServiceBuild.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformBuildServiceBuild.Tests.ps1 new file mode 100644 index 000000000000..f90c4855cdae --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformBuildServiceBuild.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformBuildServiceBuild')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformBuildServiceBuild.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformBuildServiceBuild' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformBuildServiceBuilder.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformBuildServiceBuilder.Tests.ps1 new file mode 100644 index 000000000000..d2c312a8ee2f --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformBuildServiceBuilder.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformBuildServiceBuilder')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformBuildServiceBuilder.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformBuildServiceBuilder' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformBuildpackBinding.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformBuildpackBinding.Tests.ps1 new file mode 100644 index 000000000000..ebf3ecac820a --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformBuildpackBinding.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformBuildpackBinding')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformBuildpackBinding.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformBuildpackBinding' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformCertificate.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformCertificate.Tests.ps1 new file mode 100644 index 000000000000..04c63f4d8bb0 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformCertificate.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformCertificate' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformConfigurationService.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformConfigurationService.Tests.ps1 new file mode 100644 index 000000000000..176df1d7b3c4 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformConfigurationService.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformConfigurationService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformConfigurationService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformConfigurationService' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..187a8d76bad8 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformCustomDomain.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformCustomDomain' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformCustomizedAccelerator.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformCustomizedAccelerator.Tests.ps1 new file mode 100644 index 000000000000..f1ba72c048d3 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformCustomizedAccelerator.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformCustomizedAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformCustomizedAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformCustomizedAccelerator' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformDeployment.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformDeployment.Tests.ps1 new file mode 100644 index 000000000000..989c18666b25 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformDeployment.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformDeployment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformDeployment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformDeployment' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformDeploymentHeapDump.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformDeploymentHeapDump.Tests.ps1 new file mode 100644 index 000000000000..d56a870203d9 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformDeploymentHeapDump.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformDeploymentHeapDump')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformDeploymentHeapDump.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformDeploymentHeapDump' { + It 'GenerateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Generate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GenerateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GenerateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformDeploymentThreadDump.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformDeploymentThreadDump.Tests.ps1 new file mode 100644 index 000000000000..038746be1fa7 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformDeploymentThreadDump.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformDeploymentThreadDump')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformDeploymentThreadDump.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformDeploymentThreadDump' { + It 'GenerateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Generate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GenerateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GenerateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformDevToolPortal.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformDevToolPortal.Tests.ps1 new file mode 100644 index 000000000000..9ffd2dcee20d --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformDevToolPortal.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformDevToolPortal')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformDevToolPortal.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformDevToolPortal' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformGateway.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformGateway.Tests.ps1 new file mode 100644 index 000000000000..3d7477f5bc12 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformGateway.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformGateway')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformGateway.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformGateway' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformGatewayCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformGatewayCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..dfc3df893388 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformGatewayCustomDomain.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformGatewayCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformGatewayCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformGatewayCustomDomain' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformGatewayRouteConfig.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformGatewayRouteConfig.Tests.ps1 new file mode 100644 index 000000000000..74c1a7457d3f --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformGatewayRouteConfig.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformGatewayRouteConfig')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformGatewayRouteConfig.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformGatewayRouteConfig' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformService.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformService.Tests.ps1 new file mode 100644 index 000000000000..1fa2919b71b9 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformService.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformService' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformServiceTestKey.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformServiceTestKey.Tests.ps1 new file mode 100644 index 000000000000..56e2f062141a --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformServiceTestKey.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformServiceTestKey')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformServiceTestKey.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformServiceTestKey' { + It 'RegenerateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Regenerate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RegenerateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RegenerateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/New-AzAppPlatformStorage.Tests.ps1 b/swaggerci/appplatform/test/New-AzAppPlatformStorage.Tests.ps1 new file mode 100644 index 000000000000..2c03149a6928 --- /dev/null +++ b/swaggerci/appplatform/test/New-AzAppPlatformStorage.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzAppPlatformStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzAppPlatformStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzAppPlatformStorage' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/README.md b/swaggerci/appplatform/test/README.md new file mode 100644 index 000000000000..1969200c6a09 --- /dev/null +++ b/swaggerci/appplatform/test/README.md @@ -0,0 +1,17 @@ +# Test +This directory contains the [Pester](https://www.powershellgallery.com/packages/Pester) tests to run for the module. We use Pester as it is the unofficial standard for PowerShell unit testing. Test stubs for custom cmdlets (created in `../custom`) will be generated into this folder when `build-module.ps1` is ran. These test stubs will fail automatically, to indicate that tests should be written for custom cmdlets. + +## Info +- Modifiable: yes +- Generated: partial +- Committed: yes +- Packaged: no + +## Details +We allow three testing modes: *live*, *record*, and *playback*. These can be selected using the `-Live`, `-Record`, and `-Playback` switches respectively on the `test-module.ps1` script. This script will run through any `.Tests.ps1` scripts in the `test` folder. If you choose the *record* mode, it will create a `.Recording.json` file of the REST calls between the client and server. Then, when you choose *playback* mode, it will use the `.Recording.json` file to mock the communication between server and client. The *live* mode runs the same as the *record* mode; however, it doesn't create the `.Recording.json` file. + +## Purpose +Custom cmdlets generally encompass additional functionality not described in the REST specification, or combines functionality generated from the REST spec. To validate this functionality continues to operate as intended, creating tests that can be ran and re-ran against custom cmdlets is part of the framework. + +## Usage +To execute tests, run the `test-module.ps1`. To write tests, [this example](https://github.com/pester/Pester/blob/8b9cf4248315e44f1ac6673be149f7e0d7f10466/Examples/Planets/Get-Planet.Tests.ps1#L1) from the Pester repository is very useful for getting started. \ No newline at end of file diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformApiPortal.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformApiPortal.Tests.ps1 new file mode 100644 index 000000000000..6a8ea79cfb96 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformApiPortal.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformApiPortal')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformApiPortal.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformApiPortal' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformApiPortalCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformApiPortalCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..5737a9b10898 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformApiPortalCustomDomain.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformApiPortalCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformApiPortalCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformApiPortalCustomDomain' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformApp.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformApp.Tests.ps1 new file mode 100644 index 000000000000..8e216526aa98 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformApp.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformApp')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformApp.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformApp' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformApplicationAccelerator.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformApplicationAccelerator.Tests.ps1 new file mode 100644 index 000000000000..28e95dec2862 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformApplicationAccelerator.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformApplicationAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformApplicationAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformApplicationAccelerator' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformApplicationLiveView.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformApplicationLiveView.Tests.ps1 new file mode 100644 index 000000000000..2713bc67d229 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformApplicationLiveView.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformApplicationLiveView')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformApplicationLiveView.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformApplicationLiveView' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformBinding.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformBinding.Tests.ps1 new file mode 100644 index 000000000000..23842ab9346d --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformBinding.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformBinding')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformBinding.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformBinding' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformBuildServiceBuilder.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformBuildServiceBuilder.Tests.ps1 new file mode 100644 index 000000000000..4f5be6655470 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformBuildServiceBuilder.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformBuildServiceBuilder')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformBuildServiceBuilder.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformBuildServiceBuilder' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformBuildpackBinding.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformBuildpackBinding.Tests.ps1 new file mode 100644 index 000000000000..9a5fc3120480 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformBuildpackBinding.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformBuildpackBinding')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformBuildpackBinding.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformBuildpackBinding' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformCertificate.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformCertificate.Tests.ps1 new file mode 100644 index 000000000000..1f7e2c14e697 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformCertificate.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformCertificate')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformCertificate.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformCertificate' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformConfigurationService.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformConfigurationService.Tests.ps1 new file mode 100644 index 000000000000..eb5ab01dc987 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformConfigurationService.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformConfigurationService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformConfigurationService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformConfigurationService' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..df2756a0007f --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformCustomDomain.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformCustomDomain' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformCustomizedAccelerator.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformCustomizedAccelerator.Tests.ps1 new file mode 100644 index 000000000000..e052eb41fee5 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformCustomizedAccelerator.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformCustomizedAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformCustomizedAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformCustomizedAccelerator' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformDeployment.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformDeployment.Tests.ps1 new file mode 100644 index 000000000000..20b63f43e7c9 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformDeployment.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformDeployment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformDeployment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformDeployment' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformDevToolPortal.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformDevToolPortal.Tests.ps1 new file mode 100644 index 000000000000..25cc01d7b29a --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformDevToolPortal.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformDevToolPortal')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformDevToolPortal.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformDevToolPortal' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformGateway.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformGateway.Tests.ps1 new file mode 100644 index 000000000000..81f874243774 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformGateway.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformGateway')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformGateway.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformGateway' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformGatewayCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformGatewayCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..52f4c34d5a11 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformGatewayCustomDomain.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformGatewayCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformGatewayCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformGatewayCustomDomain' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformGatewayRouteConfig.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformGatewayRouteConfig.Tests.ps1 new file mode 100644 index 000000000000..4519dc6f75ca --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformGatewayRouteConfig.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformGatewayRouteConfig')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformGatewayRouteConfig.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformGatewayRouteConfig' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformService.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformService.Tests.ps1 new file mode 100644 index 000000000000..b2fec41065e2 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformService.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformService' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformServiceRegistry.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformServiceRegistry.Tests.ps1 new file mode 100644 index 000000000000..6c654ec9877b --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformServiceRegistry.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformServiceRegistry')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformServiceRegistry.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformServiceRegistry' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Remove-AzAppPlatformStorage.Tests.ps1 b/swaggerci/appplatform/test/Remove-AzAppPlatformStorage.Tests.ps1 new file mode 100644 index 000000000000..389f70769833 --- /dev/null +++ b/swaggerci/appplatform/test/Remove-AzAppPlatformStorage.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzAppPlatformStorage')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzAppPlatformStorage.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzAppPlatformStorage' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Restart-AzAppPlatformDeployment.Tests.ps1 b/swaggerci/appplatform/test/Restart-AzAppPlatformDeployment.Tests.ps1 new file mode 100644 index 000000000000..33387f774e25 --- /dev/null +++ b/swaggerci/appplatform/test/Restart-AzAppPlatformDeployment.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Restart-AzAppPlatformDeployment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Restart-AzAppPlatformDeployment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Restart-AzAppPlatformDeployment' { + It 'Restart' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RestartViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Start-AzAppPlatformDeployment.Tests.ps1 b/swaggerci/appplatform/test/Start-AzAppPlatformDeployment.Tests.ps1 new file mode 100644 index 000000000000..314df6d89a7a --- /dev/null +++ b/swaggerci/appplatform/test/Start-AzAppPlatformDeployment.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Start-AzAppPlatformDeployment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Start-AzAppPlatformDeployment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Start-AzAppPlatformDeployment' { + It 'Start' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'StartViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Start-AzAppPlatformDeploymentJfr.Tests.ps1 b/swaggerci/appplatform/test/Start-AzAppPlatformDeploymentJfr.Tests.ps1 new file mode 100644 index 000000000000..f0c4b1605ee6 --- /dev/null +++ b/swaggerci/appplatform/test/Start-AzAppPlatformDeploymentJfr.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Start-AzAppPlatformDeploymentJfr')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Start-AzAppPlatformDeploymentJfr.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Start-AzAppPlatformDeploymentJfr' { + It 'StartExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Start' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'StartViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'StartViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Start-AzAppPlatformService.Tests.ps1 b/swaggerci/appplatform/test/Start-AzAppPlatformService.Tests.ps1 new file mode 100644 index 000000000000..89b2ef76bb70 --- /dev/null +++ b/swaggerci/appplatform/test/Start-AzAppPlatformService.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Start-AzAppPlatformService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Start-AzAppPlatformService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Start-AzAppPlatformService' { + It 'Start' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'StartViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Stop-AzAppPlatformDeployment.Tests.ps1 b/swaggerci/appplatform/test/Stop-AzAppPlatformDeployment.Tests.ps1 new file mode 100644 index 000000000000..304a37ce62e9 --- /dev/null +++ b/swaggerci/appplatform/test/Stop-AzAppPlatformDeployment.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Stop-AzAppPlatformDeployment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Stop-AzAppPlatformDeployment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Stop-AzAppPlatformDeployment' { + It 'Stop' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'StopViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Stop-AzAppPlatformService.Tests.ps1 b/swaggerci/appplatform/test/Stop-AzAppPlatformService.Tests.ps1 new file mode 100644 index 000000000000..debe54c4f0a8 --- /dev/null +++ b/swaggerci/appplatform/test/Stop-AzAppPlatformService.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Stop-AzAppPlatformService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Stop-AzAppPlatformService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Stop-AzAppPlatformService' { + It 'Stop' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'StopViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Test-AzAppPlatformApiPortalDomain.Tests.ps1 b/swaggerci/appplatform/test/Test-AzAppPlatformApiPortalDomain.Tests.ps1 new file mode 100644 index 000000000000..b220fbb72268 --- /dev/null +++ b/swaggerci/appplatform/test/Test-AzAppPlatformApiPortalDomain.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzAppPlatformApiPortalDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzAppPlatformApiPortalDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzAppPlatformApiPortalDomain' { + It 'ValidateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Validate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Test-AzAppPlatformAppDomain.Tests.ps1 b/swaggerci/appplatform/test/Test-AzAppPlatformAppDomain.Tests.ps1 new file mode 100644 index 000000000000..91fca4d9c78c --- /dev/null +++ b/swaggerci/appplatform/test/Test-AzAppPlatformAppDomain.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzAppPlatformAppDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzAppPlatformAppDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzAppPlatformAppDomain' { + It 'ValidateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Validate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Test-AzAppPlatformConfigServer.Tests.ps1 b/swaggerci/appplatform/test/Test-AzAppPlatformConfigServer.Tests.ps1 new file mode 100644 index 000000000000..4390cc20e1be --- /dev/null +++ b/swaggerci/appplatform/test/Test-AzAppPlatformConfigServer.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzAppPlatformConfigServer')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzAppPlatformConfigServer.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzAppPlatformConfigServer' { + It 'ValidateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Validate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Test-AzAppPlatformConfigurationService.Tests.ps1 b/swaggerci/appplatform/test/Test-AzAppPlatformConfigurationService.Tests.ps1 new file mode 100644 index 000000000000..14030fc946ba --- /dev/null +++ b/swaggerci/appplatform/test/Test-AzAppPlatformConfigurationService.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzAppPlatformConfigurationService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzAppPlatformConfigurationService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzAppPlatformConfigurationService' { + It 'ValidateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Validate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Test-AzAppPlatformCustomizedAccelerator.Tests.ps1 b/swaggerci/appplatform/test/Test-AzAppPlatformCustomizedAccelerator.Tests.ps1 new file mode 100644 index 000000000000..2b6e60b0c418 --- /dev/null +++ b/swaggerci/appplatform/test/Test-AzAppPlatformCustomizedAccelerator.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzAppPlatformCustomizedAccelerator')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzAppPlatformCustomizedAccelerator.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzAppPlatformCustomizedAccelerator' { + It 'ValidateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Validate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Test-AzAppPlatformGatewayDomain.Tests.ps1 b/swaggerci/appplatform/test/Test-AzAppPlatformGatewayDomain.Tests.ps1 new file mode 100644 index 000000000000..a39fc7e70148 --- /dev/null +++ b/swaggerci/appplatform/test/Test-AzAppPlatformGatewayDomain.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzAppPlatformGatewayDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzAppPlatformGatewayDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzAppPlatformGatewayDomain' { + It 'ValidateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Validate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ValidateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Test-AzAppPlatformServiceNameAvailability.Tests.ps1 b/swaggerci/appplatform/test/Test-AzAppPlatformServiceNameAvailability.Tests.ps1 new file mode 100644 index 000000000000..1cf075a26dc8 --- /dev/null +++ b/swaggerci/appplatform/test/Test-AzAppPlatformServiceNameAvailability.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Test-AzAppPlatformServiceNameAvailability')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Test-AzAppPlatformServiceNameAvailability.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Test-AzAppPlatformServiceNameAvailability' { + It 'CheckExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Check' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'CheckViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'CheckViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Update-AzAppPlatformApp.Tests.ps1 b/swaggerci/appplatform/test/Update-AzAppPlatformApp.Tests.ps1 new file mode 100644 index 000000000000..bc45086ab9ed --- /dev/null +++ b/swaggerci/appplatform/test/Update-AzAppPlatformApp.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzAppPlatformApp')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzAppPlatformApp.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzAppPlatformApp' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Update-AzAppPlatformBinding.Tests.ps1 b/swaggerci/appplatform/test/Update-AzAppPlatformBinding.Tests.ps1 new file mode 100644 index 000000000000..433db0c6f982 --- /dev/null +++ b/swaggerci/appplatform/test/Update-AzAppPlatformBinding.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzAppPlatformBinding')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzAppPlatformBinding.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzAppPlatformBinding' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Update-AzAppPlatformConfigServerPatch.Tests.ps1 b/swaggerci/appplatform/test/Update-AzAppPlatformConfigServerPatch.Tests.ps1 new file mode 100644 index 000000000000..ae9075afbaec --- /dev/null +++ b/swaggerci/appplatform/test/Update-AzAppPlatformConfigServerPatch.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzAppPlatformConfigServerPatch')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzAppPlatformConfigServerPatch.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzAppPlatformConfigServerPatch' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Update-AzAppPlatformCustomDomain.Tests.ps1 b/swaggerci/appplatform/test/Update-AzAppPlatformCustomDomain.Tests.ps1 new file mode 100644 index 000000000000..cfb4f5e8cdab --- /dev/null +++ b/swaggerci/appplatform/test/Update-AzAppPlatformCustomDomain.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzAppPlatformCustomDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzAppPlatformCustomDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzAppPlatformCustomDomain' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Update-AzAppPlatformDeployment.Tests.ps1 b/swaggerci/appplatform/test/Update-AzAppPlatformDeployment.Tests.ps1 new file mode 100644 index 000000000000..27a88bca0d80 --- /dev/null +++ b/swaggerci/appplatform/test/Update-AzAppPlatformDeployment.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzAppPlatformDeployment')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzAppPlatformDeployment.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzAppPlatformDeployment' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Update-AzAppPlatformMonitoringSettingPatch.Tests.ps1 b/swaggerci/appplatform/test/Update-AzAppPlatformMonitoringSettingPatch.Tests.ps1 new file mode 100644 index 000000000000..4b5fae6bc040 --- /dev/null +++ b/swaggerci/appplatform/test/Update-AzAppPlatformMonitoringSettingPatch.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzAppPlatformMonitoringSettingPatch')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzAppPlatformMonitoringSettingPatch.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzAppPlatformMonitoringSettingPatch' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/Update-AzAppPlatformService.Tests.ps1 b/swaggerci/appplatform/test/Update-AzAppPlatformService.Tests.ps1 new file mode 100644 index 000000000000..295c5a37295a --- /dev/null +++ b/swaggerci/appplatform/test/Update-AzAppPlatformService.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzAppPlatformService')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzAppPlatformService.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzAppPlatformService' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/appplatform/test/loadEnv.ps1 b/swaggerci/appplatform/test/loadEnv.ps1 new file mode 100644 index 000000000000..0ea394729062 --- /dev/null +++ b/swaggerci/appplatform/test/loadEnv.ps1 @@ -0,0 +1,21 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +$envFile = 'env.json' +if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' +} + +if (Test-Path -Path (Join-Path $PSScriptRoot $envFile)) { + $envFilePath = Join-Path $PSScriptRoot $envFile +} else { + $envFilePath = Join-Path $PSScriptRoot '..\$envFile' +} +$env = @{} +if (Test-Path -Path $envFilePath) { + $env = Get-Content (Join-Path $PSScriptRoot $envFile) | ConvertFrom-Json + $PSDefaultParameterValues=@{"*:SubscriptionId"=$env.SubscriptionId; "*:Tenant"=$env.Tenant} +} \ No newline at end of file diff --git a/swaggerci/appplatform/test/utils.ps1 b/swaggerci/appplatform/test/utils.ps1 new file mode 100644 index 000000000000..1990edd45299 --- /dev/null +++ b/swaggerci/appplatform/test/utils.ps1 @@ -0,0 +1,31 @@ +function RandomString([bool]$allChars, [int32]$len) { + if ($allChars) { + return -join ((33..126) | Get-Random -Count $len | % {[char]$_}) + } else { + return -join ((48..57) + (97..122) | Get-Random -Count $len | % {[char]$_}) + } +} +$env = @{} +if ($UsePreviousConfigForRecord) { + $previousEnv = Get-Content (Join-Path $PSScriptRoot 'env.json') | ConvertFrom-Json + $previousEnv.psobject.properties | Foreach-Object { $env[$_.Name] = $_.Value } +} +# Add script method called AddWithCache to $env, when useCache is set true, it will try to get the value from the $env first. +# example: $val = $env.AddWithCache('key', $val, $true) +$env | Add-Member -Type ScriptMethod -Value { param( [string]$key, [object]$val, [bool]$useCache) if ($this.Contains($key) -and $useCache) { return $this[$key] } else { $this[$key] = $val; return $val } } -Name 'AddWithCache' +function setupEnv() { + # Preload subscriptionId and tenant from context, which will be used in test + # as default. You could change them if needed. + $env.SubscriptionId = (Get-AzContext).Subscription.Id + $env.Tenant = (Get-AzContext).Tenant.Id + # For any resources you created for test, you should add it to $env here. + $envFile = 'env.json' + if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' + } + set-content -Path (Join-Path $PSScriptRoot $envFile) -Value (ConvertTo-Json $env) +} +function cleanupEnv() { + # Clean resources you create for testing +} + diff --git a/swaggerci/appplatform/utils/Unprotect-SecureString.ps1 b/swaggerci/appplatform/utils/Unprotect-SecureString.ps1 new file mode 100644 index 000000000000..cb05b51a6220 --- /dev/null +++ b/swaggerci/appplatform/utils/Unprotect-SecureString.ps1 @@ -0,0 +1,16 @@ +#This script converts securestring to plaintext + +param( + [Parameter(Mandatory, ValueFromPipeline)] + [System.Security.SecureString] + ${SecureString} +) + +$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) +try { + $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) +} finally { + [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) +} + +return $plaintext \ No newline at end of file

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 EKMpiCU;qFB literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/StartupScripts/AzError.ps1 b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/StartupScripts/AzError.ps1 new file mode 100644 index 000000000000..f234bd2dd7e5 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/StartupScripts/AzError.ps1 @@ -0,0 +1,278 @@ +function Write-InstallationCheckToFile +{ + Param($installationchecks) + if (Get-Module AzureRM.Profile -ListAvailable -ErrorAction Ignore) + { + Write-Warning ("Both Az and AzureRM modules were detected on this machine. 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") + } + + $installationchecks.Add("AzSideBySideCheck","true") + try + { + if (Test-Path $pathToInstallationChecks -ErrorAction Ignore) + { + Remove-Item -Path $pathToInstallationChecks -ErrorAction Stop + } + + $pathToInstallDir = Split-Path -Path $pathToInstallationChecks -Parent -ErrorAction Stop + if (Test-Path $pathToInstallDir -ErrorAction Ignore) + { + New-Item -Path $pathToInstallationChecks -ErrorAction Stop -ItemType File -Value ($installationchecks | ConvertTo-Json -ErrorAction Stop) + } + } + catch + { + Write-Verbose "Installation checks failed to write to file." + } +} + +if (!($env:SkipAzInstallationChecks -eq "true")) +{ + $pathToInstallationChecks = Join-Path (Join-Path $HOME ".Azure") "AzInstallationChecks.json" + $installationchecks = @{} + if (!(Test-Path $pathToInstallationChecks -ErrorAction Ignore)) + { + Write-InstallationCheckToFile $installationchecks + } + else + { + try + { + ((Get-Content $pathToInstallationChecks -ErrorAction Stop) | ConvertFrom-Json -ErrorAction Stop).PSObject.Properties | Foreach { $installationchecks[$_.Name] = $_.Value } + } + catch + { + Write-InstallationCheckToFile $installationchecks + } + + if (!$installationchecks.ContainsKey("AzSideBySideCheck")) + { + Write-InstallationCheckToFile $installationchecks + } + } +} + +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.") +} + +Update-TypeData -AppendPath (Join-Path (Get-Item $PSScriptRoot).Parent.FullName Accounts.types.ps1xml) -ErrorAction Ignore +# SIG # Begin signature block +# MIInuQYJKoZIhvcNAQcCoIInqjCCJ6YCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDT3s8rOGw0kP8l +# AbYXJ7G9hr2fOKBRtW5xO6fWVEOZvqCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# 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/BvW1taslScxMNelDNMYIZjjCCGYoCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgpH7D8Not +# WnytrY9dBBVdkjoPJbp/Jb5/OaJtNH+9PHMwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQBeESsu04jkAEIOu00+XAL5Cw3b4lPK1+Y/A63nt7uC +# g0IvVE66lSl52+b6CVBX/G72fi7HlOIYoCyVKEIasUVN+dqAtdM2ib0RLRPrWxH9 +# 2axBlgxQg9nBAZkklffNIZjmkC+gZN37i3g0DHSwmb1ej9OwHDD0MYQpF8oIa81e +# oj07j6dAzRwVM0TaHEJj9kPXA81HN6CAYBJ/V3p0wYRbp3c2L9j2R9MtVVvnx/7z +# sbKvHJV+l3b/xCT5T0/J5l5QoLzzNyfWB7Zvaz0DbKX1bln/rcb8uPYKVEz4wsKW +# 5zAm12WLQ87vxiIGLA6tv4lXxggEAUm68Nwjfw6vqkHRoYIXGDCCFxQGCisGAQQB +# gjcDAwExghcEMIIXAAYJKoZIhvcNAQcCoIIW8TCCFu0CAQMxDzANBglghkgBZQME +# AgEFADCCAVgGCyqGSIb3DQEJEAEEoIIBRwSCAUMwggE/AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIEbwTnYvqLH2wAcLSr8ZwikKunQnLTH8PEiqd0Vr +# sTtWAgZiMTFcHxoYEjIwMjIwMzMxMTAwMDA4Ljg4WjAEgAIB9KCB2KSB1TCB0jEL +# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v +# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWlj +# cm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFs +# ZXMgVFNTIEVTTjpBMjQwLTRCODItMTMwRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgU2VydmljZaCCEWgwggcUMIIE/KADAgECAhMzAAABjXpVLnh0mSq3 +# AAEAAAGNMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX +# YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg +# Q29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAy +# MDEwMB4XDTIxMTAyODE5Mjc0NVoXDTIzMDEyNjE5Mjc0NVowgdIxCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJ +# cmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBF +# U046QTI0MC00QjgyLTEzMEUxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFNlcnZpY2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDaNEgtmD47 +# pTt0ty7AE8wH7S0lTPTAcuonl/soldCxPNZOgANQxhXjFVmen2Y9NaiNQn+Xc7he +# p6AsM124UA5tyK2svJjkcOzEB9QbX/ZiKVxKRI/oJwypZ+xLBQsZfnOWxUocnu2/ +# CDbrLp4uSVR0UymKrb3hPi4lB1d3k7uYXLS9WRoY8bE1YttnEo3Ooq0WdZDuMy1n +# Tle9p+QhZms1MW/wYakCUe1GxnUDwoOjogNIZU1lldtCz587Aw4an8HOh3x/Vgjw +# Zvag3+bHZxy90av2VrnlBl5Wwzst9NoQ9DFuABwuBYOUg9yZPNwGSwTMs5CxKkHO +# yo9pYj3KRXDmh+auQUoxulBPkQySLay4mhUznEaB1lae3+3PTTG5s9IoWLgHggwV +# QH2ZwA1Sr1wdouwdsMn4BSxU7SqdWPDNc9gl5HsL8HxfRSXpSQh2mVmadxBlIErf +# JlDL6gay4kpcUCrcGXFPqQO6Fhi87uK0us95jSSe63WsqTGib66Lq8J22EJ+cCLK +# SfJELaWSerPPzHWYORDlDo7H2nr+V24W6lIky2CwI8318i+t+mkwMUi9GhQuwc50 +# smOtGWLxyjkz69mZ/bShPFi5fMzS1tG6sQnJwHlkxvDOewUfKY6SDLHw54WddXdx +# qvjm56MjUHWKpQNt5I3Ge9zO46FynPBpyQIDAQABo4IBNjCCATIwHQYDVR0OBBYE +# FHjMkW6Hn0bClO5KO7hJNx+WKGaTMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWn +# G1M1GelyMF8GA1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv +# bS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEw +# KDEpLmNybDBsBggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFt +# cCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYI +# KwYBBQUHAwgwDQYJKoZIhvcNAQELBQADggIBADWvc7PSUSrdW+l0WWHdgHFziGdi +# QAvJg8Nr0U7heCrCQGbwuxv6Ure1sYaCmLpAlsreIzcErQ5sFzBFolULEYsa2von +# P2FG6ZHIXyjifbLdiIq/iiUHE2MVKFIZz0Tb0mZWMGYuCZ+NGo9z/asPbmrijDi4 +# Detz16SJq5+AaFxIB16T+X6QBJvOiE63/nPb4iWBPh7dq5JTO3YYAp8pkHTZkMZY +# op4JjekQuPW26HrJ+s4k88ic7hlktbe+Apq+0vx7oUlnImgMUx7Ann2gQv4Ard7Y +# zYjggUT2fotVLxtL1RsxQy+sCVc3lkzYjwZ0cH1Nt8jXtab/1R/iq7nzw8k3u8Im +# P2z4rFmpdzmwZJwuCqI+ohts1MT78ARn95OLFz1guBPIypqRkjn3AaqOs41BJju7 +# RUQOQQTqKTP4VIVEorOnJJvRZOAy9bGwu9uc3wAKYhI+cEdhmgayw8Avt+gYYoUt +# 0AFNALY9fX1aOt/KuyEd2KpKUKymogYFPFFoe3I8yujcH/bqA98KXcwLesLc0arj +# EacgcNkZKLNSYaDxORACWhV1Tl0nW/3XSCPFrFpStoaE/wi20TRFadTldGn+wZo2 +# YNwzBvIe5KloWyfdDbU7OK0/gGc3m2msdqeAALuOh7jOYueZGcCJRz2xGpDZuaww +# C9Smw7yeU4WaIzUvMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTAN +# BgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 +# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh +# dGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y +# aXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv +# ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC +# AgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDi +# vbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5G +# awcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUm +# ZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjks +# UZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvr +# g0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31B +# mkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PR +# c6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRR +# RuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSR +# lJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflS +# xIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHd +# MIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSa +# voKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYD +# VR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3 +# dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1Ud +# JQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjR +# PZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNy +# bDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9z +# b2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0G +# CSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHix +# BpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjY +# Ni6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe5 +# 3Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BU +# hUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QM +# vOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1A +# PMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsN +# n6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFs +# c/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue1 +# 0CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6g +# MTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm +# 8qGCAtcwggJAAgEBMIIBAKGB2KSB1TCB0jELMAkGA1UEBhMCVVMxEzARBgNVBAgT +# Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m +# dCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0 +# aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpBMjQwLTRCODIt +# MTMwRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEB +# MAcGBSsOAwIaAxUAgHOVkz1NE0Pg+C2ktZBmRI9hVwmggYMwgYCkfjB8MQswCQYD +# VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv +# ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOXvddYwIhgP +# MjAyMjAzMzEwODM1MzRaGA8yMDIyMDQwMTA4MzUzNFowdzA9BgorBgEEAYRZCgQB +# MS8wLTAKAgUA5e911gIBADAKAgEAAgIXqQIB/zAHAgEAAgIRHzAKAgUA5fDHVgIB +# ADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQow +# CAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBABjrSR17sdYAEtszvl2BWos/C7ZR +# fepANqhK1OqRLv3nelgcpzoYSpF3+csIJ5gGoL5clExMw1t3hkOSQLOzGWvkcWIY +# Tp5Pv4q/CpB/52Mrn1kC2zSej1E9lx0InBB++pTdEr3WCn9KDZsIy8B9M3gtEamp +# Di1hg/Yaskk2pVuQMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# UENBIDIwMTACEzMAAAGNelUueHSZKrcAAQAAAY0wDQYJYIZIAWUDBAIBBQCgggFK +# MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgv72G +# 0X2zWUJuJvjSqtgMZ02BVYmEgLTkIUsRp8UHvXIwgfoGCyqGSIb3DQEJEAIvMYHq +# MIHnMIHkMIG9BCCelhEz+h1eQMCfN/a50vnr1bxx8ZODBW56dDy20hjNfzCBmDCB +# gKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH +# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV +# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABjXpVLnh0mSq3 +# AAEAAAGNMCIEIKC8K55Td1F8Kw4pKkbmiSw7Hb/xIcUSNIsHKB52X2hTMA0GCSqG +# SIb3DQEBCwUABIICAMsOXK3vJQX7Jt2lDwVppNTdiboPDVwXRfezsK8NLGK7wZhp +# e/fEsGp3kFdqmeiDT/QGZV+ixnGjOTyJSaq6+wtvZyqKLUoEkhD9g+hFk23Hn3ui +# RiAp6LSf263zzgNQ9SbNssjiOChkILaTpt+GeV+lHAH6N412gYM7pbVyw9v7jvx+ +# Mp+iFKUVQAqZZDGm55MyTqfVdPeb8YpN9pqPSYG4ruCTwZBYGI+p7LFuKgQqF+FB +# 2KTqsTuxoHI6HAV3OibJcIFKQLFxaHjD0/YjYeZSoMUMD/ojZpdEoFrLtTXmIZ2e +# yOFKcX1LMzwwHhEpOpc9m9g4/B2kYTHUl1hFupXEu9PZnNa0IweqtM/GdX/Ji/// +# JRcDe8vtLNQz7z8ZQF28k1ufRDGfm5YIQDHu9Zx33gbpsWIyGZMmlbU4UMJDvAbM +# +sCYtGGLcMEObyiurnDOF4dix7QAdLWqGG2YiyZ9u0T/hRLi3THXhLGK5Xt4dgBk +# aeyJv7T3ZPfsbu8a10lgFkyVbmJt6up2OZbaqW1PjmvgtcsNmRyhD9oSZzOXdTiW +# iIGeLtHEkiSvZnWbaDqpx7ahcaHsmS5QvwWkYGGx1uHMOwJHuFq7jKPo3SYMxAwq +# GQW+QTZroDYL+UTfaUobfPyrS3bDw3L7xVqOOBwGidlOwx3ZYU4mNlSbfCN3 +# SIG # End signature block diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/StartupScripts/InitializeAssemblyResolver.ps1 b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/StartupScripts/InitializeAssemblyResolver.ps1 new file mode 100644 index 000000000000..4e557723dc33 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/StartupScripts/InitializeAssemblyResolver.ps1 @@ -0,0 +1,234 @@ +if ($PSEdition -eq 'Desktop') { + try { + [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() + } + catch { + Write-Warning $_ + } +} +else { + try { + Add-Type -Path ([System.IO.Path]::Combine($PSScriptRoot, "..", "Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll")) | Out-Null + $assemblyLoadContextFolder = [System.IO.Path]::Combine($PSScriptRoot, "..", "AzSharedAlcAssemblies") + Write-Debug "Registering Az shared AssemblyLoadContext for path: '$assemblyLoadContextFolder'." + [Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.AzAssemblyLoadContextInitializer]::RegisterAzSharedAssemblyLoadContext($assemblyLoadContextFolder) + Write-Debug "AssemblyLoadContext registered." + } + catch { + Write-Warning $_ + } +} +# SIG # Begin signature block +# MIInrQYJKoZIhvcNAQcCoIInnjCCJ5oCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCfno9x0LEd5gPe +# 4cvAg6ULJtMLR6g+Xis+I4rbSZlHZqCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# 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/BvW1taslScxMNelDNMYIZgjCCGX4CAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgyFkgUqEG +# ohT1KbDw544Hgmj3zWoOXkAlMHIwAyFcowAwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCa0t0uHrS1Z8rXJEETxc2oe78Dv4Qo198ub5+3zLvP +# Uwb+RkVmouToXjo3dapicrrP8ELcphopBonxGcVJFdu9HT8uuwL9KEp0yDpjUxKA +# 0yPVc1pc+f5vmlLY1kyUHMb9Deahzp5oJnL6NLyupJ8w6DLb21SCiIWl71l5vf2B +# i8Nx+jIjxGEC5Emqk6GLFAjR4TR6KO1j6gkHutOu3k0Q/+CgvgEwPbwtBXjcE9jV +# u7AZ6Iu5mE8q7NQ01GwWUMs13xpWLxE8HgvWtu3ozXjFeFaG3u9NEyx/zlkEB1cS +# Ntqh/F34ovkTvJxnIBPSRZfGubCV0fp9Qm0gXxrz3y/roYIXDDCCFwgGCisGAQQB +# gjcDAwExghb4MIIW9AYJKoZIhvcNAQcCoIIW5TCCFuECAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIBvIyrpwHucEdb9YUkDCNmUPQk1ErTyZteMy3AB+ +# P++VAgZiL7Y+PNcYEzIwMjIwMzMxMTAwMDA5LjE3NlowBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjo2MEJDLUUzODMtMjYzNTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCEV8wggcQMIIE+KADAgECAhMzAAABpllFgzlNnutLAAEA +# AAGmMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTIyMDMwMjE4NTEyMVoXDTIzMDUxMTE4NTEyMVowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo2MEJD +# LUUzODMtMjYzNTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANmYv3tSI+fJ/NQJnjz7 +# JvCnc+Xm0rKoe9YKD4MvMYCul7egdrT/zv5vFbQgjNQ74672fNweaztkR65V8y29 +# u5PL2sf01p+uche0Zu4tSig+GsQ6ZQl9tjPRAY/3ITBHDeIYyvq8Wne9+7NoPLhx +# DSO6dtX7YCuQ4zcTP3SE6MvB4b5NighdtvoZVaYk1lXpjUTfdmKoX1ABq1sJbULS +# nSi0Qd4vvl3mZ9jxwv9dR/nlZP62lrZYZq7LPtHD6BlmclB5PT89DnSm1sjaZnFH +# rKzOsmq5GlmL5SFugCCZOoKz133FJeQaFMcXBZSCQjNABWBbHIRCE1ysHHG83Ddo +# nRmnC8EOlYeRwTWz/QCz6q0riOIbYyC/A2BgUEpu9/9EymrTsyMr2/zS8GdEybQ5 +# W7f0WrcrmKB/Y62+g6TmfOS8NtU+L1jGoKNG6Q5RlfJwZu8J/Q9dl4OxyHKuy78+ +# wm6HsF7uAizpsWh63UUaoK/OGQiBG3NJ+kef5eWpnva4ZJfhAnqYTAZD1uHgf8Vf +# Qjnl0BB2YXzK9WaTqde8d+8qCxVKr5hJYvbO+X3+2k5PCirUK/SboreX+xUhVaQE +# hVDYqlatyPttI7Z2IrkhMzwFvc+p0QeyMiNmo2cBZejx8icDOcUidwymDUYqGPE7 +# MA8vtKW3feeSSYJsCEkuUO/vAgMBAAGjggE2MIIBMjAdBgNVHQ4EFgQUOlQhO/zG +# lqK99UkNL/Gu/AryN9gwHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIw +# XwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w +# cy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3Js +# MGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3Nv +# ZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB +# JTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcD +# CDANBgkqhkiG9w0BAQsFAAOCAgEAgMDxWDTpGqLnFoPhm/iDfwHGF8xr2NbrJl8e +# gEg2ThTJsTf0wBE+ZQsnYfrRmXBbe6sCXLVN70qPuI+OEbN5MOai7Bue1/4j5VTk +# WquH5GZeVat2N+dD7lSUWp0dU8j+uBhBL5GFSmoDVVm+zW2GR2juPI1v254AJTb2 +# l458anlkJjGvmYn2BtRS13h/wDR7hrQaI7BgdyHWAV5+HEj5UhrIrrvtwJiivSaU +# EA3qK6ZK/rZIQv/uORDkONw+2pHHIE1SXm/WIlhrVS2HIogfr3JjqvZion6LJSD7 +# 41j8xVDLiClwAbspHoVFjxtxBcMjqPx6aWCJS8vjSoTnhkV4PO55mqsM7Q8XQRGQ +# hA7w4zNQOJu9kD4xFdYpPUmLN/daIcEElofBjGz+sEd1B4yqqIk3u2G4VygTXFmt +# hL8chSo7r+GIvTqWKhSA/sanS4N3jCgCCe3FTSJsp4g5nwavLvWAtzcOIvSRorGm +# AeN0m2wgzBK95T/qgrGGDXSos1JNDWRVBnP0qsw1Qoq5G0D8hxvQPs3X43KBv1GJ +# l0wo5rcC+9OMWxJlB63gtToQsA1CErYoYLMZtUzJL74jwZk/grpHEQhIhB3sneC8 +# wzGKJuft7YO/HWCpuwdChIjynTnBh+yFGMdg3wRrIbOcw/iKmXZopMTQMOcmIeIw +# JAezA7AwggdxMIIFWaADAgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3 +# DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G +# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIw +# MAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAx +# MDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1l +# LVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA +# 5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/ +# XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1 +# hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7 +# M62AW36MEBydUv626GIl3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3K +# Ni1wjjHINSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy +# 1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF80 +# 3RKJ1v2lIH1+/NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQc +# NIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahha +# YQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkL +# iWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV +# 2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIG +# CSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUp +# zxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBT +# MFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYI +# KwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG +# MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186a +# GMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br +# aS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsG +# AQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcN +# AQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1 +# OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYA +# A7AFvonoaeC6Ce5732pvvinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbz +# aN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6L +# GYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3m +# Sj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0 +# SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxko +# JLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFm +# PWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC482 +# 2rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7 +# vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIC0jCC +# AjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNv +# MSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo2MEJDLUUzODMtMjYzNTElMCMGA1UE +# AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUA +# anQzrZW9TB93Ve7Pa4UPao2ffK2ggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEG +# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj +# cm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFt +# cCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOXv9TcwIhgPMjAyMjAzMzExMzM5 +# MDNaGA8yMDIyMDQwMTEzMzkwM1owdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA5e/1 +# NwIBADAKAgEAAgIlMAIB/zAHAgEAAgIRCDAKAgUA5fFGtwIBADA2BgorBgEEAYRZ +# CgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0G +# CSqGSIb3DQEBBQUAA4GBALD1RzDUwq+H9m0MSYjCz5wQ1OtK2kysUfWmpMU4m/5I +# had8kbNZdJ3KIrx0YGBUzNZ+Lq0oh2bND8oZcOvd2Hp24j+V7qoE3si8uVWGudxS +# modF1/mMXXk9ekKyQlZEjz3BMuu37KSyigsrBtFsCP8HOYXKBGcDbc6qn5XH4yKD +# MYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 +# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh +# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMA +# AAGmWUWDOU2e60sAAQAAAaYwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJ +# AzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgBSF4kR8GItz8rwRGC1l8 +# k8ybbSy8clYGHzCOxkaX3MUwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCCD +# CxmLwz90fWvhMKbJTAQaKt3DoXeiAhfp8TD9tgSrDTCBmDCBgKR+MHwxCzAJBgNV +# BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w +# HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29m +# dCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABpllFgzlNnutLAAEAAAGmMCIEIBah +# XRJ2u8MV3DcxWnj3RsKu1063lhZi+mCg8CTJsOXVMA0GCSqGSIb3DQEBCwUABIIC +# AKwjzxsDe/9a9+S3w9P62SVFf6qdfGVu9TFSVozXaesncRAk2r5PYVIzQBLXEctH +# uMjKgizzU+OOxm1sxXQFxUa56d7W+W0Jg7ULtoKBKPQtEUN5uAo4j2bxZGMLqPMd +# DR5oFeKvtuIUk4DiXx02gUT6GITVUnFkkHt4y9j9PwZb7TNlan8/wTeTHO0kH2QZ +# xSt9oLx0jSb5/nBUCAE7G38h6P29oMvljU4xleVaSon0n73QlTg/hMAedxBVDol7 +# ZFh6Q93jDq/8l4XsA4y1UIObDo/8NxDvISc2tYeybT++wrtwkOLw6jpWXezk4uA3 +# cPi5rfOQhiBPG8dLCT9SWelaQWFq6wDL/wWQWWohrMVGaRoIp+p7TrRTUl3eoGIW +# lvUbTuUotQzzmQY1Zf8S4g430lulVYqdenhq6E3mzdU9VjueouAji4yYyJ8jeZmz +# c2e2W3goWOO5UWBujRETmFekpuj1cPiQ1en4QlRDeDHIgUa8OQcFbhof3cXZ0+CM +# mFYy5NofggR5oWN1IO6TAGc5w4tn+6i5RrR+C464W7R39A8peRCPXpZHMX5Nfinl +# McxNzvCRdwxdwMcfAl5fbvKiHAMFVaJlU8YkDHxtshVTBTAdB5scvBwEfVBqTRgN +# Y3evpxNmLhQ49mbUo+IsGdgKb4wU3AOkvXBDIVg0/Ll+ +# SIG # End signature block diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/[Content_Types].xml b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/[Content_Types].xml new file mode 100644 index 000000000000..95d6227f2ef8 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/[Content_Types].xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/_rels/.rels b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/_rels/.rels new file mode 100644 index 000000000000..95479a0e6d24 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/_rels/.rels @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/en-US/about_az.help.txt b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/en-US/about_az.help.txt new file mode 100644 index 000000000000..7e294d272854 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/en-US/about_az.help.txt @@ -0,0 +1,50 @@ +About topic for Azure PowerShell - about_az + +TOPIC + +about_Az + +SHORT DESCRIPTION + +The Azure Az PowerShell module is a set of cmdlets for managing Azure +resources directly from the PowerShell command line and in PowerShell +scripts. + +LONG DESCRIPTION + +Azure PowerShell provides cross-platform cmdlets for managing Azure +services. All Azure PowerShell cmdlets work on Windows PowerShell 5.1 and +supported versions of PowerShell 7. + +The Azure PowerShell cmdlets follow the naming convention {verb}-Az{noun}. + +- {verb} is an approved PowerShell verb reflecting the corresponding HTTP + operation. + +- {noun} matches or has a close equivalent to the name of the resource. + +The cmdlets produce .NET objects that can be piped between commands +simplifying the sequencing of commands making Azure PowerShell a powerful +solution for scripting and automation purposes. + +A PowerShell module is available for each Azure service. For convenience, +we provide a wrapper module named "Az" that comprises the stable modules. +Modules in preview must be installed independently or via the "AzPreview" +wrapper module. + +Azure PowerShell is frequently updated to include bug fixes and service +updates. It is recommended to plan to update to the most recent version +regularly (a minimum of twice a year). + +GETTING STARTED + +1. Connect to Azure using Connect-AzAccount + +2. Run your first command. For example, create a resource group in the + east US region. + + New-AzResourceGroup -Name "MyResoureGroup" -location "eastus" + +SEE ALSO + +Azure PowerShell documentation: https://docs.microsoft.com/powershell/azure diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/package/services/metadata/core-properties/1aa0749a068a4238881858013f1a5b7f.psmdcp b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/package/services/metadata/core-properties/1aa0749a068a4238881858013f1a5b7f.psmdcp new file mode 100644 index 000000000000..5c37526de859 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/package/services/metadata/core-properties/1aa0749a068a4238881858013f1a5b7f.psmdcp @@ -0,0 +1,11 @@ + + + Microsoft Corporation + 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 + Az.Accounts + 2.7.5 + 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 PSCmdlet_Open-AzSurveyLink 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_Open-AzSurveyLink 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 + NuGet, Version=3.4.4.1321, Culture=neutral, PublicKeyToken=31bf3856ad364e35;Microsoft Windows NT 6.2.9200.0;.NET Framework 4.5 + \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/AsyncCommandRuntime.cs b/swaggerci/appplatform/generated/runtime/AsyncCommandRuntime.cs new file mode 100644 index 000000000000..56227cd0f38a --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/AsyncCommandRuntime.cs @@ -0,0 +1,832 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + using System.Management.Automation; + using System.Management.Automation.Host; + using System.Threading; + using System.Linq; + + internal interface IAsyncCommandRuntimeExtensions + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep Wrap(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep func); + System.Collections.Generic.IEnumerable Wrap(System.Collections.Generic.IEnumerable funcs); + + T ExecuteSync(System.Func step); + } + + public class AsyncCommandRuntime : System.Management.Automation.ICommandRuntime2, IAsyncCommandRuntimeExtensions, System.IDisposable + { + private ICommandRuntime2 originalCommandRuntime; + private System.Threading.Thread originalThread; + public bool AllowInteractive { get; set; } = false; + + public CancellationToken cancellationToken; + SemaphoreSlim semaphore = new SemaphoreSlim(1, 1); + ManualResetEventSlim readyToRun = new ManualResetEventSlim(false); + ManualResetEventSlim completed = new ManualResetEventSlim(false); + + System.Action runOnMainThread; + + private System.Management.Automation.PSCmdlet cmdlet; + + internal AsyncCommandRuntime(System.Management.Automation.PSCmdlet cmdlet, CancellationToken cancellationToken) + { + this.originalCommandRuntime = cmdlet.CommandRuntime as ICommandRuntime2; + this.originalThread = System.Threading.Thread.CurrentThread; + this.cancellationToken = cancellationToken; + this.cmdlet = cmdlet; + if (cmdlet.PagingParameters != null) + { + WriteDebug("Client side pagination is enabled for this cmdlet"); + } + cmdlet.CommandRuntime = this; + } + + public PSHost Host => this.originalCommandRuntime.Host; + + public PSTransactionContext CurrentPSTransaction => this.originalCommandRuntime.CurrentPSTransaction; + + private void CheckForInteractive() + { + // This is an interactive call -- if we are not on the original thread, this will only work if this was done at ACR creation time; + if (!AllowInteractive) + { + throw new System.Exception("AsyncCommandRuntime is not configured for interactive calls"); + } + } + private void WaitOurTurn() + { + // wait for our turn to play + semaphore?.Wait(cancellationToken); + + // ensure that completed is not set + completed.Reset(); + } + + private void WaitForCompletion() + { + // wait for the result (or cancellation!) + WaitHandle.WaitAny(new[] { cancellationToken.WaitHandle, completed?.WaitHandle }); + + // let go of the semaphore + semaphore?.Release(); + + } + + public bool ShouldContinue(string query, string caption, bool hasSecurityImpact, ref bool yesToAll, ref bool noToAll) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return originalCommandRuntime.ShouldContinue(query, caption, hasSecurityImpact, ref yesToAll, ref noToAll); + } + + CheckForInteractive(); + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + bool yta = yesToAll; + bool nta = noToAll; + bool result = false; + + // set the function to run + runOnMainThread = () => result = originalCommandRuntime.ShouldContinue(query, caption, hasSecurityImpact, ref yta, ref nta); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // set the output variables + yesToAll = yta; + noToAll = nta; + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public bool ShouldContinue(string query, string caption) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return originalCommandRuntime.ShouldContinue(query, caption); + } + + CheckForInteractive(); + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + bool result = false; + + // set the function to run + runOnMainThread = () => result = originalCommandRuntime.ShouldContinue(query, caption); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // set the output variables + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public bool ShouldContinue(string query, string caption, ref bool yesToAll, ref bool noToAll) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return originalCommandRuntime.ShouldContinue(query, caption, ref yesToAll, ref noToAll); + } + + CheckForInteractive(); + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + bool yta = yesToAll; + bool nta = noToAll; + bool result = false; + + // set the function to run + runOnMainThread = () => result = originalCommandRuntime.ShouldContinue(query, caption, ref yta, ref nta); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // set the output variables + yesToAll = yta; + noToAll = nta; + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public bool ShouldProcess(string target) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return originalCommandRuntime.ShouldProcess(target); + } + + CheckForInteractive(); + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + bool result = false; + + // set the function to run + runOnMainThread = () => result = originalCommandRuntime.ShouldProcess(target); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // set the output variables + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public bool ShouldProcess(string target, string action) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return originalCommandRuntime.ShouldProcess(target, action); + } + + CheckForInteractive(); + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + bool result = false; + + // set the function to run + runOnMainThread = () => result = originalCommandRuntime.ShouldProcess(target, action); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // set the output variables + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public bool ShouldProcess(string verboseDescription, string verboseWarning, string caption) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return originalCommandRuntime.ShouldProcess(verboseDescription, verboseWarning, caption); + } + + CheckForInteractive(); + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + bool result = false; + + // set the function to run + runOnMainThread = () => result = originalCommandRuntime.ShouldProcess(verboseDescription, verboseWarning, caption); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // set the output variables + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public bool ShouldProcess(string verboseDescription, string verboseWarning, string caption, out ShouldProcessReason shouldProcessReason) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return originalCommandRuntime.ShouldProcess(verboseDescription, verboseWarning, caption, out shouldProcessReason); + } + + CheckForInteractive(); + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + bool result = false; + ShouldProcessReason reason = ShouldProcessReason.None; + + // set the function to run + runOnMainThread = () => result = originalCommandRuntime.ShouldProcess(verboseDescription, verboseWarning, caption, out reason); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // set the output variables + shouldProcessReason = reason; + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void ThrowTerminatingError(ErrorRecord errorRecord) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.ThrowTerminatingError(errorRecord); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.ThrowTerminatingError(errorRecord); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public bool TransactionAvailable() + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return originalCommandRuntime.TransactionAvailable(); + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + bool result = false; + + // set the function to run + runOnMainThread = () => result = originalCommandRuntime.TransactionAvailable(); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // set the output variables + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteCommandDetail(string text) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteCommandDetail(text); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteCommandDetail(text); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteDebug(string text) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteDebug(text); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteDebug(text); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteError(ErrorRecord errorRecord) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteError(errorRecord); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteError(errorRecord); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteInformation(InformationRecord informationRecord) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteInformation(informationRecord); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteInformation(informationRecord); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteObject(object sendToPipeline) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteObject(sendToPipeline); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteObject(sendToPipeline); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteObject(object sendToPipeline, bool enumerateCollection) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteObject(sendToPipeline, enumerateCollection); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteObject(sendToPipeline, enumerateCollection); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteProgress(ProgressRecord progressRecord) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteProgress(progressRecord); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteProgress(progressRecord); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteProgress(long sourceId, ProgressRecord progressRecord) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteProgress(sourceId, progressRecord); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteProgress(sourceId, progressRecord); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteVerbose(string text) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteVerbose(text); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteVerbose(text); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void WriteWarning(string text) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + originalCommandRuntime.WriteWarning(text); + return; + } + + // otherwise, queue up the request and wait for the main thread to do the right thing. + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + + // set the function to run + runOnMainThread = () => originalCommandRuntime.WriteWarning(text); + + // tell the main thread to go ahead + readyToRun.Set(); + + // wait for the result (or cancellation!) + WaitForCompletion(); + + // return + return; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void Wait(System.Threading.Tasks.Task ProcessRecordAsyncTask, System.Threading.CancellationToken cancellationToken) + { + do + { + WaitHandle.WaitAny(new[] { readyToRun.WaitHandle, ((System.IAsyncResult)ProcessRecordAsyncTask).AsyncWaitHandle }); + if (readyToRun.IsSet) + { + // reset the request for the next time + readyToRun.Reset(); + + // run the delegate on this thread + runOnMainThread(); + + // tell the originator everything is complete + completed.Set(); + } + } + while (!ProcessRecordAsyncTask.IsCompleted); + if (ProcessRecordAsyncTask.IsFaulted) + { + // don't unwrap a Aggregate Exception -- we'll lose the stack trace of the actual exception. + // if( ProcessRecordAsyncTask.Exception is System.AggregateException aggregate ) { + // throw aggregate.InnerException; + // } + throw ProcessRecordAsyncTask.Exception; + } + } + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep Wrap(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SendAsyncStep func) => func.Target.GetType().Name != "Closure" ? func : (p1, p2, p3) => ExecuteSync>(() => func(p1, p2, p3)); + public System.Collections.Generic.IEnumerable Wrap(System.Collections.Generic.IEnumerable funcs) => funcs?.Select(Wrap); + + public T ExecuteSync(System.Func step) + { + // if we are on the original thread, just call straight thru. + if (this.originalThread == System.Threading.Thread.CurrentThread) + { + return step(); + } + + T result = default(T); + try + { + // wait for our turn to talk to the main thread + WaitOurTurn(); + // set the function to run + runOnMainThread = () => { result = step(); }; + // tell the main thread to go ahead + readyToRun.Set(); + // wait for the result (or cancellation!) + WaitForCompletion(); + // return + return result; + } + catch (System.OperationCanceledException exception) + { + // maybe don't even worry? + throw exception; + } + } + + public void Dispose() + { + if (cmdlet != null) + { + cmdlet.CommandRuntime = this.originalCommandRuntime; + cmdlet = null; + } + + semaphore?.Dispose(); + semaphore = null; + readyToRun?.Dispose(); + readyToRun = null; + completed?.Dispose(); + completed = null; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/runtime/AsyncJob.cs b/swaggerci/appplatform/generated/runtime/AsyncJob.cs new file mode 100644 index 000000000000..9470554d0a4c --- /dev/null +++ b/swaggerci/appplatform/generated/runtime/AsyncJob.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. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell +{ + using System.Management.Automation; + using System.Management.Automation.Host; + using System.Threading; + + using System.Threading.Tasks; + + public class LongRunningJobCancelledException : System.Exception + { + public LongRunningJobCancelledException(string message) : base(message) + { + + } + } + + public class AsyncJob : Job, System.Management.Automation.ICommandRuntime2 + { + const int MaxRecords = 1000; + + private string _statusMessage = string.Empty; + + public override string StatusMessage => _statusMessage; + + public override bool HasMoreData => Output.Count > 0 || Progress.Count > 0 || Error.Count > 0 || Warning.Count > 0 || Verbose.Count > 0 || Debug.Count > 0; + + public override string Location => "localhost"; + + public PSHost Host => originalCommandRuntime.Host; + + public PSTransactionContext CurrentPSTransaction => originalCommandRuntime.CurrentPSTransaction; + + public override void StopJob() + { + Cancel(); + } + + private readonly PSCmdlet cmdlet; + private readonly ICommandRuntime2 originalCommandRuntime; + private readonly System.Threading.Thread originalThread; + + private void CheckForInteractive() + { + // This is an interactive call -- We should never allow interactivity in AsnycJob cmdlets. + throw new System.Exception("Cmdlets in AsyncJob; interactive calls are not permitted."); + } + private bool IsJobDone => CancellationToken.IsCancellationRequested || this.JobStateInfo.State == JobState.Failed || this.JobStateInfo.State == JobState.Stopped || this.JobStateInfo.State == JobState.Stopping || this.JobStateInfo.State == JobState.Completed; + + private readonly System.Action Cancel; + private readonly CancellationToken CancellationToken; + + internal AsyncJob(PSCmdlet cmdlet, string line, string name, CancellationToken cancellationToken, System.Action cancelMethod) : base(line, name) + { + SetJobState(JobState.NotStarted); + // know how to cancel/check for cancelation + this.CancellationToken = cancellationToken; + this.Cancel = cancelMethod; + + // we might need these. + this.originalCommandRuntime = cmdlet.CommandRuntime as ICommandRuntime2; + this.originalThread = System.Threading.Thread.CurrentThread; + + // the instance of the cmdlet we're going to run + this.cmdlet = cmdlet; + + // set the command runtime to the AsyncJob + cmdlet.CommandRuntime = this; + } + + ///

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 z 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll new file mode 100644 index 0000000000000000000000000000000000000000..6344999edbb35cb0ca89a042286bb6c6d4ea963f GIT binary patch literal 702400 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⁡v#GnNyNMo#_0Z}g`sov( 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll new file mode 100644 index 0000000000000000000000000000000000000000..0d214db71cad80555ef4d6ed83272de795d4c5a9 GIT binary patch literal 294288 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..1c9d8e2a0ef5888c365e9ef031925877445675ab GIT binary patch literal 35720 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